From 7ee6c5bec5ae8fee8067403a9292b5ab8c981634 Mon Sep 17 00:00:00 2001 From: David Runge Date: Sun, 21 Apr 2019 01:13:59 +0200 Subject: posts/2019/rework-with-nikola.rst: Adding first new blog post since forever. Because nikola. --- posts/2019/rework-with-nikola.rst | 84 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 posts/2019/rework-with-nikola.rst (limited to 'posts') diff --git a/posts/2019/rework-with-nikola.rst b/posts/2019/rework-with-nikola.rst new file mode 100644 index 0000000..41fdda9 --- /dev/null +++ b/posts/2019/rework-with-nikola.rst @@ -0,0 +1,84 @@ +.. title: Rework with Nikola +.. slug: rework-with-nikola +.. date: 2019-04-21 00:30:05 UTC+02:00 +.. tags: nikola, pelican +.. category: webdev +.. link: +.. description: +.. type: text + +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. + +.. TEASER_END + +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 |static_site_generators|. 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 +|lac2018|, 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! + +.. |pelican| raw:: html + + Pelican + +.. |nikola| raw:: html + + Nikola + +.. |static_site_generators| raw:: html + + plenty + +.. |ruby| raw:: html + + Ruby + +.. |javascript| raw:: html + + JavaScript + +.. |ansible| raw:: html + + Ansible + +.. |lac2018| raw:: html + + Linux Audio Conference 2018 + +.. |voc| raw:: html + + VOC -- cgit v1.2.3-70-g09d2