We’ve talked about some of the leading static site generators several times on this blog. I’m a big fan of the way they provide a framework for people to learn about the technology underlying the web, without making them do all the hard work of managing a non-CMS controlled site.
They offer a happy medium: once a static site generator and its site are configured, adding new content can be as simple as dropping a text file in a directory. It’s often simpler than publishing to a full-fledged CMS like WordPress, with all its bells and whistles. But in creating the site, bloggers and site owners have to learn about the underlying technology of HTML and CSS and develop an intimate understanding of how their site is created.
There are literally hundreds of static site generators. Since all they do is take one set of text files and use a variety of libraries, filters, and scripts to turn them into other sorts of text files, they’re something almost any competent developer can take a swing at. But, although the basic functionality of static site generators is similar, the choices made by the developer can have a big impact on the process of creating a site.
In this article, I’d like to take a look at three static site generators that are less well known than the leading examples like Jekyll (which is awesome in its own right).
Journey is notable for a couple of reasons: it’s written in Go and it supports Ghost templates. Go is a new(ish) language, originally developed at Google, and it differs from languages like Ruby and Python, in which Jekyll and Pelican are written, in that it compiles to a binary that will run without any additional software.
I love Jekyll, but messing around with Ruby versions and the Ruby environment on my Mac and Linux server to get it working can be a headache for someone who’s not that into Ruby. Journey is simple to install, has no dependencies, and can generate a site very quickly.
If you’re not familiar with Ghost, it’s a Node.js-based blogging engine. It’s much simpler than WordPress and it aims to do one thing well — be a great place to write and publish a blog. Its themes tend to be elegant and minimalist, and it was a great idea to create a static site generator that can take advantage of an existing cache of beautiful themes.
Developers build a pipeline of Grunt plugins that they run over their site’s files. A static site generator is an obvious application for this sort of technology, although, unless you are already familiar with Grunt, I’d suggest you look at one the other options we’re talking about.
Earlier, I said that static site generators simply take one set of files and use them to generate another set of files. Metalsmith implements this functionality in a collection of plugins, each of which carries out one or a set of actions on the input files.
That might sound complicated, but it isn’t really. A simple Metalsmith site is just a collection of files and a script that lists a collection of plugins, each of which will act on the files: so they will turn Markdown into HTML or minify images with imagemin, among many other options. Metalsmith is a highly flexible system for those who want to construct their own site generation processes free of the limitations of more rigid generators.