Hi, all.  I'm the author of the citeproc-js processor that has figured
a bit in this thread (Jakob tipped me off to the discussion last week,
I'm a late arrivee).

I can offer a couple of items of information that might be relevant.
There was a mention early on that citeproc-js requires E4X for parsing
XML, which is not widely implemented in browsers.  I've done a little
work on that end, and the processor now runs in IE6 and later, Google
Chrome and Safari (including iPhone), as well as the gecko-based
browsers (Firefox etc).  So client-side deployments should be

The other item concerns the JSON input format for the processor.  The
structure of records is as Jakob has outlined in the wiki page.  There
is also a need for an open description of the use of the item types
and field names set in the CSL specification -- the mappings between a
user record and a CSL input object.  Until now, this has largely been
driven by the needs of Zotero, and with a rapid pace of development
and the processor closely tied to the Zotero source code, the Zotero
code itself pretty much came to serve as the primary reference for

With citeproc-js now becoming available as a separate product, there
is a need for a more accessible description of the mapping
recommendations.  I've done a little work in the past few days to
extract mappings of actual CSL fields in use by Zotero:


Note that these mapping tables are descriptive, not prescriptive.
They just show the conventions that have been adopted in Zotero, and
around which the styles in the Zotero style repository have been
constructed.  As a practical matter, systems that map records in these
patterns should be able to take advantage of the styles in the

Frank Bennett

Reply via email to