2020-08-02
Why?
Over the 2020 pandemic, while being stuck inside, I decided to re-visit a few construction sites. One of these being my previous blog which was no longer usable. Built using Jekyll static-site generator, I never followed up on updating to the latest and greatest Jekyll version on a regular basis. Trying to update led to many many issues with dependencies and breaking changes in both how posts are parsed and how some of my plugins work. In the end, after trying a lot of different things to get the site generation working again, I gave up and opted to re-create the site and copy over the content.
This turned out to be a good decision, as a lot had changed both in web-technologies but also site generators in general, and it made sense to move to using this newer stuff. To that end, I looked at other static site generators other than Jekyll.
After years of different mini Ruby projects, I no longer felt happy with using this programming language as a go-to for scripting. Furthermore, Jekyll itself just felt more bloated with features and came with a large list of dependencies. I’m not a big fan of maintaining dependencies over time, through both my work and other experiences I fervently feel that the fewer dependencies, the better.
After some digging, I came up with the following list of possible static site generators:
- Hugo_ (written in Go)
- Hyde_ (written in Python)
- Pelican_ (written in Python)
.. _Hyde: //hyde.github.io .. _Hugo: //gohugo.io .. _Pelican: //blog.getpelican.com
I already had some experience with Hugo_, using it for a few quick sites at work. For quickly generating a site, it’s great and the themes are pretty sweet. It is however very restricted in regards to tweaking how the generations works (without modifying the source code), and it does not support plugins. This was a bit problematic for me as some part of my site are generated in a different way, through the use of a plugin (or other external code), and I saw no reason to do without this.
In a previous restructuring I had a look at the Hyde_ project, which tries to be feature matched with Jekyll. In of itself that would be good, but frankly I wanted something a bit less feature-rich.
Finally I looked closer as Pelican_, which seems to have been around for a while as well as being very actively developed. From what I could read in the documentation, it was a fairly rudimentary static site generator that focused on provided a very rich plugin interface, thereby push features out to plugins. This caught my attention.
The decision came down then to either Pelican_ or Hyde_, in the end I decided to use Pelican_ as matched up with what I wanted. Setup was quick, and as it happened I was able to mostly reuse my existing blog theme.