Well, I finally managed to get it to render.
This post is generated by a small blog engine I call "Antipope" (page to come), as mentioned here. It took me a little longer than the original one week to write it, and for a variety of terrible reasons, I just recently managed to make it render a somewhat hideous page. And now that some of the design is place, here's how the stack ended up working:
On the git side, I'm going to structure my usage as follows:
-
The
postsbranch to track the versioning of authored content (posts, posts' media) -
The
masterbranch to track the main development head and default formatting changes.
The remaining branching will be free of convention, with master later tracking the public shared upstream repo.
The rendering is entirely done with emacs with a (very slow for now) call to emacs' org-mode's HTML exporter, which gives a great deal for free to the rendering process, such as the nice integration with emacs' rendering for code samples and org's already excellent translation of all of its contents to HTML.
emacs --batch --load ~/.emacs --visit=$file --funcall org-export-as-html-batch
The call is born in laziness with the call to load ~/.emacs, which will be changing to an external, and minimal .el script.
The resulting file is passed through BeautifulSoup to extract a partial rather than a full document, and saved for a pass with another tool, the indexer, which combines the information from the article meta.yaml files:
--- author: email: slava@this-domain.com name: Yaroslav Shirokov name: Like a hammer hits a cantaloupe status: published
And the information from the filesystem and the generated article partial to construct a series of index.html pages for every article (not at the time of writing) as well as the main page. The rendering is a simple pass over a template set by Jinja 2.1, followed by a pass of the dependency mover to copy all linked, and required media to the output directory.
Before the source release there'll also be commands to wrap the individual subtasks of rendering, indexing, archiving, dependency copying, and doing so remotely after a git push (or with a post-update hook, if you're into that.) But until then there's just this noise, which I still enjoy.