Skip to main content

A look at Python Static Site Generators

A Few Words of Introduction

I had a look at available static site generators not too long ago and took some notes on the go so that I wouldn't evaluate once more if I needed yet another solution later. WordPress was still powering my blog and with dynamic PHP code that felt more and more like a bug that I wanted to get rid of.

Inspecting projects took me a bit of time so maybe I can save you some by sharing my findings. For some projects, I stopped further investigation rather quickly, so please don't expect a complete evaluation of every single of these projects.

My Requirements

I was looking for a static site generator with the following requirements:

  • Written in Python (so that contributing bugfixes is an actual option)
  • Supports Markdown or AsciiDoc syntax for posts (not YAML, HTML, rst, JSON)
  • Has one or more polished, responsive theme
  • Is still maintained, e.g. has a recent latest release
  • Is suited for both a blog and non-blog documentation-like content (so that I don't need another tool again for a slightly different case next time)
  • Bonus: Has wordpress import
  • Bonus: Has incremental builds
  • Bonus: Is already packaged in major GNU/Linux distro X

Here's what I found, with projects in alphabetical order:

Candidates

Acrylamid

  • Officially unmaintained
  • Latest release four years ago (2014-09-11)
  • 39 open issues
  • Stopped at that point, next.

Cactus

  • Latest release over two years ago (2016-02-21)
  • 85 open issues
  • Stopped at that point, next.

Complexity

  • Latest release six years ago (2013-12-03)
  • 19 open issues
  • Uses HTML and JSON for input, next.

Grow

  • Latest release just a few days ago
  • Seems unnecessary complex, documentation does not get to the matter fast enough
  • Stopped at that point, next.

Hyde

  • Latest release three years ago (2015-11-09)
  • 49 open issues
  • Does not manage to get their own website fixed from loads of dead links, also check issue #12 with zero progress on that very topic
  • Stopped at that point, next.

Lektor

  • Latest release about two month ago (2018-09-07)
  • Markdown syntax
  • Seems more like build-everything-yourself rather than text-and-go
  • Available themes do not look polished enough to me
  • Next.

MkDocs

  • Latest release about two month ago (2018-09-07)
  • Markdown syntax for posts
  • Some simple but clean themes
  • Targetting documentation a lot more than blogging, I feel — next.

Nikola

Pelican

  • Latest release more than a year ago (2017-10-01)
  • 72 open issues
  • Supports Markdown and AsciiDoc syntax (besides reStructuredText)
  • Support for import from WordPress
  • Quite a few themes of mixed quality, not easy to find a responsive one (like chameleon)
  • Ended up giving that a try at the website of libexpat.

prosopopee

  • Latest release a few months a go (2018-03-28)
  • 12 open issues
  • Seems focused on image-centered websites
  • Stopped at that point, next.

QPage

  • Latest release soon two years ago (2017-01-31)
  • 0 open issues, only 1 issue filed ever
  • Weird samples, weird website
  • No real documentation
  • Stopped at that point, next.

Sphinx

  • Latest release only hours ago
  • Markdown syntax possible
  • Great fit for documentation, less suited for blogging on its own; might work combined with:
  • I want a single thing though — next.

Statik

  • Latest release a few days ago
  • Seems to have a single theme, only
  • Rendering the blog example ends up unthemed and with absolute, broken file:// links — next!

Tarbell

  • Latest release about a year ago (2017-10-31)
  • Weird tutorial using Google spreadsheets, next.

Urubu

  • Latest release a few months ago (2018-08-15)
  • 21 open issues
  • Markdown syntax for posts
  • Still used by websites listed using Urubu
  • Only a single theme (if we ignore support for Bootswatch)
  • Has potential, feels too small as of yet — next.

wok

  • Latest release more than four years ago (2014-04-30)
  • 34 open issues
  • Stopped at that point, next.

If you have comments on these evaluations, please drop me a mail.

Thanks, Sebastian