Skip to content
A static blogging engine written in Haskell
Haskell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example_blog
src/Agiluf
.gitignore
Agiluf.hs
LICENSE
README.rst
Setup.hs
agiluf.cabal

README.rst

Agiluf

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

Colophon

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.

You can’t perform that action at this time.