Rework with Nikola

To revive my blog, I have spent the last few days converting my website from Pelican to Nikola. So far the experience has been quite great and I'll try to shortly sum up why.

For me, the use of static site generators has always been about ease of use and robustness. However, with Pelican I eventually found myself in a situation with too many customizations (theme, functionality only achievable through extra plugins). This obviously proved quite limiting.

I looked around for other static site generators already more than a year ago: By now there are plenty. Languages such as Ruby or JavaScript (in whatever hip framework of the day) were an absolute no-go for me, but I wanted something that could potentially do templates in Jinja2, which is quite powerful and versatile and I had already gotten acquainted with through working with Ansible. Nikola provides just that, being Python based (like Pelican).

Last year I had the opportunity to work with Nikola on the website for Linux Audio Conference 2018, which was a very pleasant experience. There I was able to integrate scripts (in a disgusting way, I have to admit) to scrape calendar events and turn their information into pages and automatically deploy it and additional data required for our streaming service with the VOC.

This week I finally pulled the plug on the old theme and way of building and deploying my website. This felt quite good, as I deleted quite a few things. The advantages of Nikola over Pelican became apparent very early:

  • Less fragmentation: The CLI is much cleaner, there is only one configuration file
  • Easier integration: Multi-level pages, navigation menu, image galleries and robots.txt generation without hackery and additional plugins
  • more strict use of ReStructuredText

In the end I was quite happy to not deal with so many custom solutions anymore and even exchanged my custom theme with one of the current default ones. That being said: Theming seems also more straight forward to customize... I just didn't feel like doing that.

Closing, I would like to add, that I hope this will lead to a more frequent release flow on my website again. As you can imagine a lot has changed since 2016. More on that in the upcoming posts. Promise!