2020 reflection on gnunet.org bibliography website

At the end of 2017 I started working on the misfortune you can look at bib.gnunet.org. Its source code is derived from Free Haven’s anonbib.

The requirement of having a self-hosted bibliography website was introduced with the structure of the previous Drupal based website we had. It contained research of our own throughout the almost 20 years of existence of GNUnet, as well as reference papers.

bib.gnunet.org in its current form was never meant to go live, which is at least my personal opinion on it. However our server was also not meant to crash and require switching to websites which were only 3/4th done. The code base is probably good looking for what the anonbib author’s had to work with when they created it. Sending patches back to anonbib, or even bib entries (many dead URLs) is not possible, but might be (we had a little discussion with the developers involved in anonbib). I’ve done as much as I think is okay to do with it before you can consider a complete rewrite.

The format is flawed in my opinion. The bibtex you get is a hack on top of bibtex to store metadata along with the bibtex you want to process. I would apologize for doing this, but it’s anonbib who started this.

We have a python2 based static website generator here. Solutions exist far longer in different languages, but they don’t look very appealing to output what we want. The ideal integration for gnunet.org (and covering taler.net this way as well) would be to either write something from scratch as a stand-alone application to generate a better looking (in code, layout and configurable) bib.gnunet.org close to our jinaj2 generator in looks OR write a couple of modules for the jinja2 generator so that this is handled by the website itself.

The problem with “just” integrating it into the jinaj2 website generator is that there is big amount of static data pulled on first run with the generator as it exists today, to cache the documents.

The main problem with the current bib website is that it builds on wrong bibtex, ties us to python2 (not necessarily bad, but the general maintainability of the gnunetbib and anonbib code is questionable not by quality but by writing style of what it was originally translated from) and you get long pages by default and no single detail pages or even user-friendly searchable content.