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,446 @@
1
+ <style
2
+ xmlns="http://purl.org/net/xbiblio/csl"
3
+ class="note"
4
+ xml:lang="en">
5
+ <info>
6
+ <title>Chicago Manual of Style (Note with Bibliography)</title>
7
+ <id>http://www.zotero.org/styles/chicago-note-bibliography</id>
8
+ <link href="http://www.zotero.org/styles/chicago-note-bibliography" />
9
+ <link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation" />
10
+ <author>
11
+ <name>Julian Onions</name>
12
+ <email>julian.onions@gmail.com</email>
13
+ </author>
14
+ <contributor>
15
+ <name>Simon Kornblith</name>
16
+ <email>simon@simonster.com</email>
17
+ </contributor>
18
+ <contributor>
19
+ <name>Elena Razlogova</name>
20
+ <email>elena.razlogova@gmail.com</email>
21
+ </contributor>
22
+ <summary>Chicago format with short notes and full bibliography</summary>
23
+ <category term="generic-base" />
24
+ <category term="numeric" />
25
+ <updated />
26
+ </info>
27
+ <macro name="secondary-contributors">
28
+ <choose>
29
+ <if match="none" type="chapter">
30
+ <group delimiter=". ">
31
+ <choose>
32
+ <if variable="author">
33
+ <names delimiter=". " variable="editor">
34
+ <label form="verb" prefix=" " suffix=" " text-case="capitalize-first" />
35
+ <name and="text" delimiter=", " />
36
+ </names>
37
+ </if>
38
+ </choose>
39
+ <choose>
40
+ <if match="any" variable="author editor">
41
+ <names delimiter=". " variable="translator">
42
+ <label form="verb" prefix=" " suffix=" " text-case="capitalize-first" />
43
+ <name and="text" delimiter=", " />
44
+ </names>
45
+ </if>
46
+ </choose>
47
+ </group>
48
+ </if>
49
+ </choose>
50
+ </macro>
51
+ <macro name="container-contributors">
52
+ <choose>
53
+ <if type="chapter">
54
+ <group delimiter=", ">
55
+ <choose>
56
+ <if variable="author">
57
+ <names delimiter=", " variable="editor">
58
+ <label form="verb" suffix=" " text-case="lowercase" />
59
+ <name and="text" delimiter=", " />
60
+ </names>
61
+ </if>
62
+ </choose>
63
+ <choose>
64
+ <if match="any" variable="author editor">
65
+ <names delimiter=", " variable="translator">
66
+ <label form="verb" suffix=" " text-case="lowercase" />
67
+ <name and="text" delimiter=", " />
68
+ </names>
69
+ </if>
70
+ </choose>
71
+ </group>
72
+ </if>
73
+ </choose>
74
+ </macro>
75
+ <macro name="editor">
76
+ <names variable="editor">
77
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
78
+ <label form="short" prefix=", " suffix="." />
79
+ </names>
80
+ </macro>
81
+ <macro name="translator">
82
+ <names variable="translator">
83
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
84
+ <label form="verb-short" prefix=", " suffix="." />
85
+ </names>
86
+ </macro>
87
+ <macro name="recipient-note">
88
+ <names delimiter=", " variable="recipient">
89
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
90
+ <name and="text" delimiter=", " />
91
+ </names>
92
+ </macro>
93
+ <macro name="recipient">
94
+ <choose>
95
+ <if type="personal_communication">
96
+ <choose>
97
+ <if variable="genre">
98
+ <text text-case="capitalize-first" variable="genre" />
99
+ </if>
100
+ <else>
101
+ <text term="letter" text-case="capitalize-first" />
102
+ </else>
103
+ </choose>
104
+ </if>
105
+ </choose>
106
+ <text macro="recipient-note" prefix=" " />
107
+ </macro>
108
+ <macro name="contributors">
109
+ <names variable="author">
110
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="first" sort-separator=", " />
111
+ <substitute>
112
+ <text macro="editor" />
113
+ <text macro="translator" />
114
+ </substitute>
115
+ </names>
116
+ <text macro="recipient" prefix=". " />
117
+ </macro>
118
+ <macro name="recipient-short">
119
+ <names variable="recipient">
120
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
121
+ <name and="text" delimiter=", " form="short" />
122
+ </names>
123
+ </macro>
124
+ <macro name="contributors-short">
125
+ <names variable="author">
126
+ <name and="text" delimiter=", " form="short" />
127
+ <substitute>
128
+ <names variable="editor" />
129
+ <names variable="translator" />
130
+ </substitute>
131
+ </names>
132
+ <text macro="recipient-short" />
133
+ </macro>
134
+ <macro name="contributors-sort">
135
+ <names variable="author">
136
+ <name and="text" delimiter=", " delimiter-precedes-last="always" name-as-sort-order="all" sort-separator=", " />
137
+ <label form="verb-short" prefix=", " suffix="." />
138
+ <substitute>
139
+ <names variable="editor" />
140
+ <names variable="translator" />
141
+ </substitute>
142
+ </names>
143
+ </macro>
144
+ <macro name="interviewer">
145
+ <names delimiter=", " variable="interviewer">
146
+ <label form="verb" prefix=" " suffix=" " text-case="capitalize-first" />
147
+ <name and="text" delimiter=", " />
148
+ </names>
149
+ </macro>
150
+ <macro name="title">
151
+ <choose>
152
+ <if match="none" variable="title">
153
+ <choose>
154
+ <if match="none" type="personal_communication">
155
+ <text text-case="capitalize-first" variable="genre" />
156
+ </if>
157
+ </choose>
158
+ </if>
159
+ <else-if type="book">
160
+ <text font-style="italic" variable="title" />
161
+ </else-if>
162
+ <else>
163
+ <text quotes="true" variable="title" />
164
+ </else>
165
+ </choose>
166
+ </macro>
167
+ <macro name="title-short">
168
+ <choose>
169
+ <if match="none" variable="title">
170
+ <choose>
171
+ <if type="interview">
172
+ <text term="interview" text-case="lowercase" />
173
+ </if>
174
+ <else-if match="any" type="manuscript speech">
175
+ <text form="short" variable="genre" />
176
+ </else-if>
177
+ <else-if type="personal_communication">
178
+ <text macro="issued" />
179
+ </else-if>
180
+ </choose>
181
+ </if>
182
+ <else-if type="book">
183
+ <text font-style="italic" form="short" variable="title" />
184
+ </else-if>
185
+ <else>
186
+ <text form="short" quotes="true" variable="title" />
187
+ </else>
188
+ </choose>
189
+ </macro>
190
+ <macro name="description">
191
+ <group delimiter=", ">
192
+ <group delimiter=". ">
193
+ <text macro="interviewer" />
194
+ <text text-case="capitalize-first" variable="medium" />
195
+ </group>
196
+ <choose>
197
+ <if match="none" variable="title"> </if>
198
+ <else-if match="any" type="thesis speech"> </else-if>
199
+ <else>
200
+ <text text-case="capitalize-first" variable="genre" />
201
+ </else>
202
+ </choose>
203
+ </group>
204
+ </macro>
205
+ <macro name="container-title">
206
+ <choose>
207
+ <if type="chapter">
208
+ <text suffix=" " term="in" text-case="capitalize-first" />
209
+ </if>
210
+ </choose>
211
+ <text font-style="italic" variable="container-title" />
212
+ </macro>
213
+ <macro name="edition">
214
+ <choose>
215
+ <if match="any" type="book chapter">
216
+ <choose>
217
+ <if is-numeric="edition">
218
+ <group delimiter=" ">
219
+ <number form="ordinal" variable="edition" />
220
+ <text form="short" suffix="." term="edition" />
221
+ </group>
222
+ </if>
223
+ <else>
224
+ <text suffix="." text-case="capitalize-first" variable="edition" />
225
+ </else>
226
+ </choose>
227
+ </if>
228
+ </choose>
229
+ </macro>
230
+ <macro name="collection-title">
231
+ <text variable="collection-title" />
232
+ <text prefix=" " variable="collection-number" />
233
+ </macro>
234
+ <macro name="locators">
235
+ <choose>
236
+ <if type="article-journal">
237
+ <text prefix=" " variable="volume" />
238
+ <text prefix=", no. " variable="issue" />
239
+ </if>
240
+ <else-if type="book">
241
+ <group delimiter=". " prefix=". ">
242
+ <group>
243
+ <text form="short" suffix=". " term="volume" text-case="capitalize-first" />
244
+ <number form="numeric" variable="volume" />
245
+ </group>
246
+ <group>
247
+ <number form="numeric" variable="number-of-volumes" />
248
+ <text form="short" plural="true" prefix=" " suffix="." term="volume" />
249
+ </group>
250
+ <text macro="edition" />
251
+ </group>
252
+ </else-if>
253
+ </choose>
254
+ </macro>
255
+ <macro name="locators-newspaper">
256
+ <choose>
257
+ <if type="article-newspaper">
258
+ <group delimiter=", ">
259
+ <group>
260
+ <text suffix=" " variable="edition" />
261
+ <text prefix=" " term="edition" />
262
+ </group>
263
+ <group>
264
+ <text form="short" suffix=". " term="section" />
265
+ <text variable="section" />
266
+ </group>
267
+ </group>
268
+ </if>
269
+ </choose>
270
+ </macro>
271
+ <macro name="event">
272
+ <group>
273
+ <text suffix=" " term="presented at" />
274
+ <text variable="event" />
275
+ </group>
276
+ </macro>
277
+ <macro name="publisher">
278
+ <group delimiter=": ">
279
+ <text variable="publisher-place" />
280
+ <text variable="publisher" />
281
+ </group>
282
+ </macro>
283
+ <macro name="issued">
284
+ <choose>
285
+ <if match="any" type="graphic report">
286
+ <date variable="issued">
287
+ <date-part name="month" suffix=" " />
288
+ <date-part name="day" suffix=", " />
289
+ <date-part name="year" />
290
+ </date>
291
+ </if>
292
+ <else-if match="any" type="book chapter thesis">
293
+ <date variable="issued">
294
+ <date-part name="year" />
295
+ </date>
296
+ </else-if>
297
+ <else>
298
+ <date variable="issued">
299
+ <date-part name="month" suffix=" " />
300
+ <date-part name="day" suffix=", " />
301
+ <date-part name="year" />
302
+ </date>
303
+ </else>
304
+ </choose>
305
+ </macro>
306
+ <macro name="pages-chapter">
307
+ <choose>
308
+ <if type="chapter">
309
+ <text suffix=":" variable="volume" />
310
+ <text variable="page" />
311
+ </if>
312
+ </choose>
313
+ </macro>
314
+ <macro name="pages-article">
315
+ <choose>
316
+ <if type="article-journal">
317
+ <text prefix=": " variable="page" />
318
+ </if>
319
+ </choose>
320
+ </macro>
321
+ <macro name="point-locators-subsequent">
322
+ <group>
323
+ <choose>
324
+ <if locator="page" match="none">
325
+ <label form="short" strip-periods="false" suffix=" " variable="locator" />
326
+ </if>
327
+ </choose>
328
+ <text variable="locator" />
329
+ </group>
330
+ </macro>
331
+ <macro name="archive">
332
+ <group delimiter=". ">
333
+ <text text-case="capitalize-first" variable="archive_location" />
334
+ <text variable="archive" />
335
+ <text variable="archive-place" />
336
+ </group>
337
+ </macro>
338
+ <macro name="issue">
339
+ <choose>
340
+ <if type="article-journal">
341
+ <text macro="issued" prefix=" (" suffix=")" />
342
+ </if>
343
+ <else-if type="speech">
344
+ <choose>
345
+ <if match="none" variable="title"> </if>
346
+ <else>
347
+ <text prefix=". " text-case="capitalize-first" variable="genre" />
348
+ </else>
349
+ </choose>
350
+ <text macro="event" prefix=" " />
351
+ <text prefix=", " variable="event-place" />
352
+ <text macro="issued" prefix=", " />
353
+ </else-if>
354
+ <else-if match="any" variable="publisher-place publisher">
355
+ <group delimiter=", " prefix=". ">
356
+ <choose>
357
+ <if type="thesis">
358
+ <text text-case="capitalize-first" variable="genre" />
359
+ </if>
360
+ </choose>
361
+ <text macro="publisher" />
362
+ <text macro="issued" />
363
+ </group>
364
+ </else-if>
365
+ <else>
366
+ <text macro="issued" prefix=", " />
367
+ </else>
368
+ </choose>
369
+ </macro>
370
+ <macro name="access">
371
+ <group delimiter=". ">
372
+ <choose>
373
+ <if match="any" type="graphic report">
374
+ <text macro="archive" />
375
+ </if>
376
+ <else-if match="none" type="book thesis chapter article-journal article-newspaper article-magazine">
377
+ <text macro="archive" />
378
+ </else-if>
379
+ </choose>
380
+ <text prefix="doi:" variable="DOI" />
381
+ <text variable="URL" />
382
+ </group>
383
+ </macro>
384
+ <macro name="sort-key">
385
+ <text macro="contributors-sort" suffix=" " />
386
+ <text suffix=" " variable="title" />
387
+ <text variable="genre" />
388
+ </macro>
389
+ <citation
390
+ disambiguate-add-names="true"
391
+ et-al-min="4"
392
+ et-al-subsequent-min="4"
393
+ et-al-subsequent-use-first="1"
394
+ et-al-use-first="1">
395
+ <layout delimiter="; " prefix="" suffix=".">
396
+ <choose>
397
+ <if position="ibid-with-locator">
398
+ <group delimiter=", ">
399
+ <text suffix="." term="ibid" text-case="capitalize-first" />
400
+ <text macro="point-locators-subsequent" />
401
+ </group>
402
+ </if>
403
+ <else-if position="ibid">
404
+ <text suffix="." term="ibid" text-case="capitalize-first" />
405
+ </else-if>
406
+ <else>
407
+ <group delimiter=", ">
408
+ <text macro="contributors-short" />
409
+ <text macro="title-short" />
410
+ <text macro="point-locators-subsequent" />
411
+ </group>
412
+ </else>
413
+ </choose>
414
+ </layout>
415
+ </citation>
416
+ <bibliography
417
+ entry-spacing="0"
418
+ et-al-min="11"
419
+ et-al-use-first="7"
420
+ hanging-indent="true"
421
+ subsequent-author-substitute="---">
422
+ <sort>
423
+ <key macro="sort-key" />
424
+ <key variable="issued" />
425
+ </sort>
426
+ <layout suffix=".">
427
+ <group delimiter=". ">
428
+ <text macro="contributors" />
429
+ <text macro="title" />
430
+ <text macro="description" />
431
+ <text macro="secondary-contributors" />
432
+ <group delimiter=", ">
433
+ <text macro="container-title" />
434
+ <text macro="container-contributors" />
435
+ <text macro="pages-chapter" />
436
+ </group>
437
+ </group>
438
+ <text macro="locators" />
439
+ <text macro="collection-title" prefix=". " />
440
+ <text macro="issue" />
441
+ <text macro="locators-newspaper" prefix=", " />
442
+ <text macro="pages-article" />
443
+ <text macro="access" prefix=". " />
444
+ </layout>
445
+ </bibliography>
446
+ </style>
@@ -0,0 +1,388 @@
1
+ <style
2
+ xmlns="http://purl.org/net/xbiblio/csl"
3
+ class="note"
4
+ xml:lang="en">
5
+ <info>
6
+ <title>Chicago Manual of Style (Note without Bibliography)</title>
7
+ <id>http://www.zotero.org/styles/chicago-note</id>
8
+ <link href="http://www.zotero.org/styles/chicago-note" />
9
+ <link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation" />
10
+ <author>
11
+ <name>Julian Onions</name>
12
+ <email>julian.onions@gmail.com</email>
13
+ </author>
14
+ <contributor>
15
+ <name>Simon Kornblith</name>
16
+ <email>simon@simonster.com</email>
17
+ </contributor>
18
+ <contributor>
19
+ <name>Elena Razlogova</name>
20
+ <email>elena.razlogova@gmail.com</email>
21
+ </contributor>
22
+ <summary>Chicago format with full notes and no bibliography</summary>
23
+ <category term="generic-base" />
24
+ <category term="note" />
25
+ <updated />
26
+ </info>
27
+ <macro name="editor-translator">
28
+ <group delimiter=", ">
29
+ <choose>
30
+ <if variable="author">
31
+ <names delimiter=", " variable="editor">
32
+ <label form="verb-short" suffix=". " text-case="lowercase" />
33
+ <name and="text" delimiter=", " />
34
+ </names>
35
+ </if>
36
+ </choose>
37
+ <choose>
38
+ <if match="any" variable="author editor">
39
+ <names delimiter=", " variable="translator">
40
+ <label form="verb-short" suffix=". " text-case="lowercase" />
41
+ <name and="text" delimiter=", " />
42
+ </names>
43
+ </if>
44
+ </choose>
45
+ </group>
46
+ </macro>
47
+ <macro name="secondary-contributors-note">
48
+ <choose>
49
+ <if match="none" type="chapter">
50
+ <text macro="editor-translator" />
51
+ </if>
52
+ </choose>
53
+ </macro>
54
+ <macro name="container-contributors-note">
55
+ <choose>
56
+ <if type="chapter">
57
+ <text macro="editor-translator" />
58
+ </if>
59
+ </choose>
60
+ </macro>
61
+ <macro name="editor-note">
62
+ <names variable="editor">
63
+ <name and="text" delimiter=", " sort-separator=", " />
64
+ <label form="short" prefix=", " suffix="." />
65
+ </names>
66
+ </macro>
67
+ <macro name="translator-note">
68
+ <names variable="translator">
69
+ <name and="text" delimiter=", " sort-separator=", " />
70
+ <label form="verb-short" prefix=", " suffix="." />
71
+ </names>
72
+ </macro>
73
+ <macro name="recipient-note">
74
+ <names delimiter=", " variable="recipient">
75
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
76
+ <name and="text" delimiter=", " />
77
+ </names>
78
+ </macro>
79
+ <macro name="contributors-note">
80
+ <names variable="author">
81
+ <name and="text" delimiter=", " sort-separator=", " />
82
+ <substitute>
83
+ <text macro="editor-note" />
84
+ <text macro="translator-note" />
85
+ </substitute>
86
+ </names>
87
+ <text macro="recipient-note" />
88
+ </macro>
89
+ <macro name="recipient-short">
90
+ <names variable="recipient">
91
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
92
+ <name and="text" delimiter=", " form="short" />
93
+ </names>
94
+ </macro>
95
+ <macro name="contributors-short">
96
+ <names variable="author">
97
+ <name and="text" delimiter=", " form="short" />
98
+ <substitute>
99
+ <names variable="editor" />
100
+ <names variable="translator" />
101
+ </substitute>
102
+ </names>
103
+ <text macro="recipient-short" />
104
+ </macro>
105
+ <macro name="interviewer-note">
106
+ <names delimiter=", " variable="interviewer">
107
+ <label form="verb" prefix=" " suffix=" " text-case="lowercase" />
108
+ <name and="text" delimiter=", " />
109
+ </names>
110
+ </macro>
111
+ <macro name="title-note">
112
+ <choose>
113
+ <if match="none" variable="title">
114
+ <text variable="genre" />
115
+ </if>
116
+ <else-if type="book">
117
+ <text font-style="italic" variable="title" />
118
+ </else-if>
119
+ <else>
120
+ <text quotes="true" variable="title" />
121
+ </else>
122
+ </choose>
123
+ </macro>
124
+ <macro name="title-short">
125
+ <choose>
126
+ <if match="none" variable="title">
127
+ <choose>
128
+ <if type="interview">
129
+ <text term="interview" text-case="lowercase" />
130
+ </if>
131
+ <else-if match="any" type="manuscript speech">
132
+ <text form="short" variable="genre" />
133
+ </else-if>
134
+ <else-if type="personal_communication">
135
+ <text macro="issued" />
136
+ </else-if>
137
+ </choose>
138
+ </if>
139
+ <else-if type="book">
140
+ <text font-style="italic" form="short" variable="title" />
141
+ </else-if>
142
+ <else>
143
+ <text form="short" quotes="true" variable="title" />
144
+ </else>
145
+ </choose>
146
+ </macro>
147
+ <macro name="description-note">
148
+ <group delimiter=", ">
149
+ <text macro="interviewer-note" />
150
+ <text variable="medium" />
151
+ <choose>
152
+ <if match="none" variable="title"> </if>
153
+ <else-if match="any" type="thesis speech"> </else-if>
154
+ <else>
155
+ <text variable="genre" />
156
+ </else>
157
+ </choose>
158
+ </group>
159
+ </macro>
160
+ <macro name="container-title-note">
161
+ <choose>
162
+ <if type="chapter">
163
+ <text suffix=" " term="in" text-case="lowercase" />
164
+ </if>
165
+ </choose>
166
+ <text font-style="italic" variable="container-title" />
167
+ </macro>
168
+ <macro name="edition-note">
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="collection-title">
186
+ <text variable="collection-title" />
187
+ <text prefix=" " variable="collection-number" />
188
+ </macro>
189
+ <macro name="locators-note">
190
+ <choose>
191
+ <if type="article-journal">
192
+ <text prefix=" " variable="volume" />
193
+ <text prefix=", no. " variable="issue" />
194
+ </if>
195
+ <else-if match="any" type="book chapter">
196
+ <group delimiter=", " prefix=", ">
197
+ <group>
198
+ <text form="short" suffix=". " term="volume" />
199
+ <number form="numeric" variable="volume" />
200
+ </group>
201
+ <choose>
202
+ <if match="none" variable="locator">
203
+ <group>
204
+ <number form="numeric" variable="number-of-volumes" />
205
+ <text form="short" plural="true" prefix=" " suffix="." term="volume" />
206
+ </group>
207
+ </if>
208
+ </choose>
209
+ <text macro="edition-note" />
210
+ </group>
211
+ </else-if>
212
+ </choose>
213
+ </macro>
214
+ <macro name="locators-newspaper">
215
+ <choose>
216
+ <if type="article-newspaper">
217
+ <group delimiter=", ">
218
+ <group>
219
+ <text suffix=" " variable="edition" />
220
+ <text prefix=" " term="edition" />
221
+ </group>
222
+ <group>
223
+ <text form="short" suffix=". " term="section" />
224
+ <text variable="section" />
225
+ </group>
226
+ </group>
227
+ </if>
228
+ </choose>
229
+ </macro>
230
+ <macro name="event">
231
+ <group>
232
+ <text suffix=" " term="presented at" />
233
+ <text variable="event" />
234
+ </group>
235
+ </macro>
236
+ <macro name="publisher">
237
+ <group delimiter=": ">
238
+ <text variable="publisher-place" />
239
+ <text variable="publisher" />
240
+ </group>
241
+ </macro>
242
+ <macro name="issued">
243
+ <choose>
244
+ <if match="any" type="graphic report">
245
+ <date variable="issued">
246
+ <date-part name="month" suffix=" " />
247
+ <date-part name="day" suffix=", " />
248
+ <date-part name="year" />
249
+ </date>
250
+ </if>
251
+ <else-if match="any" type="book chapter thesis">
252
+ <date variable="issued">
253
+ <date-part name="year" />
254
+ </date>
255
+ </else-if>
256
+ <else>
257
+ <date variable="issued">
258
+ <date-part name="month" suffix=" " />
259
+ <date-part name="day" suffix=", " />
260
+ <date-part name="year" />
261
+ </date>
262
+ </else>
263
+ </choose>
264
+ </macro>
265
+ <macro name="pages">
266
+ <choose>
267
+ <if type="article-journal">
268
+ <text prefix=": " variable="page" />
269
+ </if>
270
+ <else-if type="chapter">
271
+ <text prefix=", " variable="page" />
272
+ </else-if>
273
+ </choose>
274
+ </macro>
275
+ <macro name="point-locators-subsequent">
276
+ <group>
277
+ <choose>
278
+ <if locator="page" match="none">
279
+ <label form="short" strip-periods="false" suffix=" " variable="locator" />
280
+ </if>
281
+ </choose>
282
+ <text variable="locator" />
283
+ </group>
284
+ </macro>
285
+ <macro name="point-locators">
286
+ <choose>
287
+ <if match="none" variable="locator">
288
+ <text macro="pages" />
289
+ </if>
290
+ <else-if type="article-journal">
291
+ <text prefix=": " variable="locator" />
292
+ </else-if>
293
+ <else>
294
+ <text macro="point-locators-subsequent" prefix=", " />
295
+ </else>
296
+ </choose>
297
+ </macro>
298
+ <macro name="archive-note">
299
+ <group delimiter=", ">
300
+ <text variable="archive_location" />
301
+ <text variable="archive" />
302
+ <text variable="archive-place" />
303
+ </group>
304
+ </macro>
305
+ <macro name="issue-note">
306
+ <choose>
307
+ <if type="article-journal">
308
+ <text macro="issued" prefix=" (" suffix=")" />
309
+ </if>
310
+ <else-if match="any" variable="publisher-place publisher">
311
+ <group delimiter=", " prefix=" (" suffix=")">
312
+ <group delimiter=" ">
313
+ <choose>
314
+ <if match="none" variable="title"> </if>
315
+ <else-if match="any" type="thesis speech">
316
+ <text variable="genre" />
317
+ </else-if>
318
+ </choose>
319
+ <text macro="event" />
320
+ </group>
321
+ <text macro="publisher" />
322
+ <text macro="issued" />
323
+ </group>
324
+ </else-if>
325
+ <else>
326
+ <text macro="issued" prefix=", " />
327
+ </else>
328
+ </choose>
329
+ </macro>
330
+ <macro name="access-note">
331
+ <group delimiter=", ">
332
+ <choose>
333
+ <if match="any" type="graphic report">
334
+ <text macro="archive-note" />
335
+ </if>
336
+ <else-if match="none" type="book thesis chapter article-journal article-newspaper article-magazine">
337
+ <text macro="archive-note" />
338
+ </else-if>
339
+ </choose>
340
+ <text prefix="doi:" variable="DOI" />
341
+ <text variable="URL" />
342
+ </group>
343
+ </macro>
344
+ <citation
345
+ disambiguate-add-givenname="true"
346
+ disambiguate-add-names="true"
347
+ et-al-min="4"
348
+ et-al-subsequent-min="4"
349
+ et-al-subsequent-use-first="1"
350
+ et-al-use-first="1">
351
+ <layout delimiter="; " prefix="" suffix=".">
352
+ <choose>
353
+ <if position="ibid-with-locator">
354
+ <group delimiter=", ">
355
+ <text suffix="." term="ibid" text-case="capitalize-first" />
356
+ <text macro="point-locators-subsequent" />
357
+ </group>
358
+ </if>
359
+ <else-if position="ibid">
360
+ <text suffix="." term="ibid" text-case="capitalize-first" />
361
+ </else-if>
362
+ <else-if position="subsequent">
363
+ <group delimiter=", ">
364
+ <text macro="contributors-short" />
365
+ <text macro="title-short" />
366
+ <text macro="point-locators-subsequent" />
367
+ </group>
368
+ </else-if>
369
+ <else>
370
+ <group delimiter=", ">
371
+ <text macro="contributors-note" />
372
+ <text macro="title-note" />
373
+ <text macro="description-note" />
374
+ <text macro="secondary-contributors-note" />
375
+ <text macro="container-title-note" />
376
+ <text macro="container-contributors-note" />
377
+ </group>
378
+ <text macro="locators-note" />
379
+ <text macro="collection-title" prefix=", " />
380
+ <text macro="issue-note" />
381
+ <text macro="locators-newspaper" prefix=", " />
382
+ <text macro="point-locators" />
383
+ <text macro="access-note" prefix=", " />
384
+ </else>
385
+ </choose>
386
+ </layout>
387
+ </citation>
388
+ </style>