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
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
init.sh is the included wizard for this action.
Now you can edit your source files.
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.
index.md is ripe for the making!
index.md is equivalent to your directory's
linux.md would be equivalent to
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.
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.
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.
You may not want all of your files that aren't ending in
.md, for example if you are using a processor that handles
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
As soon as
inclusions.conf is created, ewfm will ignore all files not ending in
To have specific file extensions copied over add them to
This will copy over all
.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
This document was written by threeoh6000 (Celeste) and is licensed under the GNU Free Documentation License. It was last updated October 25th, 2022.