Working on my blog

published on

Over the Christmas break I have (yet again) overhauled this blog. I had reworked it earlier this year already, when I moved the blog from the www to the blog subdomain and changed from the hydeout to the minimal-mistakes Jekyll theme. However, I was not convinced of the result for various reasons.

While the minimal-mistakes theme came with a lot of functionality, it was simply too much. It strayed far from the minimalistic design which I was aiming for. The blog looked very different on mobile devices compared to desktops. Ironically, it felt overloaded either way.

Additionally, I was tired of Jekyll. It served me well but I never managed to get a good understanding of the tool itself. Many basic features like e.g. displaying when posts were last modified were completely missing from the static site generator as such. Jekyll extensions can add this functionality — but even those I needed to monkey-patch in one instance. In general, I had troubles understanding Ruby, its different versions and its gems: In particular, I was astonished to see that a clean build of my tiny blog took around 4 minutes because the gem installation took so long.

Of course, I could have invested more time into learning about these technologies and alleviate most of the issues, but I am time constrained and have to prioritize things. Familiarizing myself with Ruby would be the 100th item on my priority list; simply because I currently don’t see myself developing in Ruby anytime soon.

On the other hand, I’ve wanted to learn Go for more than a year now1. Using hugo, a static site generator written in Go, for my blog just seemed more obvious then. The fact that hugo comes with more built-in functionality compared to Jekyll and is distributed by various GNU/Linux distros as one single standalone binary, makes maintaining the blog simpler:

  • No need for a ruby environment, gems and Gemfiles, and third-party extensions.
  • Often there is one hugoesk solution to the problem. And given the hugo’s popularity others have found it most likely already.

The last piece in the migration puzzle was a simple, yet across all devices visually appealing hugo theme: hugo-flex. It supports post tags and categories, allows custom css and JavaScript (I need that for MathJax), and automatically creates an RSS feed.

The only thing I missed from hugo-flex compared to the minimal-mistakes theme were the notice classes. With some minor tweaks, however, I managed to load a minimal-mistakes inspired scss such that the notice functionality is still available to me.

The only thing I find unfortunate about the second migration of my blog within a year, is that I broke the existing links to my posts — again: All posts are served under a different URL now and following the old links will throw 404 errors2. However, it is a price I am willing to pay for the result I get now: a beautiful and functional blog setup which is a solid foundation for more posts in the future.

  1. Haven’t even managed that yet. This simply emphasizes how unrealistic learning Ruby is for me at the moment. ↩︎

  2. Apologies to everyone whose links I broke. No more migrations going forward. Pinky promise ;) ↩︎