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.