I did not find a solution that I like. I came to the conclusion that a solution should be file based and the tool that turns it into a website should be a single script:
# File based
The content, templates and assets should be stored as files on disk. No database should be involved.
# Single script
I don't think turning templates, content and assets into a website is a complex thing. Basically it just means some templating of the content according to the templates. A small script that I can easily read should be sufficient.
So I will probably write that script myself. Currently, I expect the templates to be what I call "simplified Twig style":
<!doctype html>
<head><title>{TITLE}</title></head>
<body>{CONTENT}</body>
</html>
The content will be plain HTML. With metadata in YAML similar to how Jekyll does it: ---
layout: post
title: Hello World
---
Hello world, this is my first blog post.
And this is my dog:
<img src="dog.jpg" alt="My dog">
Say the script that is creating the website from the templates, content and assets is called create.py. Then create.py is supposed to be something like 50 lines of Python for the first version. And to stay under 500 lines forever. Additional functionality can be achieved via plugins: ---
layout: post
title: Hello World
convert: markdown2html.py
---
Hello world, this is my first blog post.
And this is my dog:
