Wed 27 December 2017

For several years I have used Drupal for this site, but it is becoming increasingly difficult: debian has removed drupal7 from Buster and will not provide a package for Drupal 8.

Drupal7 is no longer maintained, many modules are no longer updated; it would be time to switch to Drupal8, but Drupal upgrades are a pain in the ass.

Actually Drupal is overestimated for my needs, so I thought of a static sites generator. After a bit of research, the most eligible are Hugo and Pelican.

I started to go deep inside Hugo, and I loved it, because of the ease of customization. Hugo is debian packaged, but Hugo's development is pretty fast, so the Debian version is already a bit outdated.

But the most difficult thing for me was the search for a theme; the requirements were:

  • cute (according to my opinionable tastes)
  • responsive
  • HTML5
  • management of multilingual articles
  • management of page aliases (to maintain backward compatibility with old drupal pages)
  • free of embedded javascript
  • possibly totally free of javascript (HTML5 does miracles)

The last 2 points are a bit against the current web development, which tends to link (when it goes well) or to embed a lot of libraries, pinned at a certain version. All this, often, for a single function that allows a stylistic quirk. The problem with embedded and/or pinned to a certain version libraries is that they do not receive updates, even when there are serious security issues. I have seen recent updated themes with incorporated libraries dating back a few years ago ...

At one point I also thought of making myself a theme for myself, but, not being a web developer, not having a great aesthetic sense and not much time, I had to give up.

In my research, however, I came across the theme m.css of Vladimír Vondruš; when I read his motivations I found them similar to mine, and I decided to give a chance to Pelican and Vladimír's theme.

Pelican also is Debian packaged and, being the development most stable, the version is the latest available. The real lack of pelican is aliases managing, but I found the plugin pelican-alias Chris Williams (Nitron), which was a good start point. I had to provide a patch so that it could also handle the aliases of the translated pages, and I asked for inclusion in the code. I trust that sooner or later I can enter the mainstream.

The theme I chose did not cover all my needs, but Vladimír is a kind and helpful person, and with him I managed to fix most of them:

  • he has accepted my pull request so each page can have its own language
  • he has created a better solution for my request to manage pages without explicit summary
  • he correctly explained because he can not keep the python2 version and he gave me suggestions for converting the debian package to python3. I then updated bug debian 875255 with the request to use python3 instead of python2.
  • has not yet replied to my request to generate links to translated pages, but, being an enhancement, I haven't asked anymore if it's willing to give following the idea.

All in all I think I have found a good alternative to the old CMS, and to be able to proceed with the production of the new site. I hope also to be able to keep it a bit more updated.