CSL is more than citation styles

Martin Fenner
August 8, 2013 3 min read

According to the description (Name, n.d.) on the Citation Style Language (CSL) website, CSL is an open XML-based language to describe the formatting of citations and bibliographies. We use reference managers such as Zotero, Mendeley, or Papers to format our references in manuscripts we submit for publication, and underneath a CSL processor such as Citeproc-js ( - together with a CSL file for a particular citation style - is doing the work:

Citation processing during manuscript writing

When the journal article is accepted the publisher takes the text with the formatted text citation and turns it into XML, a process that is error-prone and takes time:

Citation processing by the publisher

It is not hard to see that something is very wrong here:

It is also obvious how the ideal workflow should look like:

Ideal workflow of citation processing

We go from structured content to structured content, and never use citations formatted as text as intermediary steps in the workflow.

What is surprising is that this is an ideal workflow and not something that publishers actually do. Most journal author instructions don’t even mention CSL styles (I work for PLOS and they are no exception). There are some issues to be solved, but they are all minor:

  • The Citeproc JSON citation format isn’t really an official standard, but rather something invented for the most popular CSL processor, Citeproc-js.
  • People like to fight over standards, and there are always people you prefer bibtex, RIS, MODS or BibJSON over Citeproc JSON, or want authors to to use JATS XML.

I would really like to push Citeproc JSON as a standard bibliographic exchange format for authors. There are several things I like about Citeproc JSON:

  • It is the native format to format citations, so it is used internally by many reference managers anyway.
  • Citeproc JSON is really good in handling all the possible variations of author names. Putting all authors into a single text field as in bibtex requires a lot of trickery to get it right.
  • JSON is a standard serialization format and there are a kinds of libraries in different programming languages to do things like searching, sorting or finding of duplicates. And JSON is easily extensible, e.g. if we would want to add ORCID identifiers for authors.

I have five suggestions to move forward:

Carmeliet, P. (2005). Angiogenesis in life, disease and medicine. Nature, 438(7070), 932–936.
Contopoulos-Ioannidis, D. G., Alexiou, G. A., Gouvias, T. C., & Ioannidis, J. P. A. (2008). Life Cycle of Translational Research for Medical Interventions. Science, 321(5894), 1298–1299.
Fenner, M. (2011). Direct links to figures and tables using component DOIs. Gobbledygook.
Name, Y. (n.d.). Citation Style Language. In Citation Style Language. Retrieved February 21, 2021, from
The Nobel Prize in Physiology or Medicine 2005. (2015). In

Other Formats