A very lightweight static site generator with Jinja2, along with a blog generator. The main features:
- Write websites with HTML and Jinja2.
- Maintain a blog using reStructuredText.
- Implemented in a single file with only ~200 lines of code.
Licensed under AGPLv3.
Create a directory structure as follows:
src/ blog/ # Store all blog posts under this folder. It can be 2021/post1.rst # in any path without restrictions. The final HTML anotherpost.rst # file will have the same path as the path of the otters/post.rst # rst file relative to the src/ folder. static/ # All files in this directory will be copied into the # out folder verbatim. style.css # An example, you can put anything here. templates/ # In addition to the templates specified below, you # put your custom templates into this folder as well. _blog_feed.xml # Generates an atom or RSS feed. _blog_index.html # Generates the index for the blog. _blog_post.html # Generates the actual blog post page. index.html # Jinja2 syntax. Will be rendered to index.html my_page.html # Jinja2 syntax. Will be rendered to my_page.html. Makefile # An optional file for convenience. See examples/Makefile.
Now run funnel4
, which will automatically create the out
directory and
put all rendered output into that directory. You can then just point your
browser to the HTML files and take a look. If you need a (test) server, you can
use cd out && python3 -m http.server
.
See example
directory a more detailed example (although it is incomplete
for now).