2021-09-12
This is a statically-generated site hosted on GitLab pages. Before today it was built using an Emacs package called org-static-blog; now it is built using another SSG, Zola.
I made this site last year with the primary intentions being to:
As a long-time Emacs user, and desiring simplicity, I decided to use org-static-blog which worked well, and ostensibly addressed the 3 aims above. However, in reality, it turned out that the first 2 aims were incompatible. If I wanted to write something, I needed the experience to be as frictionless as possible, or I'd lose interest1. If I wanted to learn Org-mode, I needed something to actually do with it, and not just try to learn the syntax by reading the docs.
I decided to remove the second point from the list of requirements.
Given the above, some of the choice was made for me. I wasn't interested using anything like WordPress as that detracted from the third aim. The most fitting choice was to use a static site generator.
For content, the obvious choice was markdown. It's second nature to me, as I've used it for years and widely supported. Org-mode is arguably more powerful, part of its original draw, but do I need that power for a personal blog? I do not. OK, so we've decided on the content format.
I've used Jekyll, Hugo, Hexo and various other SSGs in the past, and all would have been fine. The key for me, however, is understanding the tool I'm using, and the first step towards this is generally the documentation. The problem with those SSGs is that they are primarily geared up to be used by people who just want to get their site built. This is reflected in the documentation, which typically follows the following steps:
The problem was, I didn't want to use someone else's theme, and I didn't want site layouts and what have you to be done automagically for me. That makes it easy to start, but harder to make the tool bend to my whims down the road.
Enter Zola. Their basic tutorial takes you through initialising a new site, creating some base layouts with the Tera templating engine and creating a couple of types of content. When you finish, everything is unstyled but simple and understandable. From that point, you are pointed to the remaining documentation (including installing a third-party theme, should you desire).
From this point I had an ugly site, that I understood and gradually started building up some basic templates and styling, before importing both of my previous posts. Given the huge number of posts I had before (again, 2), I decided to approach this daunting task manually. Aside from deciding what I wanted to do about images (see zola-tips), this was straightforward.
So here we are. A new site built on Zola with a few nice benefits of having done so.
Conspicuous by its absence is a mention of the fact that Zola is built with Rust and has very fast build times. In the end, I just wanted something that worked (for me), and I'll never have enough posts for build times to be an issue!
Not that I wasn't interested, but if I was in the mood to write something, it probably wasn't the same mood I'd need to mess around with Emacs, Emacs Lisp and Org-mode.