Choosing a static site generator

Monday, October 14, 2013

Ever since I began to use Wordpress to write some blog posts, I wasn’t really satisfied with it. My Blog was hosted by Wordpress and not on my own server, which makes it kind of sluggish and slow. It brings tons of features and plugins, which I don’t need or want, and I had to choose from even more tons of themes I mostly don’t like.

Recently I stubled upon static site generators. These are tools, which generate HTML pages and static content, which are ready to deploy to a webserver. I soon realized, that the variety of these tools is huge, so I did some research, which site generator matched my needs best.

My crtieria

  • leightweight tool written in Python
  • render blog posts written in Markdown syntax
  • easy to learn
  • provide tagging blog posts
  • generate RSS-Feed
  • templating in Jinja (or something similar)
  • Open Source
  • Python syntax highlighting in the blog post

During the search for the best solution I found lots of mentionable generators. I won’t cover all, but some of them in the following lines. I won’t describe each tool entirely, but give some brief insights, maybe only a first look opinion.

Volt

One of the first tool I checked out. It’s lightweight and very modular and well structured. It inclides Jinja2 templating, Markdown rendering and a integrated development server for previewing the site. But the project is barely documented, which made it hard to learn, how things work. https://github.com/bow/volt

PyGreen

PyGreen is an extreme lightweight solution written in about 100 LoC in one file. It includes a development server, mako templating (which is a good alternative to Jinja) and markdown filter. PyGreen intents to implement just a small set of features, which makes it highly expandable, if you do some coding yourself. http://pygreen.neoname.eu/

Hyde

This solution has lots of functionality. It includes a built-in web server with auto-generator, many CSS processors (SASS, Less, …), breadcrumbs, atom feeds and categories. But the content-files (including jinja stuff) are kind of ugly. http://ringce.com/hyde

StrangeCase

Another good solution is StrangeCase hyde, which is similar to Hyde, but doesn’t offer support for an RSS feed or tags. https://github.com/colinta/StrangeCase

Mynt

Mynt is a tool, which generates a blog. Nothing more, nothing less. It ships with the exact features I want: generate pages, tags, archives and an RSS feed from Markdown pages. Other features are freedom of choice among templating engines and perfect integration of helpful template variables. Mynt is my favorite so far! http://mynt.uhnomoli.com/

Wintersmith

If I would prefer JavaScript as language, I would definately give Wintersmith a try, which is built on top of node.js. It supports Jade templating (but you can also use your favorite), simple markdown content-files, LESS, SASS, Plugins. The fact, that it comes with beautiful templates is a plus. http://wintersmith.io/

Cabin

Last, but not least I’d like to mention Cabin, which is like Wintersmith based on node.js. It looks very promising and implements nice deployment features using grunt. The python syntax highlighting is realized using Pygments, which has always been a beauty. http://www.cabinjs.com/