Developers

Language Specification

CSL is defined by two documents: the human-readable CSL specification, and the computer-readable CSL schema, written in the RELAX NG compact syntax, which can be used for validation of CSL styles and locale files.

Note: We, the authors of the CSL schema, have agreed to relicense the schema under the more permissible MIT license, although we still have an open pull request to change the license text in the schema to reflect this decision.

Code repositories

We maintain several Git repositories on GitHub at https://github.com/citation-style-language. The main repositories are:

  • documentation - for CSL documentation, including the source of the CSL specification
  • journals - for storing publisher’s journal metadata (which we use to generate most of our “dependent” styles)
  • locales - for CSL locale files
  • schema - for the CSL schema
  • styles - for CSL styles
  • styles-distribution - this mirror of the “styles” repo only updates after the Travis CI tests clear, and offers up-to-date style timestamps.
  • utilities - for scripts used to maintain CSL styles and locale files
  • test-suite - test suite maintained by Frank Bennett for testing of citeproc-js. The test suite can be used by authors of other CSL processors, but contains tests that go beyond the scope of the CSL specification.

CSL Processors

Open source CSL 1.0.1-compatible CSL processors include:

Name Programming Language Author Known Implementations Comments
citeproc‑js JavaScript Frank Bennett Zotero, Mendeley, Qiqqa, Docear, KCite
pandoc-citeproc Haskell John MacFarlane pandoc Continuation of Andrea Rossato's citeproc‑hs, which was last updated in 2015.
citeproc‑php PHP Sebastian Böttger Replaces the original citeproc‑php by Ron Jerome, which was last updated in 2013.
citeproc‑ruby Ruby Sylvester Keil
citeproc‑java Java Michel Krämer Java wrapper for citeproc-js
citeproc‑py Python Brecht Machiels
citeproc‑dotnet .NET Fouke Boss

Mappings

A mapping between Zotero fields and CSL variables can be found at http://aurimasv.github.io/z2csl/typeMap.xml (repo). A similar mapping for Mendeley can be found at https://service.elsevier.com/app/answers/detail/a_id/22175/supporthub/mendeley/.

Development Process

Our governance document describes how we aim to run the CSL project. In short, we strive to develop CSL in an open, consensus-seeking way. Our goal is to improve scholarly communication by automating the correct formatting of citations, and by stimulating cooperation and compatibility between the different citation software products. Our primary communication channel for announcements, discussions, and decision making is the public xbiblio-devel mailing list (Nabble mirror). We also use the issue trackers of our GitHub repositories to keep track of issues, and while discussions take place there as well, final design decisions are always made on the mailing list. While CSL always has had close ties to Zotero, the two are independent projects. Still, many CSL contributors are Zotero users, and the lively Zotero forums continue to play an important role in receiving user feedback.

Project History

Release Timeline

Date Version Resources Comments
September 3, 2012 1.0.1 Schema, Specification Announcement and Release notes.
May 30, 2010 1.0 Schema, Specification Announcement. Update of the specification. No changes were made to the CSL 1.0 schema.
March 22, 2010 1.0 Schema, Specification Announcement and Upgrade notes. First release of the CSL specification. CSL 1.0 was first supported by Zotero 2.1, Mendeley 0.9.8, and Papers2 (for Mac).
February 1, 2010 0.8.1 Schema Announcement
March 21, 2009 0.8 Schema

Hosting Changes

Prior to the move to GitHub, from late 2009 to March 2011, the project code was maintained in Mercurial repositories on Bitbucket.org (see the mostly retired Bitbucket repositories of Bruce D’Arcus), and before that, from February 2006 to late 2009, in an SVN repository on SourceForge (see the xbiblio SourceForge project page). Before migrating to GitHub during late 2010/early 2011, CSL styles were separately maintained in the now retired Zotero SVN. The xbiblio-devel mailing list, hosted by SourceForge, has been in continued use since 2004.