Reference formatting libraries
In the !135 (merged) merge request, reference formatting is implemented with Citation.js.
Pros:
- I wrote and maintain the library, so I know how to work with it and can release patches if necessary
- I got RIS, BibTeX and formatted bibliography output working quickly
Cons:
- It's in JavaScript which requires at least another runtime (NodeJS), if not another Docker container
Replacing it, suggested in the GSoC meeting of 2020-07-02, has the obvious con of costing time but also the pro of simplifying the setup. Replacing Citation.js (if we only consider exporting, not importing) means the following:
- citeproc-php does the task of rendering bibliographies. It implements the same specification as citeproc-js, the library that Citation.js uses (though citeproc-js is more widely used).
- BibTeX formatting does not need much effort, as the database is already mostly in the BibTeX format
- Both rendering bibliographies and RIS export requires creating a mapping, or finding a library that does so.
On that last point, a note: although Citation.js is written in JavaScript, the mappings are abstracted to an extent. Given that we don't need input parsing at the moment, porting would not be impossible, though perhaps hard to schedule depending on how things go.