citeproc-ruby 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +78 -0
- data/lib/citeproc.rb +100 -0
- data/lib/citeproc/bibliography.rb +57 -0
- data/lib/citeproc/data.rb +149 -0
- data/lib/citeproc/date.rb +133 -0
- data/lib/citeproc/formatter.rb +38 -0
- data/lib/citeproc/item.rb +53 -0
- data/lib/citeproc/name.rb +284 -0
- data/lib/citeproc/processor.rb +166 -0
- data/lib/citeproc/selector.rb +61 -0
- data/lib/citeproc/variable.rb +82 -0
- data/lib/citeproc/version.rb +3 -0
- data/lib/csl/locale.rb +223 -0
- data/lib/csl/node.rb +72 -0
- data/lib/csl/nodes.rb +1364 -0
- data/lib/csl/renderer.rb +88 -0
- data/lib/csl/sort.rb +53 -0
- data/lib/csl/style.rb +110 -0
- data/lib/csl/term.rb +124 -0
- data/lib/extensions/core.rb +43 -0
- data/lib/plugins/filters/bibtex.rb +12 -0
- data/lib/plugins/formats/default.rb +134 -0
- data/lib/plugins/formats/html.rb +67 -0
- data/lib/support/attributes.rb +99 -0
- data/lib/support/tree.rb +80 -0
- data/resource/locale/locales-af-ZA.xml +304 -0
- data/resource/locale/locales-ar-AR.xml +304 -0
- data/resource/locale/locales-bg-BG.xml +304 -0
- data/resource/locale/locales-ca-AD.xml +304 -0
- data/resource/locale/locales-cs-CZ.xml +304 -0
- data/resource/locale/locales-da-DK.xml +304 -0
- data/resource/locale/locales-de-AT.xml +304 -0
- data/resource/locale/locales-de-CH.xml +304 -0
- data/resource/locale/locales-de-DE.xml +332 -0
- data/resource/locale/locales-el-GR.xml +303 -0
- data/resource/locale/locales-en-US.xml +313 -0
- data/resource/locale/locales-es-ES.xml +304 -0
- data/resource/locale/locales-et-EE.xml +304 -0
- data/resource/locale/locales-fr-FR.xml +304 -0
- data/resource/locale/locales-he-IL.xml +304 -0
- data/resource/locale/locales-hu-HU.xml +304 -0
- data/resource/locale/locales-is-IS.xml +304 -0
- data/resource/locale/locales-it-IT.xml +304 -0
- data/resource/locale/locales-ja-JP.xml +304 -0
- data/resource/locale/locales-kh-KH.xml +303 -0
- data/resource/locale/locales-ko-KR.xml +304 -0
- data/resource/locale/locales-mn-MN.xml +304 -0
- data/resource/locale/locales-nb-NO.xml +304 -0
- data/resource/locale/locales-nl-NL.xml +304 -0
- data/resource/locale/locales-nn-NO.xml +304 -0
- data/resource/locale/locales-pl-PL.xml +304 -0
- data/resource/locale/locales-pt-BR.xml +304 -0
- data/resource/locale/locales-pt-PT.xml +304 -0
- data/resource/locale/locales-ro-RO.xml +304 -0
- data/resource/locale/locales-ru-RU.xml +304 -0
- data/resource/locale/locales-sk-SK.xml +304 -0
- data/resource/locale/locales-sl-SI.xml +304 -0
- data/resource/locale/locales-sr-RS.xml +304 -0
- data/resource/locale/locales-sv-SE.xml +304 -0
- data/resource/locale/locales-th-TH.xml +304 -0
- data/resource/locale/locales-tr-TR.xml +304 -0
- data/resource/locale/locales-uk-UA.xml +304 -0
- data/resource/locale/locales-vi-VN.xml +304 -0
- data/resource/locale/locales-zh-CN.xml +304 -0
- data/resource/locale/locales-zh-TW.xml +304 -0
- data/resource/schema/csl-categories.rnc +39 -0
- data/resource/schema/csl-data.rnc +98 -0
- data/resource/schema/csl-terms.rnc +106 -0
- data/resource/schema/csl-types.rnc +39 -0
- data/resource/schema/csl-variables.rnc +182 -0
- data/resource/schema/csl.rnc +941 -0
- data/resource/style/acta-materialia-x.csl +128 -0
- data/resource/style/advanced-engineering-materials-x.csl +121 -0
- data/resource/style/ama.csl +185 -0
- data/resource/style/ama2-x.csl +179 -0
- data/resource/style/apa-x.csl +324 -0
- data/resource/style/apa.csl +254 -0
- data/resource/style/apsa-x.csl +163 -0
- data/resource/style/apsa.csl +176 -0
- data/resource/style/asa-x.csl +203 -0
- data/resource/style/asa.csl +216 -0
- data/resource/style/asm-journals-x.csl +131 -0
- data/resource/style/bibtex-x2.csl +175 -0
- data/resource/style/bluebook-demo-x.csl +392 -0
- data/resource/style/bluebook-demo.csl +942 -0
- data/resource/style/chicago-author-date-listing.csl +434 -0
- data/resource/style/chicago-author-date.csl +369 -0
- data/resource/style/chicago-fullnote-bibliography-bb.csl +928 -0
- data/resource/style/chicago-fullnote-bibliography.csl +695 -0
- data/resource/style/chicago-note-bibliography.csl +446 -0
- data/resource/style/chicago-note.csl +388 -0
- data/resource/style/greek-chicago-x.csl +1182 -0
- data/resource/style/harvard1-institution-italic.csl +190 -0
- data/resource/style/harvard1.csl +181 -0
- data/resource/style/ieee.csl +129 -0
- data/resource/style/mhra-x.csl +312 -0
- data/resource/style/mhra.csl +390 -0
- data/resource/style/mhra_note_without_bibliography-x.csl +330 -0
- data/resource/style/mhra_note_without_bibliography.csl +338 -0
- data/resource/style/mla-x.csl +178 -0
- data/resource/style/mla.csl +189 -0
- data/resource/style/nature-x.csl +81 -0
- data/resource/style/nature.csl +88 -0
- data/resource/style/nlm.csl +117 -0
- data/spec/citeproc/bibliography_spec.rb +45 -0
- data/spec/citeproc/citeproc_spec.rb +76 -0
- data/spec/citeproc/date_spec.rb +85 -0
- data/spec/citeproc/formatter_spec.rb +101 -0
- data/spec/citeproc/item_spec.rb +71 -0
- data/spec/citeproc/name_spec.rb +30 -0
- data/spec/citeproc/processor_spec.rb +61 -0
- data/spec/citeproc/selector_spec.rb +82 -0
- data/spec/citeproc/variable_spec.rb +69 -0
- data/spec/csl/locale_spec.rb +208 -0
- data/spec/csl/node_spec.rb +25 -0
- data/spec/csl/nodes_spec.rb +140 -0
- data/spec/csl/style_spec.rb +62 -0
- data/spec/csl/term_spec.rb +56 -0
- data/spec/fixtures/dates.yaml +80 -0
- data/spec/fixtures/names.yaml +115 -0
- data/spec/fixtures/nodes.yaml +245 -0
- data/spec/spec_helper.rb +18 -0
- data/spec/support/attributes_spec.rb +39 -0
- data/spec/support/tree_spec.rb +163 -0
- metadata +264 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
## CSL Types
|
2
|
+
div {
|
3
|
+
cs-types =
|
4
|
+
"article"
|
5
|
+
| "article-journal"
|
6
|
+
| "article-magazine"
|
7
|
+
| "article-newspaper"
|
8
|
+
| "bill"
|
9
|
+
| "book"
|
10
|
+
| "broadcast"
|
11
|
+
| "chapter"
|
12
|
+
| "entry"
|
13
|
+
| "entry-dictionary"
|
14
|
+
| "entry-encyclopedia"
|
15
|
+
| "figure"
|
16
|
+
| "graphic"
|
17
|
+
| "interview"
|
18
|
+
| "legal_case"
|
19
|
+
| "legislation"
|
20
|
+
| "manuscript"
|
21
|
+
| "map"
|
22
|
+
| "motion_picture"
|
23
|
+
| "musical_score"
|
24
|
+
| "pamphlet"
|
25
|
+
| "paper-conference"
|
26
|
+
| "patent"
|
27
|
+
| "personal_communication"
|
28
|
+
| "post"
|
29
|
+
| "post-weblog"
|
30
|
+
| "report"
|
31
|
+
| "review"
|
32
|
+
| "review-book"
|
33
|
+
| "song"
|
34
|
+
| "speech"
|
35
|
+
| "thesis"
|
36
|
+
| "treaty"
|
37
|
+
| "webpage"
|
38
|
+
}
|
39
|
+
|
@@ -0,0 +1,182 @@
|
|
1
|
+
|
2
|
+
## Contributor Roles
|
3
|
+
div {
|
4
|
+
cs-names =
|
5
|
+
"author"
|
6
|
+
|
|
7
|
+
## use for series editor
|
8
|
+
"collection-editor"
|
9
|
+
| "composer"
|
10
|
+
|
|
11
|
+
## use for book author when citing a book chapter
|
12
|
+
"container-author"
|
13
|
+
| "editor"
|
14
|
+
| "editorial-director"
|
15
|
+
| "interviewer"
|
16
|
+
| "original-author"
|
17
|
+
| "recipient"
|
18
|
+
| "translator"
|
19
|
+
}
|
20
|
+
|
21
|
+
## Dates
|
22
|
+
div {
|
23
|
+
cs-dates =
|
24
|
+
"accessed"
|
25
|
+
| "container"
|
26
|
+
| "event-date"
|
27
|
+
| "issued"
|
28
|
+
| "original-date"
|
29
|
+
| "submitted"
|
30
|
+
}
|
31
|
+
|
32
|
+
## Numbers
|
33
|
+
div {
|
34
|
+
cs-numbers =
|
35
|
+
"edition"
|
36
|
+
| "issue"
|
37
|
+
| "number"
|
38
|
+
| "number-of-volumes"
|
39
|
+
| "volume"
|
40
|
+
}
|
41
|
+
|
42
|
+
## Simple Variables
|
43
|
+
div {
|
44
|
+
cs-variables =
|
45
|
+
|
46
|
+
##
|
47
|
+
"abstract"
|
48
|
+
|
|
49
|
+
## notes made by a reader about the content of the resource
|
50
|
+
"annote"
|
51
|
+
|
|
52
|
+
## the name of the archive
|
53
|
+
"archive"
|
54
|
+
|
|
55
|
+
## the location within an archival collection (for example, box and folder)
|
56
|
+
"archive_location"
|
57
|
+
|
|
58
|
+
## the place of the archive
|
59
|
+
"archive-place"
|
60
|
+
|
|
61
|
+
## issuing authority (for patents) or judicial authority (such as court
|
62
|
+
## for legal cases)
|
63
|
+
"authority"
|
64
|
+
|
|
65
|
+
##
|
66
|
+
"call-number"
|
67
|
+
|
|
68
|
+
##
|
69
|
+
"chapter-number"
|
70
|
+
|
|
71
|
+
## the number used for the in-text citation mark in numeric styles
|
72
|
+
"citation-number"
|
73
|
+
|
|
74
|
+
## the label used for the in-text citation mark in label styles
|
75
|
+
"citation-label"
|
76
|
+
|
|
77
|
+
## collection number; for example, series number
|
78
|
+
"collection-number"
|
79
|
+
|
|
80
|
+
## the tertiary title for the cited item; for example, a series title
|
81
|
+
"collection-title"
|
82
|
+
|
|
83
|
+
## the secondary title for the cited item (book title for book chapters,
|
84
|
+
## journal title for articles, etc.).
|
85
|
+
"container-title"
|
86
|
+
|
|
87
|
+
##
|
88
|
+
"DOI"
|
89
|
+
|
|
90
|
+
## an edition description
|
91
|
+
"edition"
|
92
|
+
|
|
93
|
+
## the name or title of a related event such as a conference or hearing
|
94
|
+
"event"
|
95
|
+
|
|
96
|
+
## the location or place for the related event
|
97
|
+
"event-place"
|
98
|
+
|
|
99
|
+
## The number of a preceding note containing the first reference to this
|
100
|
+
## item. Relevant only for note-based styles, and null for first references.
|
101
|
+
"first-reference-note-number"
|
102
|
+
|
|
103
|
+
##
|
104
|
+
"genre"
|
105
|
+
|
|
106
|
+
##
|
107
|
+
"ISBN"
|
108
|
+
|
|
109
|
+
## the issue number for the container publication
|
110
|
+
"issue"
|
111
|
+
|
|
112
|
+
## For legislation and patents; scope of geographic relevance for a document.
|
113
|
+
"jurisdiction"
|
114
|
+
|
|
115
|
+
##
|
116
|
+
"keyword"
|
117
|
+
|
|
118
|
+
## a description to locate an item within some larger container or
|
119
|
+
## collection; a volume or issue number is a kind of locator, for example.
|
120
|
+
"locator"
|
121
|
+
|
|
122
|
+
## medium description (DVD, CD, etc.)
|
123
|
+
"medium"
|
124
|
+
|
|
125
|
+
## a short inline note, often used to refer to additional details of the resource
|
126
|
+
"note"
|
127
|
+
|
|
128
|
+
## a document number; useful for reports and such
|
129
|
+
"number"
|
130
|
+
|
|
131
|
+
## refers to the number of pages in a book or other document
|
132
|
+
"number-of-pages"
|
133
|
+
|
|
134
|
+
## refers to the number of items in multi-volume books and such
|
135
|
+
"number-of-volumes"
|
136
|
+
|
|
137
|
+
## the name of the original publisher
|
138
|
+
"original-publisher"
|
139
|
+
|
|
140
|
+
## the place of the original publisher
|
141
|
+
"original-publisher-place"
|
142
|
+
|
|
143
|
+
## title of a related original version; often useful in cases of translation
|
144
|
+
"original-title"
|
145
|
+
|
|
146
|
+
## the range of pages an item covers in a containing item
|
147
|
+
"page"
|
148
|
+
|
|
149
|
+
## the first page of an item within a containing item
|
150
|
+
"page-first"
|
151
|
+
|
|
152
|
+
## the name of the publisher
|
153
|
+
"publisher"
|
154
|
+
|
|
155
|
+
## the place of the publisher
|
156
|
+
"publisher-place"
|
157
|
+
|
|
158
|
+
## for related referenced resources; used for legal case histories, but
|
159
|
+
## may be relevant for other contexts.
|
160
|
+
"references"
|
161
|
+
|
|
162
|
+
## a section description (for newspapers, etc.)
|
163
|
+
"section"
|
164
|
+
|
|
165
|
+
## the (typically publication) status of an item; for example "forthcoming"
|
166
|
+
"status"
|
167
|
+
|
|
168
|
+
## the primary title for the cited item
|
169
|
+
"title"
|
170
|
+
|
|
171
|
+
##
|
172
|
+
"URL"
|
173
|
+
|
|
174
|
+
##
|
175
|
+
"version"
|
176
|
+
|
|
177
|
+
## volume number for the container periodical
|
178
|
+
"volume"
|
179
|
+
|
|
180
|
+
## The year suffix for author-date styles; e.g. the 'a' in '1999a'.
|
181
|
+
"year-suffix"
|
182
|
+
}
|
@@ -0,0 +1,941 @@
|
|
1
|
+
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
|
2
|
+
namespace atom = "http://www.w3.org/2005/Atom"
|
3
|
+
namespace cs = "http://purl.org/net/xbiblio/csl"
|
4
|
+
namespace dc = "http://purl.org/dc/elements/1.1/"
|
5
|
+
namespace sch = "http://www.ascc.net/xml/schematron"
|
6
|
+
namespace xhtml = "http://www.w3.org/1999/xhtml"
|
7
|
+
|
8
|
+
# CSL schema metadata
|
9
|
+
|
10
|
+
dc:title [ "Citation Style Language" ]
|
11
|
+
dc:creator [ "Bruce D'Arcus" ]
|
12
|
+
dc:creator [ "Simon Kornblith" ]
|
13
|
+
dc:contributor [ "Frank Bennett" ]
|
14
|
+
dc:contributor [ "Rintze Zelle" ]
|
15
|
+
dc:copyright [ "Bruce D'Arcus and Simon Kornblith, 2007-2010" ]
|
16
|
+
dc:rights [ "Permission to freely use, copy and distribute." ]
|
17
|
+
dc:description [
|
18
|
+
"Citation Style Language (CSL) schema for describing bibliographic and citation formatting."
|
19
|
+
]
|
20
|
+
|
21
|
+
## Root element. cs:style for CSL styles, cs:locale for locales-xx-XX.xml files
|
22
|
+
start = style | locale
|
23
|
+
|
24
|
+
## Subparts of the CSL schema
|
25
|
+
include "csl-terms.rnc"
|
26
|
+
include "csl-types.rnc"
|
27
|
+
include "csl-variables.rnc"
|
28
|
+
include "csl-categories.rnc"
|
29
|
+
|
30
|
+
# Embedded Schematron rules to detect undefined macro-calls in cs:text, cs:key
|
31
|
+
|
32
|
+
sch:ns [
|
33
|
+
uri = "http://purl.org/net/xbiblio/csl"
|
34
|
+
prefix = "cs"
|
35
|
+
]
|
36
|
+
sch:pattern [
|
37
|
+
name = "Non-existing macros"
|
38
|
+
sch:rule [
|
39
|
+
context = "//cs:text[@macro]"
|
40
|
+
sch:assert [
|
41
|
+
test = "@macro = /cs:style/cs:macro/@name"
|
42
|
+
"This macro call has no corresponding macro."
|
43
|
+
]
|
44
|
+
]
|
45
|
+
sch:rule [
|
46
|
+
context = "//cs:key[@macro]"
|
47
|
+
sch:assert [
|
48
|
+
test = "@macro = /cs:style/cs:macro/@name"
|
49
|
+
"This macro call has no corresponding macro."
|
50
|
+
]
|
51
|
+
]
|
52
|
+
]
|
53
|
+
|
54
|
+
## The CSL data model consists of resources and variables. Primary resources are the
|
55
|
+
## citation object itself, as well as related agents and events. Variables are
|
56
|
+
## attributes of the resource: titles, dates, volume numbers, and so forth. From the
|
57
|
+
## perspective of CSL, resources templates involve a list of variables. By contrast,
|
58
|
+
## a variable can be accessed directly.
|
59
|
+
## In addition, CSL also contains structures for macros and parameter options.
|
60
|
+
div {
|
61
|
+
style =
|
62
|
+
element cs:style {
|
63
|
+
|
64
|
+
## Indicates with which version of the CSL schema the style is compatible
|
65
|
+
attribute version { "1.0" },
|
66
|
+
|
67
|
+
## Default style locale (optional)
|
68
|
+
attribute default-locale { xsd:language }?,
|
69
|
+
|
70
|
+
## Style type (in-text citations or note-based)
|
71
|
+
attribute class { "in-text" | "note" },
|
72
|
+
|
73
|
+
style-options,
|
74
|
+
info,
|
75
|
+
(style-locale* & macro* & citation & bibliography?)?
|
76
|
+
}
|
77
|
+
}
|
78
|
+
[ a:documentation [ xhtml:h2 [ "Style Metadata" ] ] ]
|
79
|
+
div {
|
80
|
+
|
81
|
+
## The Content model for CSL metadata is borrowed from Atom.
|
82
|
+
info =
|
83
|
+
element cs:info {
|
84
|
+
info-author*
|
85
|
+
& info-category*
|
86
|
+
& info-contributor*
|
87
|
+
& info-id
|
88
|
+
& info-issn*
|
89
|
+
& info-issnl?
|
90
|
+
& info-link*
|
91
|
+
& info-published?
|
92
|
+
& info-rights?
|
93
|
+
& info-summary?
|
94
|
+
& info-title
|
95
|
+
& info-title-short?
|
96
|
+
& info-updated
|
97
|
+
}
|
98
|
+
|
99
|
+
info-author = element cs:author { info-contributor-pattern }
|
100
|
+
info-contributor = element cs:contributor { info-contributor-pattern }
|
101
|
+
info-contributor-pattern =
|
102
|
+
element cs:name { text }
|
103
|
+
& element cs:email { text }?
|
104
|
+
& element cs:uri { xsd:anyURI }?
|
105
|
+
|
106
|
+
## The category element may be used to specify the citation format of the
|
107
|
+
## style (using the citation-format attribute) and the fields or disciplines
|
108
|
+
## for which the style is relevant (using the field attribute).
|
109
|
+
info-category =
|
110
|
+
element cs:category {
|
111
|
+
attribute citation-format { info-format-categories }
|
112
|
+
| attribute field { info-field-categories }
|
113
|
+
}
|
114
|
+
|
115
|
+
## As in Atom, the cs:id element is a required URI that is globally-unique
|
116
|
+
## and persistant. To allow styles to be automatically updated, the URI of a
|
117
|
+
## style should not change once assigned. Ideally, the URI resolves to the
|
118
|
+
## correct CSL file: it should preferably point to the CSL style itself in
|
119
|
+
## case of independent styles, and to the independent-parent style in case
|
120
|
+
## of dependent styles.
|
121
|
+
info-id = element cs:id { xsd:anyURI }
|
122
|
+
|
123
|
+
info-link =
|
124
|
+
element cs:link {
|
125
|
+
attribute href { xsd:anyURI },
|
126
|
+
|
127
|
+
## For transformation to Atom, the rel values should be expanded to
|
128
|
+
## include the base URI <http://purl.org/net/xbiblio/csl/relations#>.
|
129
|
+
attribute rel {
|
130
|
+
|
131
|
+
## The URI of the CSL style itself. Used for automatic style
|
132
|
+
## updating.
|
133
|
+
"self"
|
134
|
+
|
|
135
|
+
## The CSL style URI whose configuration content should be
|
136
|
+
## used for processing. Required for dependent styles.
|
137
|
+
"independent-parent"
|
138
|
+
|
|
139
|
+
## The CSL style URI from which the current style is derived.
|
140
|
+
"template"
|
141
|
+
|
|
142
|
+
## A documentation URI for the style.
|
143
|
+
"documentation"
|
144
|
+
},
|
145
|
+
info-text
|
146
|
+
}
|
147
|
+
info-published = element cs:published { xsd:dateTime }
|
148
|
+
info-rights = element cs:rights { info-text }
|
149
|
+
info-summary = element cs:summary { info-text }
|
150
|
+
info-title = element cs:title { info-text }
|
151
|
+
|
152
|
+
## For abbreviated titles (e.g. "APA")
|
153
|
+
info-title-short = element cs:title-short { info-text }
|
154
|
+
info-text =
|
155
|
+
attribute xml:lang { xsd:language }?,
|
156
|
+
text
|
157
|
+
|
158
|
+
## For journal-dedicated styles the journal's ISSNs or ISSN-L may be included.
|
159
|
+
## A valid ISSN(-L) consists of: four digits, a hyphen, three digits, and a
|
160
|
+
## check digit, which can be a numeral digit or a roman X, e.g. "1234-1231".
|
161
|
+
info-issn =
|
162
|
+
element cs:issn {
|
163
|
+
xsd:string { pattern = "\d{4}\-\d{3}(\d|x|X)" }
|
164
|
+
}
|
165
|
+
info-issnl =
|
166
|
+
element cs:issnl {
|
167
|
+
xsd:string { pattern = "\d{4}\-\d{3}(\d|x|X)" }
|
168
|
+
}
|
169
|
+
|
170
|
+
## a required update date-time stamp; for example, 2007-10-26T21:32:52+02:00
|
171
|
+
info-updated = element cs:updated { xsd:dateTime }
|
172
|
+
}
|
173
|
+
[ a:documentation [ xhtml:h2 [ "Localization" ] ] ]
|
174
|
+
div {
|
175
|
+
|
176
|
+
## Describes the structure of standalone locale files
|
177
|
+
locale =
|
178
|
+
element cs:locale {
|
179
|
+
|
180
|
+
## Specifies the locale of the locale file.
|
181
|
+
attribute xml:lang { xsd:language },
|
182
|
+
|
183
|
+
## Indicates with which version of the CSL schema the locale file is compatible
|
184
|
+
attribute version { "1.0" },
|
185
|
+
|
186
|
+
(localized-terms & localized-dates+ & localized-options)
|
187
|
+
}
|
188
|
+
|
189
|
+
## In styles, cs:locale can be used to override localized terms, dates and options.
|
190
|
+
style-locale =
|
191
|
+
element cs:locale {
|
192
|
+
|
193
|
+
## Specifies the locale to override. A cs:locale element without the
|
194
|
+
## xml:lang attribute can also be used: it overrides the content of
|
195
|
+
## all locales, but is in turn overridden by cs:locale elements with
|
196
|
+
## the xml:lang attribute.
|
197
|
+
attribute xml:lang { xsd:language }?,
|
198
|
+
|
199
|
+
(localized-terms? & localized-dates* & localized-options?)
|
200
|
+
}
|
201
|
+
localized-terms = element cs:terms { (simple-term | compound-term)+ }
|
202
|
+
term-attributes =
|
203
|
+
attribute form { cs-term-forms }?,
|
204
|
+
attribute name { cs-terms }
|
205
|
+
|
206
|
+
## "verb-short" reverts to "verb" if the "verb-short" form is not available
|
207
|
+
## "symbol" reverts to "short" if the "symbol" form is not available
|
208
|
+
## "verb" and "short" revert to "long" if the specified form is not available
|
209
|
+
cs-term-forms = "long" | "verb" | "short" | "verb-short" | "symbol" | cs-term-forms.extension
|
210
|
+
|
211
|
+
## Extension structures. You may override these in a customization
|
212
|
+
## schema. If you do, please contact the xbiblio project to add
|
213
|
+
## the term or form to the formal controlled list in the schema.
|
214
|
+
div {
|
215
|
+
cs-terms.extension = notAllowed
|
216
|
+
cs-term-forms.extension = notAllowed
|
217
|
+
}
|
218
|
+
|
219
|
+
## Simple terms are basic strings, used to represent genres, media, etc.
|
220
|
+
simple-term = element cs:term { term-attributes, text }
|
221
|
+
|
222
|
+
## Compound terms are those whose output can be either singular or plural.
|
223
|
+
## Typically used for things like page number or editor labels.
|
224
|
+
compound-term = element cs:term { term-attributes, single-term, multiple-term }
|
225
|
+
multiple-term = element cs:multiple { text }
|
226
|
+
single-term = element cs:single { text }
|
227
|
+
|
228
|
+
## Instances of cs:date for which the form attribute is set are localized
|
229
|
+
## by default. Localized date formats can be overridden.
|
230
|
+
localized-dates =
|
231
|
+
element cs:date {
|
232
|
+
|
233
|
+
## Declares the type of date being defined.
|
234
|
+
attribute form {
|
235
|
+
|
236
|
+
## Text form of the date (e.g. "December 15, 2005" for en-US).
|
237
|
+
"text"
|
238
|
+
|
|
239
|
+
## Numeric form of the date (e.g. "12-15-2005" for en-US)
|
240
|
+
"numeric"
|
241
|
+
},
|
242
|
+
|
243
|
+
## No affixes may be applied to cs:date in cs:locale
|
244
|
+
font-formatting,
|
245
|
+
delimiter,
|
246
|
+
element cs:date-part {
|
247
|
+
affixes, text-case, font-formatting, (month | day | year)
|
248
|
+
}+
|
249
|
+
}
|
250
|
+
|
251
|
+
## Locale specific options.
|
252
|
+
localized-options =
|
253
|
+
|
254
|
+
## Localized global options are specified as attributes in the
|
255
|
+
## cs:style-options element. If future versions of CSL include localized
|
256
|
+
## options that are citation or bibliography specific, the elements
|
257
|
+
## cs:citation-options and cs:bibliography-options can be added.
|
258
|
+
element cs:style-options {
|
259
|
+
|
260
|
+
## Determines whether punctuation (commas and periods) goes within
|
261
|
+
## the quotation marks, or outside (default).
|
262
|
+
attribute punctuation-in-quote { xsd:boolean }?
|
263
|
+
}
|
264
|
+
}
|
265
|
+
[ a:documentation [ xhtml:h2 [ "Macros" ] ] ]
|
266
|
+
div {
|
267
|
+
|
268
|
+
## The macro element works something like in BibTeX, and provides a ready-made
|
269
|
+
## bundle of formatting templates that can be easily reused elsewhere.
|
270
|
+
macro =
|
271
|
+
element cs:macro {
|
272
|
+
attribute name { xsd:NMTOKEN },
|
273
|
+
cs-element+
|
274
|
+
}
|
275
|
+
}
|
276
|
+
[ a:documentation [ xhtml:h2 [ "Citation and Bibliography" ] ] ]
|
277
|
+
div {
|
278
|
+
|
279
|
+
## The cs:citation handles printing of citations. A citation may consist of
|
280
|
+
## one or more references to bibliographic sources. These references can either
|
281
|
+
## be simple in-text keys [doe99] or numeric markers [1], or more complex short
|
282
|
+
## descriptors common in author-date (Doe, 1999a) or note styles.
|
283
|
+
citation = element cs:citation { (citation-options & sort?), citation-layout }
|
284
|
+
|
285
|
+
bibliography = element cs:bibliography { (bibliography-options & sort?), bibliography-layout }
|
286
|
+
|
287
|
+
citation-layout = element cs:layout { affixes, font-formatting, delimiter, cs-element }
|
288
|
+
bibliography-layout = element cs:layout { affixes, font-formatting, cs-element }
|
289
|
+
cs-element = (names | date | label | cs-text | cs-number | choose | group)+
|
290
|
+
}
|
291
|
+
[ a:documentation [ xhtml:h2 [ "Contributor Names" ] ] ]
|
292
|
+
div {
|
293
|
+
## Options for cs:names, available for cs:style, cs:citation and cs:bibliography.
|
294
|
+
names-opt =
|
295
|
+
## Delimiter between names (delimiter between variables is on <names>
|
296
|
+
## tag, where it should be). This is ", " in "J. Doe, S. Smith."
|
297
|
+
attribute names-delimiter { text }?
|
298
|
+
|
299
|
+
names-attributes =
|
300
|
+
affixes,
|
301
|
+
display,
|
302
|
+
font-formatting,
|
303
|
+
|
304
|
+
## the delimiter between name groups
|
305
|
+
delimiter,
|
306
|
+
attribute variable {
|
307
|
+
list { cs-names+ }
|
308
|
+
}
|
309
|
+
|
310
|
+
## Options for cs:name, available for cs:style, cs:citation and cs:bibliography.
|
311
|
+
name-opt =
|
312
|
+
name-attributes,
|
313
|
+
|
314
|
+
## Indicates long (first name + last name, for Western names) or short
|
315
|
+
## (last name only, for Western names) form of name. Default is long
|
316
|
+
## form. The "count" form is used to return the count of the contributor
|
317
|
+
## list, and may be used in special sorting routines.
|
318
|
+
attribute name-form { "long" | "short" | "count" }?,
|
319
|
+
|
320
|
+
## Delimiter between names (delimiter between variables is on <names>
|
321
|
+
## tag, where it should be). This is ", " in "J. Doe, S. Smith."
|
322
|
+
attribute name-delimiter { text }?
|
323
|
+
|
324
|
+
name-attributes =
|
325
|
+
## Controls appearance of "and"/"&". To disable, do not specify.
|
326
|
+
attribute and { "text" | "symbol" }?,
|
327
|
+
|
328
|
+
## Delimiter between the last name rendered and the "et-al" term in case
|
329
|
+
## of et-al abbreviation
|
330
|
+
attribute delimiter-precedes-et-al {
|
331
|
+
|
332
|
+
## Default behavior; a space is used for name lists truncated to a
|
333
|
+
## single name. For two or more names, the name delimiter is used:
|
334
|
+
## 1 name: "J. Doe et al."
|
335
|
+
## 2 names: "J. Doe, S. Smith, et al."
|
336
|
+
"contextual"
|
337
|
+
|
|
338
|
+
## Name delimiter is always used
|
339
|
+
## 1 name: "J. Doe, et al."
|
340
|
+
## 2 names: "J. Doe, S. Smith, et al."
|
341
|
+
"always"
|
342
|
+
|
|
343
|
+
## Name delimiter is never used
|
344
|
+
## 1 name: "J. Doe et al."
|
345
|
+
## 2 names: "J. Doe, S. Smith et al."
|
346
|
+
"never"
|
347
|
+
}?,
|
348
|
+
|
349
|
+
## Delimiter preceding the last name in a name list
|
350
|
+
attribute delimiter-precedes-last {
|
351
|
+
|
352
|
+
## Default behavior; delimiter is included for name lists of length
|
353
|
+
## three or more:
|
354
|
+
## 2 authors: "J. Doe and T. Timmons,"
|
355
|
+
## 3 authors: "J. Doe, S. Smith, and T. Timmons" (note comma preceding 'and').
|
356
|
+
"contextual"
|
357
|
+
|
|
358
|
+
## Delimiter is always included
|
359
|
+
## 2 author result: "J. Doe, and T. Timmons"
|
360
|
+
## 3 authors: "J. Doe, S. Smith, and T. Timmons" (note comma preceding 'and').
|
361
|
+
"always"
|
362
|
+
|
|
363
|
+
## Delimiter is never included
|
364
|
+
## 2 authors: "J. Doe and T. Timmons,"
|
365
|
+
## 3 authors: "J. Doe, S. Smith and T. Timmons"
|
366
|
+
"never"
|
367
|
+
}?,
|
368
|
+
|
369
|
+
## Specifies when and how "et al." name list abbreviation is used
|
370
|
+
## et-al-min: the minimum number of names to use "et al."
|
371
|
+
## et-al-use-first: the number of names to print before "et al."
|
372
|
+
## et-al-subsequent-*: as above, but for subsequent citations
|
373
|
+
## et-al-use-last: when set to "true" ("false" is the default),
|
374
|
+
## "et al." is replaced by an ellipsis followed by the last name
|
375
|
+
attribute et-al-min { xsd:integer }?,
|
376
|
+
attribute et-al-use-first { xsd:integer }?,
|
377
|
+
attribute et-al-subsequent-min { xsd:integer }?,
|
378
|
+
attribute et-al-subsequent-use-first { xsd:integer }?,
|
379
|
+
attribute et-al-use-last { xsd:boolean }?,
|
380
|
+
|
381
|
+
## Indicates whether given name parts ought to be given as initials
|
382
|
+
## (e.g., J. K. Rowling) and the text to follow each initial.
|
383
|
+
attribute initialize-with { text }?,
|
384
|
+
|
385
|
+
## Sets the author name order to correspond to the sort order of
|
386
|
+
## the bibliography; e.g. Doe, John (name-as-sort-order) vs. John Doe (w/o
|
387
|
+
## attribute).
|
388
|
+
attribute name-as-sort-order {
|
389
|
+
|
390
|
+
## Applies name-as-sort-order to first author only.
|
391
|
+
"first"
|
392
|
+
|
|
393
|
+
## Applies name-as-sort-order to all authors.
|
394
|
+
"all"
|
395
|
+
}?,
|
396
|
+
|
397
|
+
## The delimiter for personal name parts where sort order differs from
|
398
|
+
## display order (for example, in standard Western names). This is the
|
399
|
+
## ", " in "Doe, John."
|
400
|
+
attribute sort-separator { text }?
|
401
|
+
|
402
|
+
names =
|
403
|
+
element cs:names {
|
404
|
+
names-attributes,
|
405
|
+
((name, et-al?) & name-label*),
|
406
|
+
substitute?
|
407
|
+
}
|
408
|
+
|
409
|
+
## Short version of "names" element, without children, allowed in <substitute>
|
410
|
+
names-short = element cs:names { names-attributes }
|
411
|
+
|
412
|
+
name =
|
413
|
+
element cs:name {
|
414
|
+
name-attributes,
|
415
|
+
affixes,
|
416
|
+
font-formatting,
|
417
|
+
|
418
|
+
## Indicates long (first name + last name, for Western names) or short
|
419
|
+
## (last name only, for Western names) form of name. Default is long
|
420
|
+
## form. The "count" form is used to return the count of the contributor
|
421
|
+
## list, and may be used in special sorting routines.
|
422
|
+
attribute form { "long" | "short" | "count" }?,
|
423
|
+
|
424
|
+
## Delimiter between names (delimiter between variables is on <names>
|
425
|
+
## tag, where it should be). This is ", " in "J. Doe, S. Smith."
|
426
|
+
delimiter,
|
427
|
+
|
428
|
+
## Allows for separate configuration of name part formatting. For example,
|
429
|
+
## Jane DOE. Order of these elements is not significant.
|
430
|
+
element cs:name-part {
|
431
|
+
attribute name { "family" | "given" },
|
432
|
+
text-case,
|
433
|
+
font-formatting
|
434
|
+
}*
|
435
|
+
}
|
436
|
+
|
437
|
+
## Similar to label as below, but inherits variable from <names> tag
|
438
|
+
name-label = element cs:label { label-primitives }
|
439
|
+
|
440
|
+
## Configures formatting of the et al substitution. Only necessary to deviate from
|
441
|
+
## default rendering (for example, to italicize the string).
|
442
|
+
et-al =
|
443
|
+
element cs:et-al {
|
444
|
+
|
445
|
+
## term to use for et al substitution; "et-al" is default
|
446
|
+
attribute term { "et-al" | "and others" }?,
|
447
|
+
affixes,
|
448
|
+
font-formatting
|
449
|
+
}
|
450
|
+
|
451
|
+
## Substitutions, if the name does not exist
|
452
|
+
substitute = element cs:substitute { (names-short | cs-element)+ }
|
453
|
+
}
|
454
|
+
[ a:documentation [ xhtml:h2 [ "Dates" ] ] ]
|
455
|
+
div {
|
456
|
+
date =
|
457
|
+
element cs:date {
|
458
|
+
attribute variable { cs-dates },
|
459
|
+
((
|
460
|
+
## Localized date formats are specified by setting `form`. The
|
461
|
+
## default date format can be changed for all locales by configuring
|
462
|
+
## the date-parts attribute and date-part elements.
|
463
|
+
attribute form {
|
464
|
+
|
465
|
+
## Use the localized text form of the date (e.g. "December 15, 2005" for en-US).
|
466
|
+
"text"
|
467
|
+
|
|
468
|
+
## Use the localized numeric form of the date (e.g. "12-15-2005" for en-US)
|
469
|
+
"numeric"
|
470
|
+
}?,
|
471
|
+
|
472
|
+
## The date-parts attribute may be set to show fewer date elements.
|
473
|
+
attribute date-parts {
|
474
|
+
|
475
|
+
## Year, month and day (default)
|
476
|
+
"year-month-day"
|
477
|
+
|
|
478
|
+
## Year and month
|
479
|
+
"year-month"
|
480
|
+
|
|
481
|
+
## Year only
|
482
|
+
"year"
|
483
|
+
}?,
|
484
|
+
|
485
|
+
## For localized dates, date-part can be used to override layout
|
486
|
+
## options as defined in the locales (except for affixes, which
|
487
|
+
## are locale-specific), e.g. to force the use of leading-zeros,
|
488
|
+
## or the short month form. The inclusion of date-parts does not
|
489
|
+
## affect which, and in what order, the date-parts are rendered.
|
490
|
+
element cs:date-part { text-case, font-formatting, (month | day | year) }*)
|
491
|
+
| (
|
492
|
+
## Non-localized dates are formatted by including, in the desired
|
493
|
+
## order, the relevant `date-part`-elements, and by applying formatting,
|
494
|
+
## affixes on cs:date and cs:date-part.
|
495
|
+
element cs:date-part {
|
496
|
+
affixes, text-case, font-formatting, (month | day | year)
|
497
|
+
}+,
|
498
|
+
delimiter)),
|
499
|
+
affixes,
|
500
|
+
display,
|
501
|
+
font-formatting
|
502
|
+
}
|
503
|
+
|
504
|
+
## The default delimiter for date ranges is the en-dash.
|
505
|
+
## If the range-delimiter attribute is set for the largest date-part ("day",
|
506
|
+
## "month" or "year") that differs between the two dates of the date range,
|
507
|
+
## its value is used instead.
|
508
|
+
range-delimiter = attribute range-delimiter { text }?
|
509
|
+
|
510
|
+
## Month formats:
|
511
|
+
## long (default): January
|
512
|
+
## short: Jan
|
513
|
+
## numeric: 1
|
514
|
+
## numeric-leading-zeros: 01
|
515
|
+
month =
|
516
|
+
attribute name { "month" },
|
517
|
+
attribute form { "long" | "short" | "numeric" | "numeric-leading-zeros" }?,
|
518
|
+
range-delimiter,
|
519
|
+
strip-periods
|
520
|
+
|
521
|
+
## Day formats:
|
522
|
+
## numeric (default): 5
|
523
|
+
## numeric-leading-zeros: 05
|
524
|
+
## ordinal: 5th
|
525
|
+
day =
|
526
|
+
attribute name { "day" },
|
527
|
+
attribute form { "numeric" | "numeric-leading-zeros" | "ordinal" }?,
|
528
|
+
range-delimiter
|
529
|
+
|
530
|
+
## Year formats:
|
531
|
+
## long (default): 2005
|
532
|
+
## short: 05
|
533
|
+
year =
|
534
|
+
attribute name { "year" },
|
535
|
+
attribute form { "short" | "long" }?,
|
536
|
+
range-delimiter
|
537
|
+
|
538
|
+
}
|
539
|
+
[ a:documentation [ xhtml:h2 [ "Formatting Text" ] ] ]
|
540
|
+
div {
|
541
|
+
|
542
|
+
## The cs:text element is the main formatting element used to layout down content.
|
543
|
+
cs-text =
|
544
|
+
element cs:text {
|
545
|
+
affixes,
|
546
|
+
display,
|
547
|
+
font-formatting,
|
548
|
+
quotes,
|
549
|
+
strip-periods,
|
550
|
+
text-case,
|
551
|
+
(
|
552
|
+
## render macro output
|
553
|
+
attribute macro { xsd:NMTOKEN }
|
554
|
+
| (
|
555
|
+
## render localized term
|
556
|
+
attribute term { cs-terms },
|
557
|
+
attribute form { cs-term-forms }?,
|
558
|
+
|
559
|
+
## term plurality: single ("false", default) or multiple ("true")
|
560
|
+
attribute plural { xsd:boolean }?)
|
561
|
+
|
|
562
|
+
## render verbatim text.
|
563
|
+
attribute value { text }
|
564
|
+
| (
|
565
|
+
## render variable
|
566
|
+
attribute variable { cs-variables },
|
567
|
+
attribute form { "short" | "long" }?))
|
568
|
+
}
|
569
|
+
|
570
|
+
## The number markup directive matches the first number found in a field,
|
571
|
+
## and returns only that component. If no number is detected, the result
|
572
|
+
## is empty. A non-empty number may be subject to further formatting consisting
|
573
|
+
## of a form attribute whose value may be numeric, ordinal or roman to format
|
574
|
+
## it as a simple number (the default), an ordinal number (1st, 2nd, 3rd etc),
|
575
|
+
## a long-ordinal (first, second, third, etc), or roman (i, ii, iii, iv etc).
|
576
|
+
## The text-case can also apply to capitalize the roman numbers for instance.
|
577
|
+
## The other normal formatting rules apply too (font-style, ...). When used
|
578
|
+
## in a conditional, number tests if there is a number present, allowing conditional
|
579
|
+
## formatting.
|
580
|
+
cs-number =
|
581
|
+
element cs:number {
|
582
|
+
affixes,
|
583
|
+
display,
|
584
|
+
font-formatting,
|
585
|
+
text-case,
|
586
|
+
attribute variable { cs-numbers },
|
587
|
+
attribute form { "numeric" | "ordinal" | "roman" | "long-ordinal" }?
|
588
|
+
}
|
589
|
+
}
|
590
|
+
[ a:documentation [ xhtml:h2 [ "Label Text" ] ] ]
|
591
|
+
div {
|
592
|
+
|
593
|
+
## The label element is used to print text terms that depend on document content
|
594
|
+
## for pluralization. For labeling pages, this is preferable, as pages may be
|
595
|
+
## either singular or plural (p. or pp.)
|
596
|
+
label =
|
597
|
+
element cs:label {
|
598
|
+
label-primitives,
|
599
|
+
attribute variable { "page" | "locator" }
|
600
|
+
}
|
601
|
+
label-primitives =
|
602
|
+
affixes,
|
603
|
+
font-formatting,
|
604
|
+
text-case,
|
605
|
+
strip-periods,
|
606
|
+
attribute form { cs-term-forms }?,
|
607
|
+
|
608
|
+
## modifies pluralization behavior (defaults to "contextual")
|
609
|
+
attribute plural { "always" | "never" | "contextual" }?
|
610
|
+
}
|
611
|
+
[ a:documentation [ xhtml:h2 [ "Groups" ] ] ]
|
612
|
+
div {
|
613
|
+
|
614
|
+
## cs:group and its child elements are suppressed if a) at least one
|
615
|
+
## rendering element in cs:group calls a variable (either directly or via a
|
616
|
+
## macro), and b) all variables that are called are empty.
|
617
|
+
group =
|
618
|
+
element cs:group {
|
619
|
+
affixes,
|
620
|
+
display,
|
621
|
+
font-formatting,
|
622
|
+
delimiter,
|
623
|
+
cs-element+
|
624
|
+
}
|
625
|
+
}
|
626
|
+
[ a:documentation [ xhtml:h2 [ "Options" ] ] ]
|
627
|
+
div {
|
628
|
+
style-options =
|
629
|
+
demote-non-dropping-particle-opt,
|
630
|
+
initialize-with-hyphen-opt,
|
631
|
+
page-range-format-opt,
|
632
|
+
name-opt,
|
633
|
+
names-opt
|
634
|
+
citation-options =
|
635
|
+
collapse-opt,
|
636
|
+
disambiguate-opt,
|
637
|
+
note-distance-opt,
|
638
|
+
name-opt,
|
639
|
+
names-opt
|
640
|
+
bibliography-options =
|
641
|
+
hanging-indent-opt,
|
642
|
+
line-formatting-opt,
|
643
|
+
second-field-align-opt,
|
644
|
+
subsequent-author-substitute-opt,
|
645
|
+
name-opt,
|
646
|
+
names-opt
|
647
|
+
|
648
|
+
## Determines whether the non-dropping particle is demoted in inverted
|
649
|
+
## names (e.g. "Koning, W. de"). Defaults to "display-and-sort".
|
650
|
+
demote-non-dropping-particle-opt =
|
651
|
+
attribute demote-non-dropping-particle { "never" | "sort-only" | "display-and-sort" }?
|
652
|
+
|
653
|
+
## Determines whether compound given names (e.g. "Jean-Luc") are
|
654
|
+
## initialized with (J-L) or without a hyphen (JL). Defaults to true.
|
655
|
+
initialize-with-hyphen-opt =
|
656
|
+
attribute initialize-with-hyphen { xsd:boolean }?
|
657
|
+
|
658
|
+
## Abbreviation setting of ranges in the page variable
|
659
|
+
## (by default no reformatting is applied to the input data).
|
660
|
+
page-range-format-opt =
|
661
|
+
attribute page-range-format { "expanded" | "minimal" | "chicago" }?
|
662
|
+
|
663
|
+
## The collapse options control citation collapsing.
|
664
|
+
collapse-opt =
|
665
|
+
attribute collapse {
|
666
|
+
|
667
|
+
## collapses numeric citations from [1, 2, 3] to [1-3]
|
668
|
+
"citation-number"
|
669
|
+
|
|
670
|
+
## collapses cites from (Doe 2000, Doe 2001) to (Doe 2000, 2001)
|
671
|
+
"year"
|
672
|
+
|
|
673
|
+
## collapses as "year", but also collapses (Doe 2000a, Doe 2000b)
|
674
|
+
## to (Doe 2000a, b). Collapses as "year" when
|
675
|
+
## disambiguate-add-year-suffix is not set to "true".
|
676
|
+
"year-suffix"
|
677
|
+
|
|
678
|
+
## collapses as "year-suffix", but also collapses ranges of
|
679
|
+
## year-suffix markers, so (Doe 2000a, Doe 2000b, Doe 2000c)
|
680
|
+
## becomes (Doe 2000a-c). Collapses as "year" when
|
681
|
+
## disambiguate-add-year-suffix is not set to "true".
|
682
|
+
"year-suffix-ranged"
|
683
|
+
}?,
|
684
|
+
|
685
|
+
## Specifies the delimiter between year-suffix elements, when
|
686
|
+
## year-suffix collapsing takes place. If not set the delimiter defaults
|
687
|
+
## to that specified for the citation layout.
|
688
|
+
attribute year-suffix-delimiter { text }?,
|
689
|
+
|
690
|
+
## Specifies the delimiter following a group of collapsed cites.
|
691
|
+
attribute after-collapse-delimiter { text }?
|
692
|
+
|
693
|
+
disambiguate-opt =
|
694
|
+
|
695
|
+
## When set true, add further names to uniquely identify the target
|
696
|
+
## source, overriding the constraint imposed by
|
697
|
+
## et-al-subsequent-use-first. The exact rendering of any names added is
|
698
|
+
## determined by applying, in order: the form ("long" or "short"); the
|
699
|
+
## initialize-with attribute, if present; and a given name
|
700
|
+
## disambiguation rule, if disambiguate-add-givenname is set true.
|
701
|
+
attribute disambiguate-add-names { xsd:boolean }?,
|
702
|
+
|
703
|
+
## When set true, transform names as required by by the rule specified
|
704
|
+
## by givenname-disambiguation-rule, or use the "all-names" rule by
|
705
|
+
## default. Note that, all of the given name disambiguation rules except
|
706
|
+
## for the "by-cite" rule, a name transformation will affect the way the
|
707
|
+
## name is rendered in multiple references.
|
708
|
+
attribute disambiguate-add-givenname { xsd:boolean }?,
|
709
|
+
|
710
|
+
## Adds a year-suffix (e.g., 2007a) when there are two works by the same
|
711
|
+
## author published in the same year included in one bibliography.
|
712
|
+
attribute disambiguate-add-year-suffix { xsd:boolean }?,
|
713
|
+
|
714
|
+
attribute givenname-disambiguation-rule {
|
715
|
+
|
716
|
+
## The default given name disambiguation rule. A given
|
717
|
+
## name is first formatted as specified by the attributes
|
718
|
+
## to name (form, initialize-with). If the resulting name
|
719
|
+
## does not uniquely identify the full name of the
|
720
|
+
## individual, it is progressively transformed in the following
|
721
|
+
## progression, until disambiguation succeeds:
|
722
|
+
##
|
723
|
+
## 1. "short" becomes "long" + "initialize-with" if the latter is defined
|
724
|
+
## 2. "long" + "initialize-with" becomes "long" if the former is defined
|
725
|
+
## 3. "short" becomes "long"
|
726
|
+
##
|
727
|
+
## Note that if the name begins in long form with the
|
728
|
+
## given name as initials, step 1 in this list will be
|
729
|
+
## skipped. Likewise, if the name begins in short form
|
730
|
+
## and the initialize-with attribute is not set, steps
|
731
|
+
## 1 and 2 will be skipped. If the name begins
|
732
|
+
## in long form, this option will have no effect.
|
733
|
+
"all-names"
|
734
|
+
|
|
735
|
+
## Same as the "all-names" rule above, but omitting
|
736
|
+
## steps 2 and 3 of that rule.
|
737
|
+
"all-names-with-initials"
|
738
|
+
|
|
739
|
+
## Same as the "all-names" rule above, but ambiguity
|
740
|
+
## is only checked for the first-listed name
|
741
|
+
## source, and only first-listed names are affected
|
742
|
+
## by the transformation.
|
743
|
+
"primary-name"
|
744
|
+
|
|
745
|
+
## Same as the "primary-name" rule above, but omitting
|
746
|
+
## steps 2 and 3 of that rule.
|
747
|
+
"primary-name-with-initials"
|
748
|
+
|
|
749
|
+
## Apply the transformation described under the "all-names"
|
750
|
+
## rule above, but limit the transformation to the current
|
751
|
+
## source. The appearance of the name in other references
|
752
|
+
## will not be affected.
|
753
|
+
"by-cite"
|
754
|
+
}?
|
755
|
+
|
756
|
+
## The number of notes (footnotes or endnotes) within which a
|
757
|
+
## preceding reference to the same source must occur in order for
|
758
|
+
## position="near-note" to be true. Defaults to 5.
|
759
|
+
note-distance-opt = attribute near-note-distance { xsd:integer }?
|
760
|
+
|
761
|
+
## If "true", bibliographic entries are rendered with hanging-indents.
|
762
|
+
hanging-indent-opt = attribute hanging-indent { xsd:boolean }?
|
763
|
+
|
764
|
+
## entry-spacing and line-spacing default to 1.
|
765
|
+
line-formatting-opt =
|
766
|
+
attribute entry-spacing { xsd:integer }?,
|
767
|
+
attribute line-spacing { xsd:integer }?
|
768
|
+
|
769
|
+
## Aligns any subsequent lines of a bibliography entry with the beginning
|
770
|
+
## of the second field. If set to "margin", the first field is put in the
|
771
|
+
## margin and all subsequent lines of text are aligned with the margin.
|
772
|
+
second-field-align-opt = attribute second-field-align { "flush" | "margin" }?
|
773
|
+
|
774
|
+
## Substitutes subsequent recurrences of an author for a given string.
|
775
|
+
subsequent-author-substitute-opt = attribute subsequent-author-substitute { text }?
|
776
|
+
}
|
777
|
+
[ a:documentation [ xhtml:h2 [ "Sorting" ] ] ]
|
778
|
+
div {
|
779
|
+
all-variables = cs-variables | cs-dates | cs-names
|
780
|
+
|
781
|
+
## Specifies the sort order within citations or the bibliography. By
|
782
|
+
## default, items are sorted in the order cited.
|
783
|
+
sort = element cs:sort { key+ }
|
784
|
+
key =
|
785
|
+
element cs:key {
|
786
|
+
|
787
|
+
(attribute variable { all-variables }
|
788
|
+
| attribute macro { xsd:NMTOKEN }),
|
789
|
+
|
790
|
+
## Default sort order is ascending
|
791
|
+
attribute sort { "ascending" | "descending" }?,
|
792
|
+
|
793
|
+
## names-min and names-use-first can be used to (further) constrain
|
794
|
+
## the number of names used in a name sort, overriding the values
|
795
|
+
## set on the et-al abbreviation attributes.
|
796
|
+
attribute names-min { xsd:integer }?,
|
797
|
+
attribute names-use-first { xsd:integer }?,
|
798
|
+
|
799
|
+
## names-use-last can be used to override the value of et-at-use-last
|
800
|
+
attribute names-use-last { xsd:boolean }?
|
801
|
+
}
|
802
|
+
}
|
803
|
+
[ a:documentation [ xhtml:h2 [ "Conditional Statements" ] ] ]
|
804
|
+
div {
|
805
|
+
|
806
|
+
## The choose elements provides a simple conditional structure.
|
807
|
+
choose = element cs:choose { if, else-if*, else? }
|
808
|
+
if = element cs:if { condition, cs-element* }
|
809
|
+
else-if = element cs:else-if { condition, cs-element* }
|
810
|
+
else = element cs:else { cs-element+ }
|
811
|
+
condition =
|
812
|
+
|
813
|
+
## The contents of an <if disambiguate="true"> block is only rendered if
|
814
|
+
## it disambiguates two otherwise identical citations. This attempt at
|
815
|
+
## disambiguation will only be made when all other disambiguation
|
816
|
+
## methods have failed to uniquely identify the target source.
|
817
|
+
attribute disambiguate { "true" }?,
|
818
|
+
|
819
|
+
## Tests whether the given variables contain numeric data
|
820
|
+
attribute is-numeric {
|
821
|
+
list { all-variables+ }
|
822
|
+
}?,
|
823
|
+
|
824
|
+
## Tests whether the given date variables contain uncertain dates
|
825
|
+
attribute is-uncertain-date {
|
826
|
+
list { cs-dates+ }
|
827
|
+
}?,
|
828
|
+
|
829
|
+
## Tests whether the locator matches the given locator variables
|
830
|
+
attribute locator {
|
831
|
+
list { cs-terms.locator+ }
|
832
|
+
}?,
|
833
|
+
|
834
|
+
## The boolean operators below indicate the relative position of a
|
835
|
+
## reference within the document. These should be checked in
|
836
|
+
## the order shown below: "first" is true only once, on the first
|
837
|
+
## use of the reference; when "ibid-with-locator" is true, "ibid"
|
838
|
+
## and "subsequent are also true; and when "ibid" is true, "subsequent"
|
839
|
+
## is also true. The "near-note" operator is true if and only if the
|
840
|
+
## reference has been used within five footnotes (or endnotes, as the
|
841
|
+
## case may be), counting backward from the current note. This threshold
|
842
|
+
## may be adjusted using the "near-note-distance" option. The value of
|
843
|
+
## "near-note" is *always* false for references that are not in a
|
844
|
+
## footnote/endnote.
|
845
|
+
attribute position {
|
846
|
+
list { ("first" | "subsequent" | "ibid" | "ibid-with-locator" | "near-note")+ }
|
847
|
+
}?,
|
848
|
+
|
849
|
+
## Tests whether the item matches the given types
|
850
|
+
attribute type {
|
851
|
+
list { cs-types+ }
|
852
|
+
}?,
|
853
|
+
|
854
|
+
## Tests whether the given variables contain non-empty values
|
855
|
+
attribute variable {
|
856
|
+
list { all-variables+ }
|
857
|
+
}?,
|
858
|
+
## Specifies the test criterion (default is all)
|
859
|
+
## all: a condition tests "true" when it tests "true" for all of the
|
860
|
+
## given condition values
|
861
|
+
## any: a condition tests "true" when it tests "true" for any of the
|
862
|
+
## given condition values
|
863
|
+
## none: a condition tests "true" when it tests "true" for none of the
|
864
|
+
## given condition values
|
865
|
+
attribute match { "all" | "any" | "none" }?
|
866
|
+
}
|
867
|
+
|
868
|
+
## Formatting attributes.
|
869
|
+
div {
|
870
|
+
affixes =
|
871
|
+
attribute prefix { text }?,
|
872
|
+
attribute suffix { text }?
|
873
|
+
delimiter = attribute delimiter { text }?
|
874
|
+
|
875
|
+
## The text of each individual cite is normally formatted as a
|
876
|
+
## single continuous run of text. Portions of the cite text can be
|
877
|
+
## specially positioned using the display attribute.
|
878
|
+
display = attribute display {
|
879
|
+
|
880
|
+
## Set the display value set to "block" to place the content
|
881
|
+
## in a block stretching from margin to margin.
|
882
|
+
"block"
|
883
|
+
|
|
884
|
+
## Set the display value set to "left-margin" to place the
|
885
|
+
## content in a block of fixed width starting at the left
|
886
|
+
## margin. All "left-margin" blocks in a bibliography share
|
887
|
+
## the same width, set according to the maximum number of
|
888
|
+
## characters appearing in any one such block.
|
889
|
+
"left-margin"
|
890
|
+
|
|
891
|
+
## Set the display value to "right-inline" to place the
|
892
|
+
## content in a block directly to the right of any immediately
|
893
|
+
## preceding "left-margin" block, and extending to the
|
894
|
+
## right margin.
|
895
|
+
"right-inline"
|
896
|
+
|
|
897
|
+
## Set the display value to "indent" to block-indent the
|
898
|
+
## text to the right by a standard amount.
|
899
|
+
"indent"
|
900
|
+
}?
|
901
|
+
|
902
|
+
## attributes are drawn directly from CSS and FO where possible
|
903
|
+
font-formatting =
|
904
|
+
attribute font-style { "italic" | "normal" | "oblique" }?,
|
905
|
+
attribute font-variant { "normal" | "small-caps" }?,
|
906
|
+
attribute font-weight { "normal" | "bold" | "light" }?,
|
907
|
+
attribute text-decoration { "none" | "underline" }?,
|
908
|
+
attribute vertical-align { "baseline" | "sup" | "sub" }?
|
909
|
+
|
910
|
+
## When set to true (false is the default), quotes (defined as terms) are
|
911
|
+
## placed around the rendered text. Nested quotes flipflop.
|
912
|
+
quotes = attribute quotes { xsd:boolean }?
|
913
|
+
|
914
|
+
## Removes any periods from the rendered text (defaults to false)
|
915
|
+
strip-periods = attribute strip-periods { xsd:boolean }?
|
916
|
+
|
917
|
+
text-case =
|
918
|
+
attribute text-case {
|
919
|
+
|
920
|
+
## display all text as lowercase
|
921
|
+
"lowercase"
|
922
|
+
|
|
923
|
+
## display all text as uppercase
|
924
|
+
"uppercase"
|
925
|
+
|
|
926
|
+
## capitalize first character; other characters
|
927
|
+
## displayed as is
|
928
|
+
"capitalize-first"
|
929
|
+
|
|
930
|
+
## capitalize first character of every word;
|
931
|
+
## other characters displayed lowercase
|
932
|
+
"capitalize-all"
|
933
|
+
|
|
934
|
+
## display as title case (the Chicago Manual
|
935
|
+
## of Style calls this "headline style")
|
936
|
+
"title"
|
937
|
+
|
|
938
|
+
## display as sentence case/sentence style
|
939
|
+
"sentence"
|
940
|
+
}?
|
941
|
+
}
|