The Citation Style Language (CSL) is an XML grammar for expressing the detailed requirements of a citation style. A CSL processor is a tool that generates citations and bibliographies by applying CSL style rules to bibliographic data.
The citeproc-js
CSL processor is over a decade in service, a fact that shows through in ways both good and bad. On the downside, the code base is not pretty, and can serve as a solid illustration of the burden of technical debt (in case you need one of those for your computer science class). On the upside, though, citeproc-js
passes a suite of over 1,300 integration tests with flying colors. When run in CSL-M mode [1] it can handle multilingual and legal content with a flexibility and precision unrivaled by any other tool at any price. And it has been quite heavily field-tested, as the citation formatter driving word processor integration in both Mendeley and Zotero.
More important than fleeting badges of popularity, though, is the CSL standard. Developers can take comfort in the technical strength of the CSL Specification, and the existence of other processors under active development. CSL is the modern way to handle bibliographic projects, and citeproc-js
is a convenient way to take advantage of it.
If you think you have found a processor bug, you can help track it down by submitting a test item or items that expose the error. To submit an item, join the public Jurism Test Submission group <https://www.zotero.org/groups/2339078/jurism_test_submissions>, sync, create a collection named for the style that shows the error, drop the item into it, jot a description of the problem in the Abstract field, and sync again.
For errors not associated with a particular style or item, file reports on the citeproc-js GitHub tracker <https://github.com/juris-m/citeproc-js/issues>.
The processor files citeproc.js` and citeproc_commonjs.js
are built automatically when tests are run (see below).
The processor is supported by a little over 1,300 test fixtures, which can be run from a git
clone of this repository after installing the Citeproc Test Runner. The system requirements (apart from git
itself) are:
git
- Needed to fetch a clone of the
citeproc-js
repository on GitHub.node.js
- Any recent-ish version should work. Version 7 is used for automated testing.
mocha
- Install Mocha globally with
npm install --global mocha
.java
- This is used to perform schema validation. Browser extension is not required, a basic command-line install is all you need.
Once the system requirements are set up, install the test runner with the following command:
npm install -g citeproc-test-runner
You can now run the full suite of integration tests from the citeproc-js
directory with the following command:
cslrun -a
You can review the full set of options by running``cslrun -h``. For more information on running tests, see the citeproc-js Manual or the README of the Citeproc Test Runner
The processor itself is contained in a single file. Two copies are in the repository: citeproc_commonjs.js
(an ES6 module); and citeproc.js
(a raw bundle of JavaScript). The former is probably what you will want for most purposes today.
The following command will pull the sources of the processor and supporting files:
git clone --recursive https://github.com/Juris-M/citeproc-js.git
Directories of the repository contain a number of tools used for development and testing:
src
cslrun
, distributed separately in the citeproc-test-runner
package via npm
(see below for details).
csl-schemata
demo
docs
citeproc-js
manual on ReadTheDocs.
fixtures/local
citeproc-js
processor or to the CSL-M grammar variant.
fixtures/std
fixtures/styles
juris-modules
locale
tools
citeproc-js
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4