Developers

Development Process

We strive to develop CSL in an open, consensus-seeking way. Our goal is to improve scholarly communication and stimulate cooperation and compatibility between CSL-supporting software. 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.

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.

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
  • 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

Frank Bennett, the author of citeproc-js, maintains the CiteProc Test Mercurial Bitbucket repository, which contains a test suite for 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-jsJavaScriptFrank BennettZotero, Mendeley, Qiqqa, Docear, KCite
citeproc-hsHaskellAndrea Rossatopandoc
citeproc-phpPHPRon JeromeDrupal's Bibliography Module, BibSonomy
citeproc-rubyRubySylvester Keil
citeproc-javaJavaMichel KrämerJava wrapper for citeproc-js
citeproc-pyPythonBrecht Machielsnot to be confused with the unmaintained and identically named citeproc-py (Python) by Bruce D'Arcus

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 http://support.mendeley.com/customer/portal/articles/364144-csl-type-mapping.

Project History

Release Timeline

Date
Version
Resources
Comments
September 3, 20121.0.1Schema, SpecificationAnnouncement and Release notes.
May 30, 20101.0Schema, SpecificationAnnouncement. Update of the specification. No changes were made to the CSL 1.0 schema.
March 22, 20101.0Schema, SpecificationAnnouncement 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, 20100.8.1SchemaAnnouncement
March 21, 20090.8Schema

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.