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,928 @@
1
+ <style
2
+ xmlns="http://purl.org/net/xbiblio/csl"
3
+ class="note"
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 + Bluebook)</title>
8
+ <id>http://www.zotero.org/styles/chicago-fullnote-bibliography-bb</id>
9
+ <link rel="self" href="http://www.zotero.org/styles/chicago-fullnote-bibliography-bb" />
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"> </if>
272
+ <else-if match="any" type="thesis speech"> </else-if>
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"> </if>
287
+ <else-if match="any" type="thesis speech"> </else-if>
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"> </if>
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
+ <!-- ### BLUEBOOK AUTHOR ### -->
597
+ <macro name="bb-author">
598
+ <names variable="author">
599
+ <name/>
600
+ </names>
601
+ </macro>
602
+ <macro name="bb-author-short">
603
+ <names variable="author">
604
+ <name form="short"/>
605
+ </names>
606
+ </macro>
607
+
608
+ <!-- ### BLUEBOOK ISSUED ### -->
609
+ <macro name="bb-issued">
610
+ <group prefix="(" suffix=")">
611
+ <date variable="issued" form="text" date-parts="year"/>
612
+ </group>
613
+ </macro>
614
+
615
+ <!-- ### ID BACKREFERENCES ### -->
616
+ <macro name="bb-ibid">
617
+ <choose>
618
+ <if position="ibid-with-locator">
619
+ <group delimiter=" ">
620
+ <choose>
621
+ <if locator="page">
622
+ <group delimiter=" ">
623
+ <text term="ibid" font-style="italic"/>
624
+ <text value="at"/>
625
+ </group>
626
+ </if>
627
+ <else>
628
+ <text term="ibid" font-style="italic" suffix=","/>
629
+ <label form="short" variable="locator"/>
630
+ </else>
631
+ </choose>
632
+ <text variable="locator"/>
633
+ </group>
634
+ </if>
635
+ <else-if position="ibid">
636
+ <text term="ibid" font-style="italic"/>
637
+ </else-if>
638
+ </choose>
639
+ </macro>
640
+
641
+ <!-- ### POINT LOCATORS -->
642
+ <macro name="bb-point-locator-comma">
643
+ <group delimiter=" ">
644
+ <choose>
645
+ <if variable="number page" position="ibid" match="any">
646
+ <text value=","/>
647
+ </if>
648
+ </choose>
649
+ <choose>
650
+ <if locator="page" match="none">
651
+ <label form="symbol" variable="locator" suffix=" "/>
652
+ </if>
653
+ </choose>
654
+ <text variable="locator"/>
655
+ </group>
656
+ </macro>
657
+ <macro name="bb-point-locator-base">
658
+ <choose>
659
+ <if locator="page" match="none">
660
+ <label form="symbol" variable="locator" suffix=" "/>
661
+ </if>
662
+ </choose>
663
+ <text variable="locator"/>
664
+ </macro>
665
+
666
+ <!-- ### LEGAL CASE ### -->
667
+ <macro name="bb-legal-case">
668
+ <choose>
669
+ <if position="first">
670
+ <text macro="bb-legal-case-first"/>
671
+ </if>
672
+ <else-if position="ibid">
673
+ <text macro="bb-ibid"/>
674
+ </else-if>
675
+ <else-if position="near-note">
676
+ <text macro="bb-legal-case-subsequent"/>
677
+ </else-if>
678
+ <else>
679
+ <text macro="bb-legal-case-first"/>
680
+ </else>
681
+ </choose>
682
+ </macro>
683
+ <macro name="bb-legal-case-first">
684
+ <choose>
685
+ <if variable="title">
686
+ <!-- Common law cases -->
687
+ <group delimiter=", ">
688
+ <text variable="title"/>
689
+ <group delimiter=" ">
690
+ <choose>
691
+ <if variable="issue">
692
+ <text variable="volume" prefix="[" suffix="]"/>
693
+ <text variable="issue"/>
694
+ </if>
695
+ <else>
696
+ <text variable="volume"/>
697
+ </else>
698
+ </choose>
699
+ <text variable="container-title" form="short"/>
700
+ <group>
701
+ <text variable="page"/>
702
+ <text macro="bb-point-locator-comma"/>
703
+ </group>
704
+ <group prefix="(" suffix=")" delimiter=" ">
705
+ <text variable="authority" form="short"/>
706
+ <date variable="issued">
707
+ <date-part name="year"/>
708
+ </date>
709
+ </group>
710
+ </group>
711
+ </group>
712
+ </if>
713
+ <else>
714
+ <!-- Civil law cases -->
715
+ <group delimiter=", ">
716
+ <text variable="authority"/>
717
+ <text variable="title" form="short"/>
718
+ <date variable="issued" form="text"/>
719
+ <text variable="container-title" font-style="italic" strip-periods="true"/>
720
+ <text variable="volume"/>
721
+ <group delimiter=" ">
722
+ <text variable="section"/>
723
+ <label variable="page" form="short"/>
724
+ <text variable="page"/>
725
+ </group>
726
+ <text variable="number"/>
727
+ <group delimiter=" ">
728
+ <text variable="genre"/>
729
+ <names variable="author">
730
+ <name initialize-with="." font-variant="small-caps"/>
731
+ </names>
732
+ </group>
733
+ </group>
734
+ </else>
735
+ </choose>
736
+ </macro>
737
+ <macro name="bb-legal-case-subsequent">
738
+ <group delimiter=", ">
739
+ <text variable="title" form="short"/>
740
+ <group delimiter=" ">
741
+ <choose>
742
+ <if variable="issue">
743
+ <text variable="volume" prefix="[" suffix="]"/>
744
+ <text variable="issue"/>
745
+ </if>
746
+ <else>
747
+ <text variable="volume"/>
748
+ </else>
749
+ </choose>
750
+ <text variable="container-title" form="short"/>
751
+ <choose>
752
+ <if variable="locator">
753
+ <text macro="bb-point-locator-base"/>
754
+ </if>
755
+ <else>
756
+ <text variable="page"/>
757
+ </else>
758
+ </choose>
759
+ </group>
760
+ </group>
761
+ </macro>
762
+
763
+ <!-- ### LEGISLATION ### -->
764
+ <macro name="bb-legislation">
765
+ <choose>
766
+ <if position="first">
767
+ <text macro="bb-legislation-first"/>
768
+ </if>
769
+ <else-if position="near-note">
770
+ <text macro="bb-legislation-subsequent"/>
771
+ </else-if>
772
+ <else>
773
+ <text macro="bb-legislation-first"/>
774
+ </else>
775
+ </choose>
776
+ </macro>
777
+ <macro name="bb-legislation-first">
778
+ <choose>
779
+ <if variable="container-title">
780
+ <text macro="bb-statute-first"/>
781
+ </if>
782
+ <else>
783
+ <text macro="bb-code-first"/>
784
+ </else>
785
+ </choose>
786
+ </macro>
787
+ <macro name="bb-legislation-subsequent">
788
+ <choose>
789
+ <if variable="container-title">
790
+ <text macro="bb-statute-subsequent"/>
791
+ </if>
792
+ <else>
793
+ <text macro="bb-code-subsequent"/>
794
+ </else>
795
+ </choose>
796
+ </macro>
797
+ <macro name="bb-statute-first">
798
+ <group delimiter=", ">
799
+ <text variable="title"/>
800
+ <text macro="bb-statute-subsequent"/>
801
+ </group>
802
+ </macro>
803
+ <macro name="bb-statute-subsequent">
804
+ <group delimiter="">
805
+ <group delimiter=" ">
806
+ <text variable="volume"/>
807
+ <text variable="container-title"/>
808
+ <text variable="number"/>
809
+ <text variable="page"/>
810
+ <choose>
811
+ <if is-numeric="section">
812
+ <text term="section" form="symbol"/>
813
+ <text variable="section"/>
814
+ </if>
815
+ </choose>
816
+ </group>
817
+ <text macro="bb-point-locator-comma"/>
818
+ <date prefix=" (" variable="issued" date-parts="year" form="text" suffix=")"/>
819
+ </group>
820
+ </macro>
821
+ <macro name="bb-code-first">
822
+ <group delimiter=" ">
823
+ <text variable="title" font-variant="small-caps"/>
824
+ <group delimiter=" ">
825
+ <label variable="locator" form="symbol"/>
826
+ <text variable="locator"/>
827
+ </group>
828
+ </group>
829
+ </macro>
830
+ <macro name="bb-code-subsequent">
831
+ <group delimiter=" ">
832
+ <text variable="title" form="short" font-variant="small-caps"/>
833
+ <group delimiter=" ">
834
+ <label variable="locator" form="symbol"/>
835
+ <text variable="locator"/>
836
+ </group>
837
+ </group>
838
+ </macro>
839
+ <citation
840
+ disambiguate-add-names="true"
841
+ et-al-min="4"
842
+ et-al-subsequent-min="4"
843
+ et-al-subsequent-use-first="1"
844
+ et-al-use-first="1">
845
+ <layout delimiter="; " prefix="" suffix=".">
846
+ <choose>
847
+ <if type="legal_case">
848
+ <text macro="bb-legal-case"/>
849
+ </if>
850
+ <else-if type="legislation">
851
+ <text macro="bb-legislation"/>
852
+ </else-if>
853
+ <else-if position="ibid-with-locator">
854
+ <group delimiter=", ">
855
+ <text suffix="." term="ibid" text-case="capitalize-first" />
856
+ <text macro="point-locators-subsequent" />
857
+ </group>
858
+ </else-if>
859
+ <else-if position="ibid">
860
+ <text suffix="." term="ibid" text-case="capitalize-first" />
861
+ </else-if>
862
+ <else-if position="subsequent">
863
+ <group delimiter=", ">
864
+ <text macro="contributors-short" />
865
+ <text macro="title-short" />
866
+ <text macro="point-locators-subsequent" />
867
+ </group>
868
+ </else-if>
869
+ <else>
870
+ <group delimiter=", ">
871
+ <text macro="contributors-note" />
872
+ <text macro="title-note" />
873
+ <text macro="description-note" />
874
+ <text macro="secondary-contributors-note" />
875
+ <text macro="container-title-note" />
876
+ <text macro="container-contributors-note" />
877
+ </group>
878
+ <text macro="locators-note" />
879
+ <text macro="collection-title" prefix=", " />
880
+ <text macro="issue-note" />
881
+ <text macro="locators-newspaper" prefix=", " />
882
+ <text macro="point-locators" />
883
+ <text macro="access-note" prefix=", " />
884
+ </else>
885
+ </choose>
886
+ </layout>
887
+ </citation>
888
+ <bibliography
889
+ entry-spacing="0"
890
+ et-al-min="11"
891
+ et-al-use-first="7"
892
+ hanging-indent="true"
893
+ subsequent-author-substitute="---">
894
+ <sort>
895
+ <key macro="sort-key" />
896
+ <key variable="issued" />
897
+ </sort>
898
+ <layout suffix=".">
899
+ <choose>
900
+ <if type="legal_case">
901
+ <text macro="bb-legal-case-first"/>
902
+ </if>
903
+ <else-if type="legislation">
904
+ <text macro="bb-legislation-first"/>
905
+ </else-if>
906
+ <else>
907
+ <group delimiter=". ">
908
+ <text macro="contributors" />
909
+ <text macro="title" />
910
+ <text macro="description" />
911
+ <text macro="secondary-contributors" />
912
+ <group delimiter=", ">
913
+ <text macro="container-title" />
914
+ <text macro="container-contributors" />
915
+ <text macro="locators-chapter" />
916
+ </group>
917
+ </group>
918
+ <text macro="locators" />
919
+ <text macro="collection-title" prefix=". " />
920
+ <text macro="issue" />
921
+ <text macro="locators-newspaper" prefix=", " />
922
+ <text macro="locators-journal" />
923
+ <text macro="access" prefix=". " />
924
+ </else>
925
+ </choose>
926
+ </layout>
927
+ </bibliography>
928
+ </style>