:: Steve.org.uk
[ Home | About Steve | Free Software | Images ]



Free Software

Chronicle : The Blog Compiler

Chronicle is a small and fast blog compiler, written in Perl with minimal dependencies. It can be installed in seconds and used to publish any number of blogs!

A blog compiler is something which will convert a collection of input files into a static tree of HTML and RSS files.

These can then be published online giving your viewers:

  • Archives of your prior posts.
  • Tags collections of your entries.
  • RSS Feeds.
top
Sample Output

Because the output of the software depends upon the entries you write yourself, and the theme you've chosen to use, it is hard to give definitive examples but here are three samples each of which was created using these input files.

For "real world" usage of this software please see my blog, or the mail-scanning blog.

top
Download Chronicle

You may download the current stable release from the following links:

There is also a Debian package for Etch available from my apt repository.

If you'd like to try something more cutting edge please see the chronicle mercurial repository.

top
Installation

To use the software you'll need the Date::Parse and HTML::Template perl modules. Debian GNU/Linux users may install these by running:

apt-get install libtimedate-perl libhtml-template-perl

Download, unpack, and run "make install". This will give you a configuration file in /etc, the binary in /usr/local/bin, and the themes beneath /usr/share/chronicle.

Now create ./blog and populate it with blog entries in the correct format. If you run "chronicle --verbose" you'll see your compiled files being produced.

top
Blog Format

A sample blog entry would be a text file with contents like this:

Title:  This is the title for an entry
Tags: comma, separated, tag, names
Date: 14th August 2007
<p>This is the first line of the blog entry.</p>
<p>This is the last line of the blog entry.</p>

In this example the blog has been written in HTML, but you may choose to write your entries in textile or markdown formats if you prefer.

To specify the input format simply adjust the configuration file:

format = [ html | markdown | textile ]

If you do not enter a title the filename of the entry will be used, minus suffix. Similarly if you do not enter a date then the last change time (ctime) of the file will be used as a default.

(You may also use Subject: instead of Title: if you prefer, that could be useful if you setup an alias to allow emails to become posts.)

top