Static Site Generators that I have written

I like static site generators. Something about a consistent visual theme across multiple pages, combined with some compile-time processing to add extra features, is in theory very attractive to the way I work. In pursuit of the perfect tool, I have found myself re-writing several imperfect ones over the years. You will quickly notice by the pattern of dependencies some of the features I consider important in SSGs that I use. Some or most of these link to private github repositories. You're not missing out on anything, nothing is valued there

PROM

For the first-year PROgramming of Micro-controllers module (2017-18).

buildsys

Not actually sure for what purpose this was written (September 2018), possibly for note-taking.

hacksoc.org

Before my time as infrastructure officer for HackSoc (2018-2021), the website was built using Hakyll, inspired by Jekyll (a very powerful static site generator), written in Haskell (a suitably computer science-y language). Unfortunately, none of the committee knew enough Haskell to add new features to the site, and setting up the dependencies to build the site took around a gigabyte of disk space once GHC/Stack had had its fill. Therefore, I wrote a replacement, which while being much more bespoke and probably worse code overall, at least someone knew how to use, and could add new features to. The replacement was in use until September 2021.

Yant

Yet another note taker. Designed to properly separate the content (notes, templates) from the generator. Used for third-year (2019-2020) note taking, to partial success. The first project I wrote to include a setup.py.

lukemoll.com

The current site generator for my current domain. Written in 2019 and still in use as of 2021. Although I feel like rewriting it sometime...

HackSoc.org (again)

Having learnt a lot since re-writing the website, I decided I wasn't content to leave the backend in the state it was in. So I re-re-wrote it to be much easier to maintain by people who weren't me, and gave it some extra expressive power through Jinja templates while I was at it. It's in use since September 2021. Although markdown2 is currently used, it supports multiple Markdown backends and is likely to switch to a CommonMark-compliant implementation in the future.