Boxer is a static site publisher.
$ boxer [-vh] input output
What is a static site publisher?
By now lots of people are familiar with the notion of a static blog publishing tool, popularized by tools like Jekyll. They've proved to be an easy and robust means of publishing content. In particular when coupled with support tools like Git or Mercurial.
Boxer derives from these tools, and is simply my own take on how best to construct a generalized version.
How Boxer Works
source | V Collection: files -> pre processors -> items | V Processing: items -> post processors -> items | V Publishing: items -> files
Boxer works by first collecting all the files in the input directory, processing them and storing them for later. It takes hints from the directory structure to add metadata to those files. For instance all files in the directory _templates will be tagged with "templates". This allows us to generalize many of the special cases used in other blog publishers. An interesting side effect of this is that with boxer, all files can be transformed; css, js, or the templates themselves can be manipulated before mapping begins.