I want to be able publish posts easily to a statically served site. I am sure that there are lots of blog site generators out there, but I could not find one that I liked, and which was in a language I would enjoy hacking, and so I wrote my own.

The blog site is generated from file based posts, using an augmented version of xhtml as the input format. The input format has a DTD, as well as a Relax NG compressed schema generated using Trang which is used in the provided schemas.xml file to allow validation in Emacs nXML mode.

When ready, the drafts are merged into a post template, in standard xhtml, to produce a site that can be rsync'd to a web host. The merging of the templates is done using SBCL and CXML. The generator maintains a database of posts, so that it can generate the index page, etc, and uses Elephant. The whole site can be re-generated from the input post files, so a revision control system, such as git, can be used to manage the posts, and we don't have to worry about backing up the the database too frequently.

An Emacs minor-mode can be used to trigger the publishing and site generation.

The generator is intended to produce a personol blog, with one user. I am however misusing it here to provide a sort of update blog for the software itself.

source Hugo Duncan
Hugo Duncan

Blog Generator Design
Written: 4-3-2009