1 Why Re-Invent The Wheel
I use Emacs Org mode for taking notes. Org mode has its own markup structure,
richer than markdown, and allows you to export to a variety of formats,
including XHTML. Emacs Org Mode is extremely powerful, with support for
tables and spread sheets, computer algebra,
equations, images, and embedded, run-able code snippets. My home directory is
littered with Org files representing years of notes, and I am consolidating
them into a single notes directory. I wanted to publish some of my notes as
blog posts, without much overhead. Furthermore, when Org mode exports a
document, it includes metadata such as the publication time, the modification
time, keywords, description, etc. I just needed something to create a blog
index, landing page, and overall site look and navigation.
I initially started a blog on Blogger. Blogger made it difficult to paste HTML markup generated by Org Mode. I ended up with two versions of my notes/blog posts, and Blogger did not have much control over the layout. I looked at existing static site generators, specifically Pelican. Pelican can take HTML as blog post inputs, but you do not have much control over the layout and indexing without investing a lot of work. Having trouble finding a static site generator that I liked, I decided to roll my own.
I have used XSLT in the past, and for this task, it really is the perfect tool. XSLT, Extensible Stylesheet Language Transformations, is a language designed for translating XML to XML, HTML, or plain text. With XSLT, I am able pull meta-data from Org's XHTML export and add navigation and other modifications to each XHTML file. You can check out the static site generator I built, on my GitHub page.