I have written a static site generator named ppages. At its most basic, it is a shell script that loops through HTML template files in a directory, inserting preprocessed and compiled markdown.
Template files are named *.template.html and may look
like the following:
<head>
...
</head>
!! pp < $INPUT_FILE | cmark
<footer>
...
</footer>
A template named blog.template.html is the “blog”
template and will be used for markdown files named like
<page-name>.blog.md. When ppages is run,
each template in turn is processed for each matching markdown file -
setting INPUT_FILE=<path to md file>.
So with the following files:
> ls site/
blog.template.html p.template.html index.p.md other.p.md blog/index.blog.md
you would generate the following pages:
/index # Using "p" template
/other # Using "p" template
/blog/index # Using "blog" template
Check out the github repo to download and for more details: https://github.com/jhjn/ppages