A static website publishing engine in JS / node
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
example
lib
tests
.gitignore
LICENSE
README.mkd
package.json

README.mkd

Boxer

Boxer is a static site publisher.

Running Boxer

$ 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.