We currently generate a BibTeX, MODS XML, and Endnote file for each paper. Currently, more than 300,000 bibliography files are being written on each build, and furthermore, the Hugo templates read each of these files again during the website generation.
I think we should do the following:
Change the build pipeline to write the bibliography entries into the Hugo data files.
Since we currently rely on bibutils, the closest functional equivalent would be to add calls to the bibutils executables within the Python library. I haven't seen any Python bindings for nor Python-native alternatives to bibutils, unfortunately. This might introduce some additional runtime overhead.
On the other hand, we would gain a speed-up from not having to write 300,000+ files. I suspect that this outweighs any overhead from calling bibutils from Python, but that would have to be tested.
Additionally, I would expect a speed-up during the Hugo generation due to Hugo not having to open and read 300,000+ extra files.
Add JavaScript to programmatically trigger a file download.
We currently generate a BibTeX, MODS XML, and Endnote file for each paper. Currently, more than 300,000 bibliography files are being written on each build, and furthermore, the Hugo templates read each of these files again during the website generation.
I think we should do the following: