A basic static blogging engine, written in Haskell. It's meant to be bare-bones but supports:
- html templating
- tagging
- multiple authors
- RSS
It's built on top of the awesome Pandoc document converter. You just write your blog entries in RST, add a little metadata to the top, and let Agiluf do the rest. Templating uses Hastache, a Haskell implementation of Mustache templates.
A typical project structure:
my_blog/ entries/ lorem-ipsum.rst sit-amet.rst (etc.) templates/ entry.html index.html tag.html static/ css/ (user/theme determined) javascript/ (user/theme determined) images/ (user/theme determined) media/ photo1.jpg song.mp3 (etc.) publish/ index.html page2.html page3.html (etc.) entries/ lorem-ipsum.html sit-amet.html (etc.) static/ (copied from above) tags/ my-first-tag.html another-tag.html (etc.)
A skeleton project with a simple theme based on Twitter's Bootstrap framework is located in the example_blog
folder in this project. You can use this as a base for building your own blog. The compiled binary can be used thusly:
?> agiluf /path/to/my_blog
The blog will be output into the publish
folder (as shown above). No fancy publishing workflows needed; from there it's a simple step to rsync the new blog contents up to your server:
?> rsync -avh /path/to/my_blog/publish/ me@myserver.com:/var/www
Why the name? There were a couple of historical figures who bore this sobriquet. However, I took the name from Italo Calvino's wonderful novel The Nonexistent Knight. It's something of a nod to the challenges of learning Haskell.