.. 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