title: citeproc section: 1 ...
citeproc - process citations using a CSL stylesheet.
citeproc [options] [file]
citeproc
reads a JSON-encoded Inputs
object from stdin
(or
from a file if a filename is provided) and writes a JSON-encoded
Result
object to stdout
. This executable can be used to add
citation processing to non-Haskell projects.
-s
FILE, --style=
FILE
: Specify a CSL style to be used.
-r
FILE, --references=
FILE
: Specify a CSL JSON bibliography to be used as a source for references.
a
FILE, --abbreviations=
FILE
: Specify a CSL abbreviations file.
l
LANG, --lang=
LANG
: Specify a locale to override the style's default.
A BCP 47 language tag is expected: for example, en
,
de
, en-US
, fr-CA
, ug-Cyrl
. The unicode extension
syntax (after -u-
) may be used to specify options for
collation. Here are some examples:
- `zh-u-co-pinyin` -- Chinese with the Pinyin collation.
- `es-u-co-trad` -- Spanish with the traditional collation
(with `Ch` sorting after `C`).
- `fr-u-kb` -- French with "backwards" accent sorting
(with `coté` sorting after `côte`).
- `en-US-u-kf-upper` -- English with uppercase letters sorting
before lower (default is lower before upper).
f
html|json, --format=
html|json
: Specify the format to be used for the entries. html
(the
default) uses HTML tags and entities for formatting. json
creates a structured JSON representation of a formatted document.
-h, --help
: Print usage information.
-V, --version
: Print version.
The input JSON should have the structure:
{ "citations": [ ...list of citations... ],
"references": [ ...list of references... ],
"style": "<style>...</style>",
"abbreviations": { ...abbreviations... },
"lang": "fr-FR" }
None of these fields is mandatory. Instead of providing
references
in the input JSON, one can specify a file
containing a CSL JSON bibliography, using the --references
option on the command line. Instead of providing a CSL
stylesheet in the JSON, one can specify a file using
the --style
option. --abbreviations
and --lang
may also be used on the command line to specify an
abbreviations file or a locale. (Command-line options
always override any values given in the JSON file.)
A citation is structured like this:
{ "citationID": "foo",
"citationItems": [ ...list of citationItems... ],
"citationNoteNumber": 3 }
Only citationItems
is necessary. Alternatively,
instead of
{ "citationItems": [ ... ] }
one can just specify an array of items directly:
[ ... ]
A citation item is structured like this:
{ "id": "foo",
"type": "suppress-author",
"label": "page",
"locator": "45",
"prefix": "see ",
"suffix": " and others" }
Only id
is mandatory. If type
is omitted, it will
be assumed to be normal-cite
(other values are
suppress-author
and author-only
).
A reference is structured like this:
{
"author": [
{
"family": "Aristotle"
}
],
"id": "aristotle:prior",
"issued": {
"date-parts": [
[
1989
]
]
},
"publisher": "Hackett",
"publisher-place": "Indianapolis",
"title": "Prior analytics",
"translator": [
{
"family": "Smith",
"given": "Robin"
}
],
"type": "book"
}
An abbreviations object has this form:
{ "default": {
"container-title": {
"Lloyd's Law Reports": "Lloyd's Rep",
"Estates Gazette": "EG",
"Scots Law Times": "SLT"
}
}
}
The abbreviations will be substituted in the output
only when the form
attribute for the style element that
renders the variable is set to short
.
The output JSON will have the structure:
{ "citations": [ ...list of strings... ],
"bibliography": [ ...list of arrays: item id and a string... ],
"warnings": [ ...list of warnings... ]
}
The contents of the entries will be HTML by default, but
if --format=json
is specified, it will be a structured
representation of formatted text.
[
"———. 1983b. “The Concept of Truth in Formalized Languages.” In ",
{
"format": "italics",
"contents": [
"Logic, Semantics, Metamathematics"
]
},
", edited by John Corcoran, 152–278. Indianapolis: Hackett."
]
This representation can be used if you want to convert the result to a format other than HTML.
John MacFarlane