The Easy Web File Maker

/

dev/

docs/

example/

news/

xbs/

Documentation

Downloading

Downloading ewfm is a simple as running one command:

git clone https://git.colean.cc/ewfm

Setup

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.

Editing

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.

Hierarchy

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).

Building your website

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!

Pre-processors and post-processors

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

Copyright notice and authors

This document was written by threeoh6000 (Celeste) and is licensed under the GNU Free Documentation License. It was last updated October 25th, 2022.