rejourn is a static site generator for programmers. Just write an article in a markup language of your choice, and some metadata information like author/ date; rejourn takes care of the rest.
- Mako Python bindings
- Markdown Python bindings [optional: for markdown rendering]
- Nose [optional: for running included tests]
- Markdown and Asciidoc. It can easily be extended to support more markup languages- simply write a tranform function and add it to the 'htransform_mapper' in 'util.py'.
- Dependencies handled by Makefile. This means that an output HTML file will not be built unless and until the corresponding input file changes.
- Drafts. The 'draft' metadata header controls whether the output should be built.
- Static pages. For pages in the toplevel index like "About me". Controlled by 'static' metadata header.
- Configurable views. The template to render with the given content is controlled by a simple 'view_mapper' in 'util.py'.
- Tags. You can assign associate multiple freeform tags to a single article, and view all articles with a certain tag. Controlled by 'tags' metadata header.
- Cache. No article is ever unnecessarily rebuilt- the content is hashed and stored in the 'cache' subdirectory to recall at a later time. This is especially useful when the site has many tags.
- RSS 2.0 feed. Built by default- no extra configuration required.
Available metadata headers
- title: The title.
- author: The author.
- snip: A short description of the article. Appears in index.
- view: The design view to use. Can be single, index, or rss.
- htransform: The filter to pass the content through. Can be "markdown", "asciidoc", or "html".
- tags: The tags the post should be associated with.
- static: A boolean specifying whether the page should appear in the index. Useful for "about" pages.
- draft: A boolean specifying whether the page should be built.
- permalink: The permalink. Automatically written when built.
- pubdate: The date of publishing. Automatically written when built.
Copy core.cfg.example as core.cfg and modify it to set the indir, outdir and
possibly other options. Run the
configure script to generate the Makefile;
make to produce the actual HTML pages in outdir. Run
make test to
run the included tests.
When an existing input file is modified, run
make to update the
output file. When the Makefile needs to be regenerated to build new
input files, run the
configure script to regenerate it.
Use Apache's mod_rewrite (or the corresponding feature in your webserver) to append '.html' at the end of URLs to access the corresponding physical files. All links generated by rejourn assume this configuration.
Simply fork the project on GitHub and send pull requests.