Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Return BibTeX string and CSL Item JSON in the API

Context and Problem Statement

In the context of an http server, when a http client GETs a JSON data structure containing BibTeX data, which format should that have?

Considered Options

  • Offer both, BibTeX string and CSL JSON
  • Return BibTeX as is as string
  • Convert BibTeX to JSON

Decision Outcome

Chosen option: “Offer both, BibTeX string and CSL JSON”, because there are many browser libraries out there being able to parse BibTeX. Thus, we don’t need to convert it.

Pros and Cons of the Options

Offer both, BibTeX string and CSL JSON

  • Good, because this follows “Backend for Frontend”
  • Good, because Word Addin works seamless with the data provided (and does not need another dependency)
  • Good, because other clients can work with BibTeX data
  • Bad, because two serializations have to be kept

Return BibTeX as is as string

  • Good, because we don’t need to think about any conversion
  • Bad, because it is unclear how to ship BibTeX data where the entry is dependent on
  • Bad, because client needs an additional parsing logic

Convert BibTeX to JSON

More thought has to be done when converting to JSON. There seems to be a JSON format from @citation-js/plugin-bibtex. We could do an additional self-made JSON format, but this increases the number of available JSON serializations for BibTeX.

  • Good, because it could flatten BibTeX data (example: author = first # " and " # second)
  • Bad, because conversion is difficult in BibTeX special cases. For instance, if Strings are used (example: author = first # " and " # second) and one doesn’t want to flatten (“normalize”) this.

More Information

Existing JavaScript BibTeX libraries: