Downloading ewfm is a simple as running one command:
git clone https://git.colean.cc/ewfm
ewfm requires some steps before it is ready for use.
ewfm relies on the redcarpet
gem to run and also Ruby:
obviously by this point you should have Ruby installed so all you have to run to get redcarpet
is
gem install redcarpet
Now one must download themes for use with the input.
populate.sh
is included to handle the downloading of said themes.
Then one must setup an input with a valid site.conf
file.
init.sh
is the included wizard for this action.
Now you can edit your source files.
After running init.sh
and looking in the newly-created input/
directory, you'll most likely see something like this.
input
+-- index.md
|
\-- site.conf
If you followed the wizard properly, site.conf
will most likely be setup properly and won't need editing.
However! index.md
is ripe for the making!
index.md
is equivalent to your directory's index.html
, and linux.md
would be equivalent to linux.html
!
When you open it up, you'll see a quite barren document:
Your website!
## Hello, world!
Welcome to ewfm!
ewfm is a tiny bit non-standard from normal Markdown in the fact that the first line (Your website!
) is not actually parsed as Markdown but instead is treated as the header of the document, while the second line and after are treated as the actual content.
Keep this in mind once editing your document.
Say you add another directory to your hypothetical input directory. How is that handled on your website?
It depends between themes. If you look to the side of this document (provided you're reading it on the official ewfm website), you'll see a collection of directories with slashes on them. This is how 3box-nebula and other 3box themes handle hierarchy.
Themes like linear-woodwork have a navbar at the top displaying the sub-directories of input/
Only the sub-directories of input will show up on themes automagically generated navbars/navboxes! This means blog/
will show up on the top or side but blog/2021/
will not.
Sub-directories of sub-directories can only be accessed via links within documents. Keep this in mind when designing your website.
site.conf
explained.Now that you've gotten this far, you know the ropes and quirks of ewfm.
But what is this mysterious site.conf
file? It's the file that manages how ewfm will handle your website!
It's quite a short file so don't be scared to open it up.
example.com
Your website
linear-base
This is reminiscent of what your site.conf
file will look like.
example.com
is the domain of the website, Your website
is what shows up in your browser's tab as the title and linear-base
is the (default) theme.
You most likely will come here to change your theme, so to do so delete linear-base and put in the name of your new theme (e.g. 3box-nebula, linear-woodwork
).
Now comes the fun part, the fruition of your labour, what comes after your blood, sweat and tears!
Building the website is particularly easy.
When creating the website, init.sh
will generate an empty output directory as ewfm doesn't do this by itself.
Nor does it erase or overwrite output files so when building, files in output should be completely erased.
Lucky for us, build.sh
does this all for us!
You'll obviously need Ruby installed and any dependencies but once run you should see something like this:
input/index.md
input/blog/index.md
input/index.md
input/blog/index.md
Website built.
Provided you saw Website built
. then congratulations! Your website is in output
and ready to be uploaded to your webserver!
As of 13/11/2021, ewfm supports pre-processors and post-processors.
To enable them you have to make a file for either one you want.
preproc.conf
for pre-processors and postproc.conf
for post-processors.
The file will contain the name of the processors you want to use. One per line.
processor1
processor2
processor3
Pre-processors and post-processors execute a shell script inside the processor files and they may require other packages like Python or other Ruby gems to function.
Processors are stored in the proc/
folder of your ewfm installation.
inclusions.conf
You may not want all of your files that aren't ending in .md
, for example if you are using a processor that handles .html
files.
This is where inclusions.conf
comes in.
By default if inclusions.conf
doesn't exist, ewfm will copy all files that don't end in .md
to output/
verbatim.
As soon as inclusions.conf
is created, ewfm will ignore all files not ending in .md
.
To have specific file extensions copied over add them to inclusions.conf
:
.html
.php
This will copy over all .html
and .php
files verbatim.
You may also want specific files to be copied over while others to not:
.html
.php
john.jpeg
ewfm will error if you have an inclusions.conf
line that doesn't match to anything. inclusions.conf
doesn't stop other post-processors from manipulating files unless they also use inclusions.conf
This document was written by threeoh6000 (Celeste) and is licensed under the GNU Free Documentation License. It was last updated October 25th, 2022.