citeproc-ruby 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,695 @@
1
+ <style
2
+ xmlns="http://purl.org/net/xbiblio/csl"
3
+ class="in-text"
4
+ version="1.0"
5
+ default-locale="en-US-x-sort-ja-alalc97-x-sec-en-x-name-ja-alalc97">
6
+ <info>
7
+ <title>Chicago Manual of Style (Full Note with Bibliography)</title>
8
+ <id>http://www.zotero.org/styles/chicago-fullnote-bibliography</id>
9
+ <link rel="self" href="http://www.zotero.org/styles/chicago-fullnote-bibliography" />
10
+ <link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation" />
11
+ <author>
12
+ <name>Julian Onions</name>
13
+ <email>julian.onions@gmail.com</email>
14
+ </author>
15
+ <contributor>
16
+ <name>Simon Kornblith</name>
17
+ <email>simon@simonster.com</email>
18
+ </contributor>
19
+ <contributor>
20
+ <name>Elena Razlogova</name>
21
+ <email>elena.razlogova@gmail.com</email>
22
+ </contributor>
23
+ <summary>Chicago format with full notes and bibliography</summary>
24
+ <category field="generic-base" />
25
+ <category citation-format="numeric" />
26
+ <updated>2009-08-10T04:49:00+09:00</updated>
27
+ </info>
28
+ <macro name="editor-translator">
29
+ <group delimiter=", ">
30
+ <choose>
31
+ <if variable="author">
32
+ <names delimiter=", " variable="editor">
33
+ <label form="verb-short" suffix=". " text-case="lowercase" />
34
+ <name and="text" delimiter=", " />
35
+ </names>
36
+ </if>
37
+ </choose>
38
+ <choose>
39
+ <if match="any" variable="author editor">
40
+ <names delimiter=", " variable="translator">
41
+ <label form="verb-short" suffix=". " text-case="lowercase" />
42
+ <name and="text" delimiter=", " />
43
+ </names>
44
+ </if>
45
+ </choose>
46
+ </group>
47
+ </macro>
48
+ <macro name="secondary-contributors-note">
49
+ <choose>
50
+ <if match="none" type="chapter">
51
+ <text macro="editor-translator" />
52
+ </if>
53
+ </choose>
54
+ </macro>
55
+ <macro name="container-contributors-note">
56
+ <choose>
57
+ <if type="chapter">
58
+ <text macro="editor-translator" />
59
+ </if>
60
+ </choose>
61
+ </macro>
62
+ <macro name="secondary-contributors">
63
+ <choose>
64
+ <if match="none" type="chapter">
65
+ <group delimiter=". ">
66
+ <choose>
67
+ <if variable="author">
68
+ <names delimiter=". " variable="editor">
69
+ <label form="verb" prefix=" " suffix=" " text-case="capitalize-first" />
70
+ <name and="text" delimiter=", " />
71
+ </names>
72
+ </if>
73
+ </choose>
74
+ <choose>
75
+ <if match="any" variable="author editor">
76
+ <names delimiter=". " variable="translator">
77
+ <label form="verb" prefix=" " suffix=" " text-case="capitalize-first" />
78
+ <name and="text" delimiter=", " />
79
+ </names>
80
+ </if>
81
+ </choose>
82
+ </group>
83
+ </if>
84
+ </choose>
85
+ </macro>
86
+ <macro name="container-contributors">
87
+ <choose>
88
+ <if type="chapter">
89
+ <group delimiter=", ">
90
+ <choose>
91
+ <if variable="author">
92
+ <names delimiter=", " variable="editor">
93
+ <label form="verb" suffix=" " text-case="lowercase" />
94
+ <name and="text" delimiter=", " />
95
+ </names>
96
+ </if>
97
+ </choose>
98
+ <choose>
99
+ <if match="any" variable="author editor">
100
+ <names delimiter=", " variable="translator">
101
+ <label form="verb" suffix=" " text-case="lowercase" />
102
+ <name and="text" delimiter=", " />
103
+ </names>
104
+ </if>
105
+ </choose>
106
+ </group>
107
+ </if>
108
+ </choose>
109
+ </macro>
110
+ <macro name="editor-note">
111
+ <names variable="editor">
112
+ <name and="text" delimiter=", " sort-separator=", " />
113
+ <label form="short" prefix=", " suffix="." />
114
+ </names>
115
+ </macro>
116
+ <macro name="translator-note">
117
+ <names variable="translator">
118
+ <name and="text" delimiter=", " sort-separator=", " />
119
+ <label form="verb-short" prefix=", " suffix="." />
120
+ </names>
121
+ </macro>
122
+ <macro name="recipient-note">
123
+ <names delimiter=", " variable="recipient">
124
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
125
+ <name and="text" delimiter=", " />
126
+ </names>
127
+ </macro>
128
+ <macro name="contributors-note">
129
+ <names variable="author">
130
+ <name and="text" delimiter=", " sort-separator=", " />
131
+ <substitute>
132
+ <text macro="editor-note" />
133
+ <text macro="translator-note" />
134
+ </substitute>
135
+ </names>
136
+ <text macro="recipient-note" />
137
+ </macro>
138
+ <macro name="editor">
139
+ <names variable="editor">
140
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
141
+ <label form="short" prefix=", " suffix="." />
142
+ </names>
143
+ </macro>
144
+ <macro name="translator">
145
+ <names variable="translator">
146
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
147
+ <label form="verb-short" prefix=", " suffix="." />
148
+ </names>
149
+ </macro>
150
+ <macro name="recipient">
151
+ <choose>
152
+ <if type="personal_communication">
153
+ <choose>
154
+ <if variable="genre">
155
+ <text text-case="capitalize-first" variable="genre" />
156
+ </if>
157
+ <else>
158
+ <text term="letter" text-case="capitalize-first" />
159
+ </else>
160
+ </choose>
161
+ </if>
162
+ </choose>
163
+ <text macro="recipient-note" prefix=" " />
164
+ </macro>
165
+ <macro name="contributors">
166
+ <names variable="author">
167
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
168
+ <substitute>
169
+ <text macro="editor" />
170
+ <text macro="translator" />
171
+ </substitute>
172
+ </names>
173
+ <text macro="recipient" prefix=". " />
174
+ </macro>
175
+ <macro name="recipient-short">
176
+ <names variable="recipient">
177
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
178
+ <name and="text" delimiter=", " form="short" />
179
+ </names>
180
+ </macro>
181
+ <macro name="contributors-short">
182
+ <names variable="author">
183
+ <name and="text" delimiter=", " form="short" />
184
+ <substitute>
185
+ <names variable="editor" />
186
+ <names variable="translator" />
187
+ </substitute>
188
+ </names>
189
+ <text macro="recipient-short" />
190
+ </macro>
191
+ <macro name="contributors-sort">
192
+ <names variable="author">
193
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="all" sort-separator=", " />
194
+ <label form="verb-short" prefix=", " suffix="." />
195
+ <substitute>
196
+ <names variable="editor" />
197
+ <names variable="translator" />
198
+ </substitute>
199
+ </names>
200
+ </macro>
201
+ <macro name="interviewer-note">
202
+ <names delimiter=", " variable="interviewer">
203
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
204
+ <name and="text" delimiter=", " />
205
+ </names>
206
+ </macro>
207
+ <macro name="interviewer">
208
+ <names delimiter=", " variable="interviewer">
209
+ <label form="verb" prefix=" " suffix=" " text-case="capitalize-first" />
210
+ <name and="text" delimiter=", " />
211
+ </names>
212
+ </macro>
213
+ <macro name="title-note">
214
+ <choose>
215
+ <if match="none" variable="title">
216
+ <text variable="genre" />
217
+ </if>
218
+ <else-if type="book">
219
+ <text font-style="italic" variable="title" />
220
+ </else-if>
221
+ <else>
222
+ <text quotes="true" variable="title" />
223
+ </else>
224
+ </choose>
225
+ </macro>
226
+ <macro name="title">
227
+ <choose>
228
+ <if match="none" variable="title">
229
+ <choose>
230
+ <if match="none" type="personal_communication">
231
+ <text text-case="capitalize-first" variable="genre" />
232
+ </if>
233
+ </choose>
234
+ </if>
235
+ <else-if type="book">
236
+ <text font-style="italic" variable="title" />
237
+ </else-if>
238
+ <else>
239
+ <text quotes="true" variable="title" />
240
+ </else>
241
+ </choose>
242
+ </macro>
243
+ <macro name="title-short">
244
+ <choose>
245
+ <if match="none" variable="title">
246
+ <choose>
247
+ <if type="interview">
248
+ <text term="interview" text-case="lowercase" />
249
+ </if>
250
+ <else-if match="any" type="manuscript speech">
251
+ <text form="short" variable="genre" />
252
+ </else-if>
253
+ <else-if type="personal_communication">
254
+ <text macro="issued" />
255
+ </else-if>
256
+ </choose>
257
+ </if>
258
+ <else-if type="book">
259
+ <text font-style="italic" form="short" variable="title" />
260
+ </else-if>
261
+ <else>
262
+ <text form="short" quotes="true" variable="title" />
263
+ </else>
264
+ </choose>
265
+ </macro>
266
+ <macro name="description-note">
267
+ <group delimiter=", ">
268
+ <text macro="interviewer-note" />
269
+ <text variable="medium" />
270
+ <choose>
271
+ <if match="none" variable="title"/>
272
+ <else-if match="any" type="thesis speech"/>
273
+ <else>
274
+ <text variable="genre" />
275
+ </else>
276
+ </choose>
277
+ </group>
278
+ </macro>
279
+ <macro name="description">
280
+ <group delimiter=", ">
281
+ <group delimiter=". ">
282
+ <text macro="interviewer" />
283
+ <text text-case="capitalize-first" variable="medium" />
284
+ </group>
285
+ <choose>
286
+ <if match="none" variable="title"/>
287
+ <else-if match="any" type="thesis speech"/>
288
+ <else>
289
+ <text text-case="capitalize-first" variable="genre" />
290
+ </else>
291
+ </choose>
292
+ </group>
293
+ </macro>
294
+ <macro name="container-title-note">
295
+ <choose>
296
+ <if type="chapter">
297
+ <text suffix=" " term="in" text-case="lowercase" />
298
+ </if>
299
+ </choose>
300
+ <text font-style="italic" variable="container-title" />
301
+ </macro>
302
+ <macro name="container-title">
303
+ <choose>
304
+ <if type="chapter">
305
+ <text suffix=" " term="in" text-case="capitalize-first" />
306
+ </if>
307
+ </choose>
308
+ <text font-style="italic" variable="container-title" />
309
+ </macro>
310
+ <macro name="collection-title">
311
+ <text variable="collection-title" />
312
+ <text prefix=" " variable="collection-number" />
313
+ </macro>
314
+ <macro name="edition-note">
315
+ <choose>
316
+ <if match="any" type="book chapter">
317
+ <choose>
318
+ <if is-numeric="edition">
319
+ <group delimiter=" ">
320
+ <number form="ordinal" variable="edition" />
321
+ <text form="short" suffix="." term="edition" />
322
+ </group>
323
+ </if>
324
+ <else>
325
+ <text suffix="." variable="edition" />
326
+ </else>
327
+ </choose>
328
+ </if>
329
+ </choose>
330
+ </macro>
331
+ <macro name="edition">
332
+ <choose>
333
+ <if match="any" type="book chapter">
334
+ <choose>
335
+ <if is-numeric="edition">
336
+ <group delimiter=" ">
337
+ <number form="ordinal" variable="edition" />
338
+ <text form="short" suffix="." term="edition" />
339
+ </group>
340
+ </if>
341
+ <else>
342
+ <text suffix="." text-case="capitalize-first" variable="edition" />
343
+ </else>
344
+ </choose>
345
+ </if>
346
+ </choose>
347
+ </macro>
348
+ <macro name="locators-note">
349
+ <choose>
350
+ <if type="article-journal">
351
+ <text prefix=" " variable="volume" />
352
+ <text prefix=", no. " variable="issue" />
353
+ </if>
354
+ <else-if match="any" type="book chapter">
355
+ <group delimiter=", " prefix=", ">
356
+ <group>
357
+ <text form="short" suffix=". " term="volume" />
358
+ <number form="numeric" variable="volume" />
359
+ </group>
360
+ <choose>
361
+ <if match="none" variable="locator">
362
+ <group>
363
+ <number form="numeric" variable="number-of-volumes" />
364
+ <text form="short" plural="true" prefix=" " suffix="." term="volume" />
365
+ </group>
366
+ </if>
367
+ </choose>
368
+ <text macro="edition-note" />
369
+ </group>
370
+ </else-if>
371
+ </choose>
372
+ </macro>
373
+ <macro name="locators">
374
+ <choose>
375
+ <if type="article-journal">
376
+ <text prefix=" " variable="volume" />
377
+ <text prefix=", no. " variable="issue" />
378
+ </if>
379
+ <else-if match="any" type="book">
380
+ <group delimiter=". " prefix=". ">
381
+ <group>
382
+ <text form="short" suffix=". " term="volume" text-case="capitalize-first" />
383
+ <number form="numeric" variable="volume" />
384
+ </group>
385
+ <group>
386
+ <number form="numeric" variable="number-of-volumes" />
387
+ <text form="short" plural="true" prefix=" " suffix="." term="volume" />
388
+ </group>
389
+ <text macro="edition" />
390
+ </group>
391
+ </else-if>
392
+ </choose>
393
+ </macro>
394
+ <macro name="locators-newspaper">
395
+ <choose>
396
+ <if type="article-newspaper">
397
+ <group delimiter=", ">
398
+ <group>
399
+ <text suffix=" " variable="edition" />
400
+ <text prefix=" " term="edition" />
401
+ </group>
402
+ <group>
403
+ <text form="short" suffix=". " term="section" />
404
+ <text variable="section" />
405
+ </group>
406
+ </group>
407
+ </if>
408
+ </choose>
409
+ </macro>
410
+ <macro name="event">
411
+ <group>
412
+ <text suffix=" " term="presented at" />
413
+ <text variable="event" />
414
+ </group>
415
+ </macro>
416
+ <macro name="publisher">
417
+ <group delimiter=": ">
418
+ <text variable="publisher-place" />
419
+ <text variable="publisher" />
420
+ </group>
421
+ </macro>
422
+ <macro name="issued">
423
+ <choose>
424
+ <if match="any" type="graphic report">
425
+ <date variable="issued">
426
+ <date-part name="month" suffix=" " />
427
+ <date-part name="day" suffix=", " />
428
+ <date-part name="year" />
429
+ </date>
430
+ </if>
431
+ <else-if match="any" type="book chapter thesis">
432
+ <date variable="issued">
433
+ <date-part name="year" />
434
+ </date>
435
+ </else-if>
436
+ <else>
437
+ <date variable="issued">
438
+ <date-part name="month" suffix=" " />
439
+ <date-part name="day" suffix=", " />
440
+ <date-part name="year" />
441
+ </date>
442
+ </else>
443
+ </choose>
444
+ </macro>
445
+ <macro name="point-locators-subsequent">
446
+ <group>
447
+ <choose>
448
+ <if locator="page" match="none">
449
+ <label form="short" suffix=" " variable="locator" />
450
+ </if>
451
+ </choose>
452
+ <text variable="locator" />
453
+ </group>
454
+ </macro>
455
+ <macro name="point-locators">
456
+ <choose>
457
+ <if match="none" variable="locator">
458
+ <text macro="pages" />
459
+ </if>
460
+ <else-if type="article-journal">
461
+ <text prefix=": " variable="locator" />
462
+ </else-if>
463
+ <else>
464
+ <text macro="point-locators-subsequent" prefix=", " />
465
+ </else>
466
+ </choose>
467
+ </macro>
468
+ <macro name="pages">
469
+ <choose>
470
+ <if type="article-journal">
471
+ <text prefix=": " variable="page" />
472
+ </if>
473
+ <else-if type="chapter">
474
+ <text prefix=", " variable="page" />
475
+ </else-if>
476
+ </choose>
477
+ </macro>
478
+ <macro name="locators-chapter">
479
+ <choose>
480
+ <if type="chapter">
481
+ <text suffix=":" variable="volume" />
482
+ <text variable="page" />
483
+ </if>
484
+ </choose>
485
+ </macro>
486
+ <macro name="locators-journal">
487
+ <choose>
488
+ <if type="article-journal">
489
+ <text prefix=": " variable="page" />
490
+ </if>
491
+ </choose>
492
+ </macro>
493
+ <macro name="archive-note">
494
+ <group delimiter=", ">
495
+ <text variable="archive_location" />
496
+ <text variable="archive" />
497
+ <text variable="archive-place" />
498
+ </group>
499
+ </macro>
500
+ <macro name="archive">
501
+ <group delimiter=". ">
502
+ <text text-case="capitalize-first" variable="archive_location" />
503
+ <text variable="archive" />
504
+ <text variable="archive-place" />
505
+ </group>
506
+ </macro>
507
+ <macro name="issue-note">
508
+ <choose>
509
+ <if type="article-journal">
510
+ <text macro="issued" prefix=" (" suffix=")" />
511
+ </if>
512
+ <else-if match="any" variable="publisher-place publisher">
513
+ <group delimiter=", " prefix=" (" suffix=")">
514
+ <group delimiter=" ">
515
+ <choose>
516
+ <if match="none" variable="title"/>
517
+ <else-if match="any" type="thesis speech">
518
+ <text variable="genre" />
519
+ </else-if>
520
+ </choose>
521
+ <text macro="event" />
522
+ </group>
523
+ <text macro="publisher" />
524
+ <text macro="issued" />
525
+ </group>
526
+ </else-if>
527
+ <else>
528
+ <text macro="issued" prefix=", " />
529
+ </else>
530
+ </choose>
531
+ </macro>
532
+ <macro name="issue">
533
+ <choose>
534
+ <if type="article-journal">
535
+ <text macro="issued" prefix=" (" suffix=")" />
536
+ </if>
537
+ <else-if type="speech">
538
+ <choose>
539
+ <if match="none" variable="title"> </if>
540
+ <else>
541
+ <text prefix=". " text-case="capitalize-first" variable="genre" />
542
+ </else>
543
+ </choose>
544
+ <text macro="event" prefix=" " />
545
+ <text prefix=", " variable="event-place" />
546
+ <text macro="issued" prefix=", " />
547
+ </else-if>
548
+ <else-if match="any" variable="publisher-place publisher">
549
+ <group delimiter=", " prefix=". ">
550
+ <choose>
551
+ <if type="thesis">
552
+ <text text-case="capitalize-first" variable="genre" />
553
+ </if>
554
+ </choose>
555
+ <text macro="publisher" />
556
+ <text macro="issued" />
557
+ </group>
558
+ </else-if>
559
+ <else>
560
+ <text macro="issued" prefix=", " />
561
+ </else>
562
+ </choose>
563
+ </macro>
564
+ <macro name="access-note">
565
+ <group delimiter=", ">
566
+ <choose>
567
+ <if match="any" type="graphic report">
568
+ <text macro="archive-note" />
569
+ </if>
570
+ <else-if match="none" type="book thesis chapter article-journal article-newspaper article-magazine">
571
+ <text macro="archive-note" />
572
+ </else-if>
573
+ </choose>
574
+ <text prefix="doi:" variable="DOI" />
575
+ <text variable="URL" />
576
+ </group>
577
+ </macro>
578
+ <macro name="access">
579
+ <group delimiter=". ">
580
+ <choose>
581
+ <if match="any" type="graphic report">
582
+ <text macro="archive" />
583
+ </if>
584
+ <else-if match="none" type="book thesis chapter article-journal article-newspaper article-magazine">
585
+ <text macro="archive" />
586
+ </else-if>
587
+ </choose>
588
+ <text variable="URL" />
589
+ </group>
590
+ </macro>
591
+ <macro name="sort-key">
592
+ <text macro="contributors-sort" suffix=" " />
593
+ <text suffix=" " variable="title" />
594
+ <text variable="genre" />
595
+ </macro>
596
+ <macro name="legal-case-first">
597
+ <group delimiter=", ">
598
+ <text variable="title"/>
599
+ <group delimiter=" ">
600
+ <text variable="volume"/>
601
+ <text variable="container-title"/>
602
+ <text variable="page"/>
603
+ <group prefix="(" suffix=")" delimiter=" ">
604
+ <text variable="authority" form="short"/>
605
+ <date variable="issued">
606
+ <date-part name="year"/>
607
+ </date>
608
+ </group>
609
+ </group>
610
+ </group>
611
+ </macro>
612
+ <citation
613
+ disambiguate-add-names="true"
614
+ et-al-min="4"
615
+ et-al-subsequent-min="4"
616
+ et-al-subsequent-use-first="1"
617
+ et-al-use-first="1">
618
+ <layout delimiter="; " prefix="" suffix=".">
619
+ <choose>
620
+ <if type="legal_case">
621
+ <text macro="legal-case-first"/>
622
+ </if>
623
+ <else-if position="ibid-with-locator">
624
+ <group delimiter=", ">
625
+ <text suffix="." term="ibid" text-case="capitalize-first" />
626
+ <text macro="point-locators-subsequent" />
627
+ </group>
628
+ </else-if>
629
+ <else-if position="ibid">
630
+ <text suffix="." term="ibid" text-case="capitalize-first" />
631
+ </else-if>
632
+ <else-if position="subsequent">
633
+ <group delimiter=", ">
634
+ <text macro="contributors-short" />
635
+ <text macro="title-short" />
636
+ <text macro="point-locators-subsequent" />
637
+ </group>
638
+ </else-if>
639
+ <else>
640
+ <group delimiter=", ">
641
+ <text macro="contributors-note" />
642
+ <text macro="title-note" />
643
+ <text macro="description-note" />
644
+ <text macro="secondary-contributors-note" />
645
+ <text macro="container-title-note" />
646
+ <text macro="container-contributors-note" />
647
+ </group>
648
+ <text macro="locators-note" />
649
+ <text macro="collection-title" prefix=", " />
650
+ <text macro="issue-note" />
651
+ <text macro="locators-newspaper" prefix=", " />
652
+ <text macro="point-locators"/>
653
+ <text macro="access-note" prefix=", " />
654
+ </else>
655
+ </choose>
656
+ </layout>
657
+ </citation>
658
+ <bibliography
659
+ entry-spacing="0"
660
+ et-al-min="11"
661
+ et-al-use-first="7"
662
+ hanging-indent="true"
663
+ subsequent-author-substitute="---">
664
+ <sort>
665
+ <key macro="sort-key" />
666
+ <key variable="issued" />
667
+ </sort>
668
+ <layout suffix=".">
669
+ <choose>
670
+ <if type="legal_case">
671
+ <text macro="legal-case-first"/>
672
+ </if>
673
+ <else>
674
+ <group delimiter=". ">
675
+ <text macro="contributors" />
676
+ <text macro="title" />
677
+ <text macro="description" />
678
+ <text macro="secondary-contributors" />
679
+ <group delimiter=", ">
680
+ <text macro="container-title" />
681
+ <text macro="container-contributors" />
682
+ <text macro="locators-chapter" />
683
+ </group>
684
+ </group>
685
+ <text macro="locators" />
686
+ <text macro="collection-title" prefix=". " />
687
+ <text macro="issue" />
688
+ <text macro="locators-newspaper" prefix=", " />
689
+ <text macro="locators-journal" />
690
+ <text macro="access" prefix=". " />
691
+ </else>
692
+ </choose>
693
+ </layout>
694
+ </bibliography>
695
+ </style>