ugh! is a website generator.
The website source comprises page content files maintained under
Top-level mk(1) targets drive the compilation of website source into
The website template is defined by files in the
The templating engine is rc(1) heredocs—it is rather limited but should
The default template tries to load
which doesn't exist by default.
Currently supported content files are markdown, html, and raw text.
Copies of the source files with
are included verbatim in the output directory.
.md source files are compiled to an HTML page by a program
bin/md2html. In turn, this program passes the markdown source file as
a first argument to
bin/filter-markdown which must produce HTML body
content on its standard output.
bin/filter-markdown and other filters (in the future) may be replaced
by users to use different processors or perform custom processing.
Clone or copy this directory to a suitable place and make sure the dependencies are met.
git/clone git://src.a-b.xyz/ugh /usr/web
9front version of
mk(1) are core dependencies.
NB Other versions of rc are guaranteed not to work.
The default markdown filter
bin/mdtohtml depends on the
discount(1) markdown processor.
You can easily change it to something else.
Provide some content files in the
data/ directory and run:
This will generate pages and files in the
Publish it whichever way you like.