citeproc-ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. data/README.md +78 -0
  2. data/lib/citeproc.rb +100 -0
  3. data/lib/citeproc/bibliography.rb +57 -0
  4. data/lib/citeproc/data.rb +149 -0
  5. data/lib/citeproc/date.rb +133 -0
  6. data/lib/citeproc/formatter.rb +38 -0
  7. data/lib/citeproc/item.rb +53 -0
  8. data/lib/citeproc/name.rb +284 -0
  9. data/lib/citeproc/processor.rb +166 -0
  10. data/lib/citeproc/selector.rb +61 -0
  11. data/lib/citeproc/variable.rb +82 -0
  12. data/lib/citeproc/version.rb +3 -0
  13. data/lib/csl/locale.rb +223 -0
  14. data/lib/csl/node.rb +72 -0
  15. data/lib/csl/nodes.rb +1364 -0
  16. data/lib/csl/renderer.rb +88 -0
  17. data/lib/csl/sort.rb +53 -0
  18. data/lib/csl/style.rb +110 -0
  19. data/lib/csl/term.rb +124 -0
  20. data/lib/extensions/core.rb +43 -0
  21. data/lib/plugins/filters/bibtex.rb +12 -0
  22. data/lib/plugins/formats/default.rb +134 -0
  23. data/lib/plugins/formats/html.rb +67 -0
  24. data/lib/support/attributes.rb +99 -0
  25. data/lib/support/tree.rb +80 -0
  26. data/resource/locale/locales-af-ZA.xml +304 -0
  27. data/resource/locale/locales-ar-AR.xml +304 -0
  28. data/resource/locale/locales-bg-BG.xml +304 -0
  29. data/resource/locale/locales-ca-AD.xml +304 -0
  30. data/resource/locale/locales-cs-CZ.xml +304 -0
  31. data/resource/locale/locales-da-DK.xml +304 -0
  32. data/resource/locale/locales-de-AT.xml +304 -0
  33. data/resource/locale/locales-de-CH.xml +304 -0
  34. data/resource/locale/locales-de-DE.xml +332 -0
  35. data/resource/locale/locales-el-GR.xml +303 -0
  36. data/resource/locale/locales-en-US.xml +313 -0
  37. data/resource/locale/locales-es-ES.xml +304 -0
  38. data/resource/locale/locales-et-EE.xml +304 -0
  39. data/resource/locale/locales-fr-FR.xml +304 -0
  40. data/resource/locale/locales-he-IL.xml +304 -0
  41. data/resource/locale/locales-hu-HU.xml +304 -0
  42. data/resource/locale/locales-is-IS.xml +304 -0
  43. data/resource/locale/locales-it-IT.xml +304 -0
  44. data/resource/locale/locales-ja-JP.xml +304 -0
  45. data/resource/locale/locales-kh-KH.xml +303 -0
  46. data/resource/locale/locales-ko-KR.xml +304 -0
  47. data/resource/locale/locales-mn-MN.xml +304 -0
  48. data/resource/locale/locales-nb-NO.xml +304 -0
  49. data/resource/locale/locales-nl-NL.xml +304 -0
  50. data/resource/locale/locales-nn-NO.xml +304 -0
  51. data/resource/locale/locales-pl-PL.xml +304 -0
  52. data/resource/locale/locales-pt-BR.xml +304 -0
  53. data/resource/locale/locales-pt-PT.xml +304 -0
  54. data/resource/locale/locales-ro-RO.xml +304 -0
  55. data/resource/locale/locales-ru-RU.xml +304 -0
  56. data/resource/locale/locales-sk-SK.xml +304 -0
  57. data/resource/locale/locales-sl-SI.xml +304 -0
  58. data/resource/locale/locales-sr-RS.xml +304 -0
  59. data/resource/locale/locales-sv-SE.xml +304 -0
  60. data/resource/locale/locales-th-TH.xml +304 -0
  61. data/resource/locale/locales-tr-TR.xml +304 -0
  62. data/resource/locale/locales-uk-UA.xml +304 -0
  63. data/resource/locale/locales-vi-VN.xml +304 -0
  64. data/resource/locale/locales-zh-CN.xml +304 -0
  65. data/resource/locale/locales-zh-TW.xml +304 -0
  66. data/resource/schema/csl-categories.rnc +39 -0
  67. data/resource/schema/csl-data.rnc +98 -0
  68. data/resource/schema/csl-terms.rnc +106 -0
  69. data/resource/schema/csl-types.rnc +39 -0
  70. data/resource/schema/csl-variables.rnc +182 -0
  71. data/resource/schema/csl.rnc +941 -0
  72. data/resource/style/acta-materialia-x.csl +128 -0
  73. data/resource/style/advanced-engineering-materials-x.csl +121 -0
  74. data/resource/style/ama.csl +185 -0
  75. data/resource/style/ama2-x.csl +179 -0
  76. data/resource/style/apa-x.csl +324 -0
  77. data/resource/style/apa.csl +254 -0
  78. data/resource/style/apsa-x.csl +163 -0
  79. data/resource/style/apsa.csl +176 -0
  80. data/resource/style/asa-x.csl +203 -0
  81. data/resource/style/asa.csl +216 -0
  82. data/resource/style/asm-journals-x.csl +131 -0
  83. data/resource/style/bibtex-x2.csl +175 -0
  84. data/resource/style/bluebook-demo-x.csl +392 -0
  85. data/resource/style/bluebook-demo.csl +942 -0
  86. data/resource/style/chicago-author-date-listing.csl +434 -0
  87. data/resource/style/chicago-author-date.csl +369 -0
  88. data/resource/style/chicago-fullnote-bibliography-bb.csl +928 -0
  89. data/resource/style/chicago-fullnote-bibliography.csl +695 -0
  90. data/resource/style/chicago-note-bibliography.csl +446 -0
  91. data/resource/style/chicago-note.csl +388 -0
  92. data/resource/style/greek-chicago-x.csl +1182 -0
  93. data/resource/style/harvard1-institution-italic.csl +190 -0
  94. data/resource/style/harvard1.csl +181 -0
  95. data/resource/style/ieee.csl +129 -0
  96. data/resource/style/mhra-x.csl +312 -0
  97. data/resource/style/mhra.csl +390 -0
  98. data/resource/style/mhra_note_without_bibliography-x.csl +330 -0
  99. data/resource/style/mhra_note_without_bibliography.csl +338 -0
  100. data/resource/style/mla-x.csl +178 -0
  101. data/resource/style/mla.csl +189 -0
  102. data/resource/style/nature-x.csl +81 -0
  103. data/resource/style/nature.csl +88 -0
  104. data/resource/style/nlm.csl +117 -0
  105. data/spec/citeproc/bibliography_spec.rb +45 -0
  106. data/spec/citeproc/citeproc_spec.rb +76 -0
  107. data/spec/citeproc/date_spec.rb +85 -0
  108. data/spec/citeproc/formatter_spec.rb +101 -0
  109. data/spec/citeproc/item_spec.rb +71 -0
  110. data/spec/citeproc/name_spec.rb +30 -0
  111. data/spec/citeproc/processor_spec.rb +61 -0
  112. data/spec/citeproc/selector_spec.rb +82 -0
  113. data/spec/citeproc/variable_spec.rb +69 -0
  114. data/spec/csl/locale_spec.rb +208 -0
  115. data/spec/csl/node_spec.rb +25 -0
  116. data/spec/csl/nodes_spec.rb +140 -0
  117. data/spec/csl/style_spec.rb +62 -0
  118. data/spec/csl/term_spec.rb +56 -0
  119. data/spec/fixtures/dates.yaml +80 -0
  120. data/spec/fixtures/names.yaml +115 -0
  121. data/spec/fixtures/nodes.yaml +245 -0
  122. data/spec/spec_helper.rb +18 -0
  123. data/spec/support/attributes_spec.rb +39 -0
  124. data/spec/support/tree_spec.rb +163 -0
  125. metadata +264 -0
@@ -0,0 +1,434 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.1x" default-locale="en-US-x-sort-ja-alalc97">
3
+ <info>
4
+ <title>Chicago Manual of Style (Author-Date format)</title>
5
+ <id>http://www.zotero.org/styles/chicago-author-date</id>
6
+ <link href="http://www.zotero.org/styles/chicago-author-date-listing" rel="self"/>
7
+ <author>
8
+ <name>Julian Onions</name>
9
+ <email>julian.onions@gmail.com</email>
10
+ </author>
11
+ <category citation-format="author-date"/>
12
+ <category field="generic-base"/>
13
+ <updated>2009-12-04T20:22:16+00:00</updated>
14
+ <summary>The author-date variant of the Chicago style, as per-author-listing</summary>
15
+ <link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation"/>
16
+ </info>
17
+ <locale>
18
+ <terms>
19
+ <term name="and others"></term>
20
+ <term name="contributor"></term>
21
+ </terms>
22
+ </locale>
23
+ <macro name="secondary-contributors">
24
+ <choose>
25
+ <if match="none" type="chapter">
26
+ <group delimiter=". ">
27
+ <choose>
28
+ <if variable="author">
29
+ <names variable="editor">
30
+ <label form="verb-short" prefix=" " suffix=". " text-case="capitalize-first" />
31
+ <name and="text" delimiter=", " />
32
+ </names>
33
+ </if>
34
+ </choose>
35
+ <choose>
36
+ <if match="any" variable="author editor">
37
+ <names variable="translator">
38
+ <label form="verb-short" prefix=" " suffix=". " text-case="capitalize-first" />
39
+ <name and="text" delimiter=", " />
40
+ </names>
41
+ </if>
42
+ </choose>
43
+ </group>
44
+ </if>
45
+ </choose>
46
+ </macro>
47
+ <macro name="container-contributors">
48
+ <choose>
49
+ <if type="chapter">
50
+ <group delimiter=", " prefix=",">
51
+ <choose>
52
+ <if variable="author">
53
+ <names variable="editor">
54
+ <label form="verb-short" prefix=" " suffix=". " text-case="lowercase" />
55
+ <name and="text" delimiter=", " />
56
+ </names>
57
+ </if>
58
+ </choose>
59
+ <choose>
60
+ <if match="any" variable="author editor">
61
+ <names variable="translator">
62
+ <label form="verb-short" prefix=" " suffix=". " text-case="lowercase" />
63
+ <name and="text" delimiter=", " />
64
+ </names>
65
+ </if>
66
+ </choose>
67
+ </group>
68
+ </if>
69
+ </choose>
70
+ </macro>
71
+ <macro name="anon">
72
+ <choose>
73
+ <if match="none" variable="author editor translator">
74
+ <text form="short" term="anonymous" text-case="capitalize-first" />
75
+ </if>
76
+ </choose>
77
+ </macro>
78
+ <macro name="editor">
79
+ <names variable="editor">
80
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
81
+ <label form="short" prefix=", " suffix="." />
82
+ </names>
83
+ </macro>
84
+ <macro name="translator">
85
+ <names variable="translator">
86
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
87
+ <label form="verb-short" prefix=", " suffix="." />
88
+ </names>
89
+ </macro>
90
+ <macro name="recipient">
91
+ <choose>
92
+ <if type="personal_communication">
93
+ <choose>
94
+ <if variable="genre">
95
+ <text text-case="capitalize-first" variable="genre" />
96
+ </if>
97
+ <else>
98
+ <text term="letter" text-case="capitalize-first" />
99
+ </else>
100
+ </choose>
101
+ </if>
102
+ </choose>
103
+ <names delimiter=", " variable="recipient">
104
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
105
+ <name and="text" delimiter=", " />
106
+ </names>
107
+ </macro>
108
+ <macro name="contributors">
109
+ <names variable="author">
110
+ <name and="text" delimiter=", " delimiter-precedes-last="always" />
111
+ <label form="verb-short" prefix=", " suffix="." text-case="lowercase" />
112
+ <substitute>
113
+ <text macro="editor" />
114
+ <text macro="translator" />
115
+ </substitute>
116
+ </names>
117
+ <text macro="anon" />
118
+ <text macro="recipient" />
119
+ </macro>
120
+ <macro name="headline-contributor">
121
+ <names variable="contributor">
122
+ <name and="text" delimiter=", "
123
+ delimiter-precedes-last="always"
124
+ name-as-sort-order="first"
125
+ sort-separator=", "
126
+ et-al-use-first="1"
127
+ et-al-min="2"/>
128
+ <et-al term="and others"/>
129
+ <label form="verb-short" prefix=", " suffix="." text-case="lowercase" />
130
+ </names>
131
+ </macro>
132
+ <macro name="headline-author">
133
+ <names variable="author">
134
+ <name and="text" delimiter=", "
135
+ delimiter-precedes-last="always"
136
+ name-as-sort-order="first"
137
+ sort-separator=", "
138
+ et-al-use-first="1"
139
+ et-al-min="1"/>
140
+ <et-al term="and others"/>
141
+ <label form="verb-short" prefix=", " suffix="." text-case="lowercase" />
142
+ <substitute>
143
+ <text macro="editor" />
144
+ <text macro="translator" />
145
+ </substitute>
146
+ </names>
147
+ <text macro="anon" />
148
+ <text macro="recipient" />
149
+ </macro>
150
+ <macro name="contributors-short">
151
+ <names variable="author">
152
+ <name and="text" delimiter=", " form="short" />
153
+ <substitute>
154
+ <names variable="editor" />
155
+ <names variable="translator" />
156
+ </substitute>
157
+ </names>
158
+ <text macro="anon" />
159
+ </macro>
160
+ <macro name="interviewer">
161
+ <names delimiter=", " variable="interviewer">
162
+ <label form="verb" prefix=" " suffix=" " text-case="capitalize-first" />
163
+ <name and="text" delimiter=", " />
164
+ </names>
165
+ </macro>
166
+ <macro name="archive">
167
+ <group delimiter=". ">
168
+ <text text-case="capitalize-first" variable="archive_location" />
169
+ <text variable="archive" />
170
+ <text variable="archive-place" />
171
+ </group>
172
+ </macro>
173
+ <macro name="access">
174
+ <group delimiter=". ">
175
+ <choose>
176
+ <if match="any" type="graphic report">
177
+ <text macro="archive" />
178
+ </if>
179
+ <else-if match="none" type="book thesis chapter article-journal article-newspaper article-magazine">
180
+ <text macro="archive" />
181
+ </else-if>
182
+ </choose>
183
+ <text prefix="doi:" variable="DOI" />
184
+ <text variable="URL" />
185
+ </group>
186
+ </macro>
187
+ <macro name="title">
188
+ <choose>
189
+ <if match="none" variable="title">
190
+ <choose>
191
+ <if match="none" type="personal_communication">
192
+ <text text-case="capitalize-first" variable="genre" />
193
+ </if>
194
+ </choose>
195
+ </if>
196
+ <else-if type="book">
197
+ <text font-style="italic" variable="title" />
198
+ </else-if>
199
+ <else>
200
+ <text variable="title" />
201
+ </else>
202
+ </choose>
203
+ </macro>
204
+ <macro name="edition">
205
+ <choose>
206
+ <if match="any" type="book chapter">
207
+ <choose>
208
+ <if is-numeric="edition">
209
+ <group delimiter=" ">
210
+ <number form="ordinal" variable="edition" />
211
+ <text form="short" suffix="." term="edition" />
212
+ </group>
213
+ </if>
214
+ <else>
215
+ <text suffix="." variable="edition" />
216
+ </else>
217
+ </choose>
218
+ </if>
219
+ </choose>
220
+ </macro>
221
+ <macro name="locators">
222
+ <choose>
223
+ <if type="article-journal">
224
+ <text prefix=" " variable="volume" />
225
+ <text prefix=", no. " variable="issue" />
226
+ </if>
227
+ <else-if type="book">
228
+ <group delimiter=". " prefix=". ">
229
+ <group>
230
+ <text form="short" suffix=". " term="volume" text-case="capitalize-first" />
231
+ <number form="numeric" variable="volume" />
232
+ </group>
233
+ <group>
234
+ <number form="numeric" variable="number-of-volumes" />
235
+ <text form="short" plural="true" prefix=" " suffix="." term="volume" />
236
+ </group>
237
+ </group>
238
+ </else-if>
239
+ </choose>
240
+ </macro>
241
+ <macro name="locators-chapter">
242
+ <choose>
243
+ <if type="chapter">
244
+ <group prefix=", ">
245
+ <text suffix=":" variable="volume" />
246
+ <text variable="page" />
247
+ </group>
248
+ </if>
249
+ </choose>
250
+ </macro>
251
+ <macro name="locators-article">
252
+ <choose>
253
+ <if type="article-newspaper">
254
+ <group delimiter=", " prefix=", ">
255
+ <group>
256
+ <text suffix=" " variable="edition" />
257
+ <text prefix=" " term="edition" />
258
+ </group>
259
+ <group>
260
+ <text form="short" suffix=". " term="section" />
261
+ <text variable="section" />
262
+ </group>
263
+ </group>
264
+ </if>
265
+ <else-if type="article-journal">
266
+ <text prefix=": " variable="page" />
267
+ </else-if>
268
+ </choose>
269
+ </macro>
270
+ <macro name="point-locators">
271
+ <group>
272
+ <choose>
273
+ <if locator="page" match="none">
274
+ <label form="short" strip-periods="false" suffix=" " variable="locator" />
275
+ </if>
276
+ </choose>
277
+ <text variable="locator" />
278
+ </group>
279
+ </macro>
280
+ <macro name="container-prefix">
281
+ <text term="in" text-case="capitalize-first" />
282
+ </macro>
283
+ <macro name="container-title">
284
+ <choose>
285
+ <if type="chapter">
286
+ <text macro="container-prefix" suffix=" " />
287
+ </if>
288
+ </choose>
289
+ <text font-style="italic" variable="container-title" />
290
+ </macro>
291
+ <macro name="publisher">
292
+ <group delimiter=": ">
293
+ <text variable="publisher-place" />
294
+ <text variable="publisher" />
295
+ </group>
296
+ </macro>
297
+ <macro name="date">
298
+ <date variable="issued">
299
+ <date-part name="year" />
300
+ </date>
301
+ </macro>
302
+ <macro name="day-month">
303
+ <date variable="issued">
304
+ <date-part name="month" />
305
+ <date-part name="day" prefix=" " />
306
+ </date>
307
+ </macro>
308
+ <macro name="collection-title">
309
+ <text variable="collection-title" />
310
+ <text prefix=" " variable="collection-number" />
311
+ </macro>
312
+ <macro name="event">
313
+ <group>
314
+ <text suffix=" " term="presented at" />
315
+ <text variable="event" />
316
+ </group>
317
+ </macro>
318
+ <macro name="description">
319
+ <group delimiter=". ">
320
+ <text macro="interviewer" />
321
+ <text text-case="capitalize-first" variable="medium" />
322
+ </group>
323
+ <choose>
324
+ <if match="none" variable="title"> </if>
325
+ <else-if type="thesis"> </else-if>
326
+ <else>
327
+ <text prefix=". " text-case="capitalize-first" variable="genre" />
328
+ </else>
329
+ </choose>
330
+ </macro>
331
+ <macro name="issue">
332
+ <choose>
333
+ <if type="article-journal">
334
+ <text macro="day-month" prefix=" (" suffix=")" />
335
+ </if>
336
+ <else-if type="speech">
337
+ <group delimiter=", " prefix=" ">
338
+ <text macro="event" />
339
+ <text macro="day-month" />
340
+ <text variable="event-place" />
341
+ </group>
342
+ </else-if>
343
+ <else-if match="any" type="article-newspaper article-magazine">
344
+ <text macro="day-month" prefix=", " />
345
+ </else-if>
346
+ <else>
347
+ <group delimiter=", " prefix=". ">
348
+ <choose>
349
+ <if type="thesis">
350
+ <text text-case="capitalize-first" variable="genre" />
351
+ </if>
352
+ </choose>
353
+ <text macro="publisher" />
354
+ <text macro="day-month" />
355
+ </group>
356
+ </else>
357
+ </choose>
358
+ </macro>
359
+ <macro name="headline">
360
+ <choose>
361
+ <if variable="contributor">
362
+ <text macro="headline-contributor"/>
363
+ </if>
364
+ <else>
365
+ <text macro="headline-author"/>
366
+ </else>
367
+ </choose>
368
+ </macro>
369
+ <citation
370
+ disambiguate-add-givenname="true"
371
+ disambiguate-add-names="true"
372
+ disambiguate-add-year-suffix="true"
373
+ et-al-min="4"
374
+ et-al-subsequent-min="4"
375
+ et-al-subsequent-use-first="1"
376
+ et-al-use-first="1">
377
+ <layout delimiter="; " prefix="(" suffix=")">
378
+ <group delimiter=", ">
379
+ <group delimiter=" ">
380
+ <text macro="contributors-short" />
381
+ <text macro="date" />
382
+ </group>
383
+ <text macro="point-locators" />
384
+ </group>
385
+ </layout>
386
+ </citation>
387
+ <bibliography
388
+ entry-spacing="0"
389
+ et-al-min="11"
390
+ et-al-use-first="7"
391
+ hanging-indent="true"
392
+ subsequent-author-substitute="">
393
+ <sort>
394
+ <key macro="headline"
395
+ names-min="1"
396
+ names-use-first="1"
397
+ sort="ascending"/>
398
+ <key variable="issued"
399
+ sort="descending"/>
400
+ </sort>
401
+ <layout>
402
+ <text macro="headline" display="block"/>
403
+ <group display="left-margin">
404
+ <text macro="date" />
405
+ </group>
406
+ <group display="right-inline">
407
+ <group suffix=".">
408
+ <text macro="title" />
409
+ <text macro="description" />
410
+ <text macro="secondary-contributors" prefix=". " />
411
+ <text macro="container-title" prefix=". " />
412
+ <text macro="container-contributors" />
413
+ <text macro="locators-chapter" />
414
+ <text macro="edition" prefix=". " />
415
+ <text macro="locators" />
416
+ <text macro="collection-title" prefix=". " />
417
+ <text macro="issue" />
418
+ <text macro="locators-article" />
419
+ <text macro="access" prefix=". " />
420
+ </group>
421
+ <group prefix=" (" suffix=")" delimiter=" ">
422
+ <choose>
423
+ <if variable="contributor">
424
+ <text prefix="co-author among: " macro="contributors"/>
425
+ </if>
426
+ <else>
427
+ <text prefix="co-authorship: " macro="contributors"/>
428
+ </else>
429
+ </choose>
430
+ </group>
431
+ </group>
432
+ </layout>
433
+ </bibliography>
434
+ </style>
@@ -0,0 +1,369 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" page-range-format="chicago">
3
+ <info>
4
+ <title>Chicago Manual of Style (Author-Date format)</title>
5
+ <id>http://www.zotero.org/styles/chicago-author-date</id>
6
+ <link href="http://www.zotero.org/styles/chicago-author-date" rel="self"/>
7
+ <author>
8
+ <name>Julian Onions</name>
9
+ <email>julian.onions@gmail.com</email>
10
+ </author>
11
+ <category citation-format="author-date"/>
12
+ <category field="generic-base"/>
13
+ <updated>2009-12-04T20:22:16+00:00</updated>
14
+ <summary>The author-date variant of the Chicago style</summary>
15
+ <link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation"/>
16
+ </info>
17
+ <macro name="secondary-contributors">
18
+ <choose>
19
+ <if match="none" type="chapter">
20
+ <group delimiter=". ">
21
+ <choose>
22
+ <if variable="author">
23
+ <names variable="editor">
24
+ <label form="verb-short" prefix=" " suffix=". " text-case="capitalize-first" />
25
+ <name and="text" delimiter=", " />
26
+ </names>
27
+ </if>
28
+ </choose>
29
+ <choose>
30
+ <if match="any" variable="author editor">
31
+ <names variable="translator">
32
+ <label form="verb-short" prefix=" " suffix=". " text-case="capitalize-first" />
33
+ <name and="text" delimiter=", " />
34
+ </names>
35
+ </if>
36
+ </choose>
37
+ </group>
38
+ </if>
39
+ </choose>
40
+ </macro>
41
+ <macro name="container-contributors">
42
+ <choose>
43
+ <if type="chapter">
44
+ <group delimiter=", " prefix=",">
45
+ <choose>
46
+ <if variable="author">
47
+ <names variable="editor">
48
+ <label form="verb-short" prefix=" " suffix=". " text-case="lowercase" />
49
+ <name and="text" delimiter=", " />
50
+ </names>
51
+ </if>
52
+ </choose>
53
+ <choose>
54
+ <if match="any" variable="author editor">
55
+ <names variable="translator">
56
+ <label form="verb-short" prefix=" " suffix=". " text-case="lowercase" />
57
+ <name and="text" delimiter=", " />
58
+ </names>
59
+ </if>
60
+ </choose>
61
+ </group>
62
+ </if>
63
+ </choose>
64
+ </macro>
65
+ <macro name="anon">
66
+ <choose>
67
+ <if match="none" variable="author editor translator">
68
+ <text form="short" term="anonymous" text-case="capitalize-first" />
69
+ </if>
70
+ </choose>
71
+ </macro>
72
+ <macro name="editor">
73
+ <names variable="editor">
74
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
75
+ <label form="short" prefix=", " suffix="." />
76
+ </names>
77
+ </macro>
78
+ <macro name="translator">
79
+ <names variable="translator">
80
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
81
+ <label form="verb-short" prefix=", " suffix="." />
82
+ </names>
83
+ </macro>
84
+ <macro name="recipient">
85
+ <choose>
86
+ <if type="personal_communication">
87
+ <choose>
88
+ <if variable="genre">
89
+ <text text-case="capitalize-first" variable="genre" />
90
+ </if>
91
+ <else>
92
+ <text term="letter" text-case="capitalize-first" />
93
+ </else>
94
+ </choose>
95
+ </if>
96
+ </choose>
97
+ <names delimiter=", " variable="recipient">
98
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
99
+ <name and="text" delimiter=", " />
100
+ </names>
101
+ </macro>
102
+ <macro name="contributors">
103
+ <names variable="author">
104
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
105
+ <label form="verb-short" prefix=", " suffix="." text-case="lowercase" />
106
+ <substitute>
107
+ <text macro="editor" />
108
+ <text macro="translator" />
109
+ </substitute>
110
+ </names>
111
+ <text macro="anon" />
112
+ <text macro="recipient" />
113
+ </macro>
114
+ <macro name="contributors-short">
115
+ <names variable="author">
116
+ <name and="text" delimiter=", " form="short" />
117
+ <substitute>
118
+ <names variable="editor" />
119
+ <names variable="translator" />
120
+ </substitute>
121
+ </names>
122
+ <text macro="anon" />
123
+ </macro>
124
+ <macro name="interviewer">
125
+ <names delimiter=", " variable="interviewer">
126
+ <label form="verb" prefix=" " suffix=" " text-case="capitalize-first" />
127
+ <name and="text" delimiter=", " />
128
+ </names>
129
+ </macro>
130
+ <macro name="archive">
131
+ <group delimiter=". ">
132
+ <text text-case="capitalize-first" variable="archive_location" />
133
+ <text variable="archive" />
134
+ <text variable="archive-place" />
135
+ </group>
136
+ </macro>
137
+ <macro name="access">
138
+ <group delimiter=". ">
139
+ <choose>
140
+ <if match="any" type="graphic report">
141
+ <text macro="archive" />
142
+ </if>
143
+ <else-if match="none" type="book thesis chapter article-journal article-newspaper article-magazine">
144
+ <text macro="archive" />
145
+ </else-if>
146
+ </choose>
147
+ <text prefix="doi:" variable="DOI" />
148
+ <text variable="URL" />
149
+ </group>
150
+ </macro>
151
+ <macro name="title">
152
+ <choose>
153
+ <if match="none" variable="title">
154
+ <choose>
155
+ <if match="none" type="personal_communication">
156
+ <text text-case="capitalize-first" variable="genre" />
157
+ </if>
158
+ </choose>
159
+ </if>
160
+ <else-if type="book">
161
+ <text font-style="italic" variable="title" />
162
+ </else-if>
163
+ <else>
164
+ <text variable="title" />
165
+ </else>
166
+ </choose>
167
+ </macro>
168
+ <macro name="edition">
169
+ <choose>
170
+ <if match="any" type="book chapter">
171
+ <choose>
172
+ <if is-numeric="edition">
173
+ <group delimiter=" ">
174
+ <number form="ordinal" variable="edition" />
175
+ <text form="short" suffix="." term="edition" />
176
+ </group>
177
+ </if>
178
+ <else>
179
+ <text suffix="." variable="edition" />
180
+ </else>
181
+ </choose>
182
+ </if>
183
+ </choose>
184
+ </macro>
185
+ <macro name="locators">
186
+ <choose>
187
+ <if type="article-journal">
188
+ <text prefix=" " variable="volume" />
189
+ <text prefix=", no. " variable="issue" />
190
+ </if>
191
+ <else-if type="book">
192
+ <group delimiter=". " prefix=". ">
193
+ <group>
194
+ <text form="short" suffix=". " term="volume" text-case="capitalize-first" />
195
+ <number form="numeric" variable="volume" />
196
+ </group>
197
+ <group>
198
+ <number form="numeric" variable="number-of-volumes" />
199
+ <text form="short" plural="true" prefix=" " suffix="." term="volume" />
200
+ </group>
201
+ </group>
202
+ </else-if>
203
+ </choose>
204
+ </macro>
205
+ <macro name="locators-chapter">
206
+ <choose>
207
+ <if type="chapter">
208
+ <group prefix=", ">
209
+ <text suffix=":" variable="volume" />
210
+ <text variable="page" />
211
+ </group>
212
+ </if>
213
+ </choose>
214
+ </macro>
215
+ <macro name="locators-article">
216
+ <choose>
217
+ <if type="article-newspaper">
218
+ <group delimiter=", " prefix=", ">
219
+ <group>
220
+ <text suffix=" " variable="edition" />
221
+ <text prefix=" " term="edition" />
222
+ </group>
223
+ <group>
224
+ <text form="short" suffix=". " term="section" />
225
+ <text variable="section" />
226
+ </group>
227
+ </group>
228
+ </if>
229
+ <else-if type="article-journal">
230
+ <text prefix=": " variable="page" />
231
+ </else-if>
232
+ </choose>
233
+ </macro>
234
+ <macro name="point-locators">
235
+ <group>
236
+ <choose>
237
+ <if locator="page" match="none">
238
+ <label form="short" suffix=" " variable="locator" />
239
+ </if>
240
+ </choose>
241
+ <text variable="locator" />
242
+ </group>
243
+ </macro>
244
+ <macro name="container-prefix">
245
+ <text term="in" text-case="capitalize-first" />
246
+ </macro>
247
+ <macro name="container-title">
248
+ <choose>
249
+ <if type="chapter">
250
+ <text macro="container-prefix" suffix=" " />
251
+ </if>
252
+ </choose>
253
+ <text font-style="italic" variable="container-title" />
254
+ </macro>
255
+ <macro name="publisher">
256
+ <group delimiter=": ">
257
+ <text variable="publisher-place" />
258
+ <text variable="publisher" />
259
+ </group>
260
+ </macro>
261
+ <macro name="date">
262
+ <date variable="issued">
263
+ <date-part name="year" />
264
+ </date>
265
+ </macro>
266
+ <macro name="day-month">
267
+ <date variable="issued">
268
+ <date-part name="month" />
269
+ <date-part name="day" prefix=" " />
270
+ </date>
271
+ </macro>
272
+ <macro name="collection-title">
273
+ <text variable="collection-title" />
274
+ <text prefix=" " variable="collection-number" />
275
+ </macro>
276
+ <macro name="event">
277
+ <group>
278
+ <text suffix=" " term="presented at" />
279
+ <text variable="event" />
280
+ </group>
281
+ </macro>
282
+ <macro name="description">
283
+ <group delimiter=". ">
284
+ <text macro="interviewer" />
285
+ <text text-case="capitalize-first" variable="medium" />
286
+ </group>
287
+ <choose>
288
+ <if match="none" variable="title"> </if>
289
+ <else-if type="thesis"> </else-if>
290
+ <else>
291
+ <text prefix=". " text-case="capitalize-first" variable="genre" />
292
+ </else>
293
+ </choose>
294
+ </macro>
295
+ <macro name="issue">
296
+ <choose>
297
+ <if type="article-journal">
298
+ <text macro="day-month" prefix=" (" suffix=")" />
299
+ </if>
300
+ <else-if type="speech">
301
+ <group delimiter=", " prefix=" ">
302
+ <text macro="event" />
303
+ <text macro="day-month" />
304
+ <text variable="event-place" />
305
+ </group>
306
+ </else-if>
307
+ <else-if match="any" type="article-newspaper article-magazine">
308
+ <text macro="day-month" prefix=", " />
309
+ </else-if>
310
+ <else>
311
+ <group delimiter=", " prefix=". ">
312
+ <choose>
313
+ <if type="thesis">
314
+ <text text-case="capitalize-first" variable="genre" />
315
+ </if>
316
+ </choose>
317
+ <text macro="publisher" />
318
+ <text macro="day-month" />
319
+ </group>
320
+ </else>
321
+ </choose>
322
+ </macro>
323
+ <citation
324
+ disambiguate-add-givenname="true"
325
+ disambiguate-add-names="true"
326
+ disambiguate-add-year-suffix="true"
327
+ et-al-min="4"
328
+ et-al-subsequent-min="4"
329
+ et-al-subsequent-use-first="1"
330
+ et-al-use-first="1">
331
+ <layout delimiter="; " prefix="(" suffix=")">
332
+ <group delimiter=", ">
333
+ <group delimiter=" ">
334
+ <text macro="contributors-short" />
335
+ <text macro="date" />
336
+ </group>
337
+ <text macro="point-locators" />
338
+ </group>
339
+ </layout>
340
+ </citation>
341
+ <bibliography
342
+ entry-spacing="0"
343
+ et-al-min="11"
344
+ et-al-use-first="7"
345
+ hanging-indent="true"
346
+ subsequent-author-substitute="---">
347
+ <sort>
348
+ <key macro="contributors" />
349
+ <key variable="issued" />
350
+ <key variable="title" />
351
+ </sort>
352
+ <layout suffix=".">
353
+ <text macro="contributors" suffix=". " />
354
+ <text macro="date" suffix=". " />
355
+ <text macro="title" />
356
+ <text macro="description" />
357
+ <text macro="secondary-contributors" prefix=". " />
358
+ <text macro="container-title" prefix=". " />
359
+ <text macro="container-contributors" />
360
+ <text macro="locators-chapter" />
361
+ <text macro="edition" prefix=". " />
362
+ <text macro="locators" />
363
+ <text macro="collection-title" prefix=". " />
364
+ <text macro="issue" />
365
+ <text macro="locators-article" />
366
+ <text macro="access" prefix=". " />
367
+ </layout>
368
+ </bibliography>
369
+ </style>