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,190 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0">
3
+ <info>
4
+ <title>Harvard Reference format 1 (Author-Date) [institutions experimental]</title>
5
+ <id>http://www.zotero.org/styles/harvard1instexp</id>
6
+ <link href="http://www.zotero.org/styles/harvard1instexp" rel="self"/>
7
+ <author>
8
+ <name>Julian Onions</name>
9
+ <email>julian.onions@gmail.com</email>
10
+ </author>
11
+ <category citation-format="author-date"/>
12
+ <category field="generic-base"/>
13
+ <updated/>
14
+ <summary>The Harvard author-date style</summary>
15
+ <link href="http://libweb.anglia.ac.uk/referencing/harvard.htm" rel="documentation"/>
16
+ <rights>This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/</rights>
17
+ </info>
18
+ <macro name="editor">
19
+ <names variable="editor" delimiter=", ">
20
+ <name and="symbol" initialize-with=". " delimiter=", "/>
21
+ <label form="short" prefix=", " text-case="lowercase" suffix="." strip-periods="true"/>
22
+ </names>
23
+ </macro>
24
+ <macro name="anon">
25
+ <text term="anonymous" form="short" text-case="capitalize-first" strip-periods="true"/>
26
+ </macro>
27
+ <macro name="author">
28
+ <names variable="author">
29
+ <name name-as-sort-order="all" and="symbol" sort-separator=", " initialize-with="." delimiter-precedes-last="never" delimiter=", "/>
30
+ <institution delimiter=", ">
31
+ <institution-part name="long" font-style="italic"/>
32
+ </institution>
33
+ <label form="short" prefix=" " suffix="." text-case="lowercase" strip-periods="true"/>
34
+ <substitute>
35
+ <names variable="editor"/>
36
+ <text macro="anon"/>
37
+ </substitute>
38
+ </names>
39
+ </macro>
40
+ <macro name="author-short">
41
+ <names variable="author">
42
+ <name form="short" and="symbol" delimiter=", " delimiter-precedes-last="never" initialize-with=". "/>
43
+ <institution delimiter=", " institution-parts="short">
44
+ <institution-part name="short" font-style="italic"/>
45
+ <institution-part name="long" font-style="italic"/>
46
+ </institution>
47
+ <substitute>
48
+ <names variable="editor"/>
49
+ <names variable="translator"/>
50
+ <text macro="anon"/>
51
+ </substitute>
52
+ </names>
53
+ </macro>
54
+ <macro name="access">
55
+ <group>
56
+ <text value="Available at:" suffix=" "/>
57
+ <text variable="URL"/>
58
+ <group prefix=" [" suffix="]">
59
+ <text term="accessed" text-case="capitalize-first" suffix=" "/>
60
+ <date variable="accessed">
61
+ <date-part name="month" suffix=" "/>
62
+ <date-part name="day" suffix=", "/>
63
+ <date-part name="year"/>
64
+ </date>
65
+ </group>
66
+ </group>
67
+ </macro>
68
+ <macro name="title">
69
+ <choose>
70
+ <if type="bill book graphic legal_case motion_picture report song thesis" match="any">
71
+ <text variable="title" font-style="italic"/>
72
+ </if>
73
+ <else>
74
+ <text variable="title"/>
75
+ </else>
76
+ </choose>
77
+ </macro>
78
+ <macro name="publisher">
79
+ <group delimiter=": ">
80
+ <text variable="publisher-place"/>
81
+ <text variable="publisher"/>
82
+ </group>
83
+ </macro>
84
+ <macro name="year-date">
85
+ <choose>
86
+ <if variable="issued">
87
+ <date variable="issued">
88
+ <date-part name="year"/>
89
+ </date>
90
+ </if>
91
+ <else>
92
+ <text term="no date" form="short"/>
93
+ </else>
94
+ </choose>
95
+ </macro>
96
+ <macro name="edition">
97
+ <choose>
98
+ <if is-numeric="edition">
99
+ <group delimiter=" ">
100
+ <number variable="edition" form="ordinal"/>
101
+ <text term="edition" form="short" suffix="." strip-periods="true"/>
102
+ </group>
103
+ </if>
104
+ <else>
105
+ <text variable="edition" suffix="."/>
106
+ </else>
107
+ </choose>
108
+ </macro>
109
+ <macro name="pages">
110
+ <group>
111
+ <label variable="page" form="short" suffix=" "/>
112
+ <text variable="page"/>
113
+ </group>
114
+ </macro>
115
+ <citation et-al-min="3" et-al-use-first="1" et-al-subsequent-min="3" et-al-subsequent-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true">
116
+ <layout prefix="(" suffix=")" delimiter="; ">
117
+ <group delimiter=", ">
118
+ <group delimiter=" ">
119
+ <text macro="author-short"/>
120
+ <text macro="year-date"/>
121
+ </group>
122
+ <group>
123
+ <label variable="locator" suffix="." form="short" strip-periods="true"/>
124
+ <text variable="locator"/>
125
+ </group>
126
+ </group>
127
+ </layout>
128
+ </citation>
129
+ <bibliography hanging-indent="true" et-al-min="4" et-al-use-first="1">
130
+ <sort>
131
+ <key macro="author"/>
132
+ <key variable="title"/>
133
+ </sort>
134
+ <layout>
135
+ <text macro="author" suffix=","/>
136
+ <date variable="issued" prefix=" " suffix=".">
137
+ <date-part name="year"/>
138
+ </date>
139
+ <choose>
140
+ <if type="bill book graphic legal_case motion_picture report song" match="any">
141
+ <group prefix=" " delimiter=" " suffix=",">
142
+ <text macro="title"/>
143
+ <text macro="edition"/>
144
+ <text macro="editor"/>
145
+ </group>
146
+ <text prefix=" " suffix="." macro="publisher"/>
147
+ </if>
148
+ <else-if type="chapter paper-conference" match="any">
149
+ <text macro="title" prefix=" " suffix="."/>
150
+ <group prefix=" " delimiter=" ">
151
+ <text term="in" text-case="capitalize-first"/>
152
+ <text macro="editor"/>
153
+ <text variable="container-title" font-style="italic" suffix="."/>
154
+ <text variable="collection-title" suffix="."/>
155
+ <text variable="event" suffix="."/>
156
+ <group suffix="." delimiter=", ">
157
+ <text macro="publisher" prefix=" "/>
158
+ <text macro="pages"/>
159
+ </group>
160
+ </group>
161
+ </else-if>
162
+ <else-if type="thesis">
163
+ <group prefix=" " suffix="." delimiter=". ">
164
+ <text macro="title"/>
165
+ <text variable="genre"/>
166
+ <text macro="publisher"/>
167
+ </group>
168
+ </else-if>
169
+ <else>
170
+ <group suffix=".">
171
+ <text macro="title" prefix=" "/>
172
+ <text macro="editor" prefix=" "/>
173
+ </group>
174
+ <group prefix=" " suffix=".">
175
+ <text variable="container-title" font-style="italic"/>
176
+ <group prefix=", ">
177
+ <text variable="volume"/>
178
+ <text variable="issue" prefix="(" suffix=")"/>
179
+ </group>
180
+ <group prefix=", ">
181
+ <label variable="page" suffix="." form="short" strip-periods="true"/>
182
+ <text variable="page"/>
183
+ </group>
184
+ </group>
185
+ </else>
186
+ </choose>
187
+ <text prefix=" " macro="access" suffix="."/>
188
+ </layout>
189
+ </bibliography>
190
+ </style>
@@ -0,0 +1,181 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0">
3
+ <info>
4
+ <title>Harvard Reference format 1 (Author-Date)</title>
5
+ <id>http://www.zotero.org/styles/harvard1</id>
6
+ <link href="http://www.zotero.org/styles/harvard1" rel="self"/>
7
+ <author>
8
+ <name>Julian Onions</name>
9
+ <email>julian.onions@gmail.com</email>
10
+ </author>
11
+ <category citation-format="author-date"/>
12
+ <category field="generic-base"/>
13
+ <updated>2008-10-29T21:20:42+00:00</updated>
14
+ <summary>The Harvard author-date style</summary>
15
+ <link href="http://libweb.anglia.ac.uk/referencing/harvard.htm" rel="documentation"/>
16
+ </info>
17
+ <macro name="editor">
18
+ <names variable="editor" delimiter=", ">
19
+ <name and="symbol" initialize-with=". " delimiter=", "/>
20
+ <label form="short" prefix=", " text-case="lowercase" suffix="." strip-periods="true"/>
21
+ </names>
22
+ </macro>
23
+ <macro name="anon">
24
+ <text term="anonymous" form="short" text-case="capitalize-first" strip-periods="true"/>
25
+ </macro>
26
+ <macro name="author">
27
+ <names variable="author">
28
+ <name name-as-sort-order="all" and="symbol" sort-separator=", " initialize-with="." delimiter-precedes-last="never" delimiter=", "/>
29
+ <label form="short" prefix=" " suffix="." text-case="lowercase" strip-periods="true"/>
30
+ <substitute>
31
+ <names variable="editor"/>
32
+ <text macro="anon"/>
33
+ </substitute>
34
+ </names>
35
+ </macro>
36
+ <macro name="author-short">
37
+ <names variable="author">
38
+ <name form="short" and="symbol" delimiter=", " delimiter-precedes-last="never" initialize-with=". "/>
39
+ <substitute>
40
+ <names variable="editor"/>
41
+ <names variable="translator"/>
42
+ <text macro="anon"/>
43
+ </substitute>
44
+ </names>
45
+ </macro>
46
+ <macro name="access">
47
+ <group>
48
+ <text value="Available at:" suffix=" "/>
49
+ <text variable="URL"/>
50
+ <group prefix=" [" suffix="]">
51
+ <text term="accessed" text-case="capitalize-first" suffix=" "/>
52
+ <date variable="accessed">
53
+ <date-part name="month" suffix=" "/>
54
+ <date-part name="day" suffix=", "/>
55
+ <date-part name="year"/>
56
+ </date>
57
+ </group>
58
+ </group>
59
+ </macro>
60
+ <macro name="title">
61
+ <choose>
62
+ <if type="bill book graphic legal_case motion_picture report song thesis" match="any">
63
+ <text variable="title" font-style="italic"/>
64
+ </if>
65
+ <else>
66
+ <text variable="title"/>
67
+ </else>
68
+ </choose>
69
+ </macro>
70
+ <macro name="publisher">
71
+ <group delimiter=": ">
72
+ <text variable="publisher-place"/>
73
+ <text variable="publisher"/>
74
+ </group>
75
+ </macro>
76
+ <macro name="year-date">
77
+ <choose>
78
+ <if variable="issued">
79
+ <date variable="issued">
80
+ <date-part name="year"/>
81
+ </date>
82
+ </if>
83
+ <else>
84
+ <text term="no date" form="short"/>
85
+ </else>
86
+ </choose>
87
+ </macro>
88
+ <macro name="edition">
89
+ <choose>
90
+ <if is-numeric="edition">
91
+ <group delimiter=" ">
92
+ <number variable="edition" form="ordinal"/>
93
+ <text term="edition" form="short" suffix="." strip-periods="true"/>
94
+ </group>
95
+ </if>
96
+ <else>
97
+ <text variable="edition" suffix="."/>
98
+ </else>
99
+ </choose>
100
+ </macro>
101
+ <macro name="pages">
102
+ <group>
103
+ <label variable="page" form="short" suffix=" "/>
104
+ <text variable="page"/>
105
+ </group>
106
+ </macro>
107
+ <citation et-al-min="3" et-al-use-first="1" et-al-subsequent-min="3" et-al-subsequent-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true">
108
+ <layout prefix="(" suffix=")" delimiter="; ">
109
+ <group delimiter=", ">
110
+ <group delimiter=" ">
111
+ <text macro="author-short"/>
112
+ <text macro="year-date"/>
113
+ </group>
114
+ <group>
115
+ <label variable="locator" suffix="." form="short" strip-periods="true"/>
116
+ <text variable="locator"/>
117
+ </group>
118
+ </group>
119
+ </layout>
120
+ </citation>
121
+ <bibliography hanging-indent="true" et-al-min="4" et-al-use-first="1">
122
+ <sort>
123
+ <key macro="author"/>
124
+ <key variable="title"/>
125
+ </sort>
126
+ <layout>
127
+ <text macro="author" suffix=","/>
128
+ <date variable="issued" prefix=" " suffix=".">
129
+ <date-part name="year"/>
130
+ </date>
131
+ <choose>
132
+ <if type="bill book graphic legal_case motion_picture report song" match="any">
133
+ <group prefix=" " delimiter=" " suffix=",">
134
+ <text macro="title"/>
135
+ <text macro="edition"/>
136
+ <text macro="editor"/>
137
+ </group>
138
+ <text prefix=" " suffix="." macro="publisher"/>
139
+ </if>
140
+ <else-if type="chapter paper-conference" match="any">
141
+ <text macro="title" prefix=" " suffix="."/>
142
+ <group prefix=" " delimiter=" ">
143
+ <text term="in" text-case="capitalize-first"/>
144
+ <text macro="editor"/>
145
+ <text variable="container-title" font-style="italic" suffix="."/>
146
+ <text variable="collection-title" suffix="."/>
147
+ <group suffix="." delimiter=", ">
148
+ <text macro="publisher" prefix=" "/>
149
+ <text macro="pages"/>
150
+ </group>
151
+ </group>
152
+ </else-if>
153
+ <else-if type="thesis">
154
+ <group prefix=" " suffix="." delimiter=". ">
155
+ <text macro="title"/>
156
+ <text variable="genre"/>
157
+ <text macro="publisher"/>
158
+ </group>
159
+ </else-if>
160
+ <else>
161
+ <group suffix=".">
162
+ <text macro="title" prefix=" "/>
163
+ <text macro="editor" prefix=" "/>
164
+ </group>
165
+ <group prefix=" " suffix=".">
166
+ <text variable="container-title" font-style="italic"/>
167
+ <group prefix=", ">
168
+ <text variable="volume"/>
169
+ <text variable="issue" prefix="(" suffix=")"/>
170
+ </group>
171
+ <group prefix=", ">
172
+ <label variable="page" suffix="." form="short" strip-periods="true"/>
173
+ <text variable="page"/>
174
+ </group>
175
+ </group>
176
+ </else>
177
+ </choose>
178
+ <text prefix=" " macro="access" suffix="."/>
179
+ </layout>
180
+ </bibliography>
181
+ </style>
@@ -0,0 +1,129 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <style xmlns="http://purl.org/net/xbiblio/csl" class="numeric" version="1.0">
3
+ <info>
4
+ <title>IEEE</title>
5
+ <id>http://www.zotero.org/styles/ieee</id>
6
+ <link href="http://www.zotero.org/styles/ieee" rel="self"/>
7
+ <author>
8
+ <name>Michael Berkowitz</name>
9
+ <email>mberkowi@gmu.edu</email>
10
+ </author>
11
+ <contributor>
12
+ <name>Julian Onions</name>
13
+ <email>julian.onions@gmail.com</email>
14
+ </contributor>
15
+ <contributor>
16
+ <name>Rintze Zelle</name>
17
+ <uri>http://forums.zotero.org/account/831/</uri>
18
+ </contributor>
19
+ <category field="engineering"/>
20
+ <category field="generic-base"/>
21
+ <category citation-format="numeric"/>
22
+ <updated>2010-02-06T06:35:40+00:00</updated>
23
+ <link href="http://www.ieee.org/portal/cms_docs_iportals/iportals/publications/authors/transjnl/stylemanual.pdf" rel="documentation"/>
24
+ </info>
25
+ <macro name="author">
26
+ <names variable="author">
27
+ <name initialize-with="." delimiter=", " and="text"/>
28
+ <label form="short" prefix=", " text-case="capitalize-first" suffix="." strip-periods="true"/>
29
+ <substitute>
30
+ <names variable="editor"/>
31
+ <names variable="translator"/>
32
+ </substitute>
33
+ </names>
34
+ </macro>
35
+ <macro name="editor">
36
+ <names variable="editor">
37
+ <name initialize-with="." delimiter=", " and="text" name-as-sort-order="all"/>
38
+ <label form="short" prefix=", " text-case="capitalize-first" suffix="." strip-periods="true"/>
39
+ </names>
40
+ </macro>
41
+ <macro name="title">
42
+ <choose>
43
+ <if type="bill book graphic legal_case motion_picture report song" match="any">
44
+ <text variable="title" font-style="italic"/>
45
+ </if>
46
+ <else>
47
+ <text variable="title" quotes="true"/>
48
+ </else>
49
+ </choose>
50
+ </macro>
51
+ <macro name="publisher">
52
+ <text variable="publisher-place" suffix=": " prefix=" "/>
53
+ <text variable="publisher" suffix=", "/>
54
+ <date variable="issued">
55
+ <date-part name="year"/>
56
+ </date>
57
+ </macro>
58
+ <macro name="access">
59
+ <text variable="URL"/>
60
+ </macro>
61
+ <macro name="page">
62
+ <group>
63
+ <label variable="page" form="short" suffix=". " strip-periods="true"/>
64
+ <text variable="page"/>
65
+ </group>
66
+ </macro>
67
+ <citation et-al-min="3" et-al-use-first="1" collapse="citation-number">
68
+ <sort>
69
+ <key variable="citation-number"/>
70
+ </sort>
71
+ <layout delimiter=",">
72
+ <text variable="citation-number" prefix="[" suffix="]"/>
73
+ </layout>
74
+ </citation>
75
+ <bibliography entry-spacing="0" second-field-align="flush">
76
+ <layout suffix=".">
77
+ <text variable="citation-number" prefix="[" suffix="]"/>
78
+ <text macro="author" prefix=" " suffix=", "/>
79
+ <choose>
80
+ <if type="bill book graphic legal_case motion_picture report song" match="any">
81
+ <group delimiter=", ">
82
+ <text macro="title"/>
83
+ <text macro="publisher"/>
84
+ </group>
85
+ </if>
86
+ <else-if type="chapter paper-conference" match="any">
87
+ <group delimiter=", ">
88
+ <text macro="title"/>
89
+ <text variable="container-title" font-style="italic"/>
90
+ <text macro="editor"/>
91
+ <text macro="publisher"/>
92
+ <text macro="page"/>
93
+ </group>
94
+ </else-if>
95
+ <else-if type="patent">
96
+ <text macro="title" suffix=", "/>
97
+ <text variable="number" prefix="U.S. Patent "/>
98
+ <date variable="issued" prefix=", ">
99
+ <date-part name="month" suffix=" "/>
100
+ <date-part name="day" suffix=", "/>
101
+ <date-part name="year"/>
102
+ </date>
103
+ </else-if>
104
+ <else-if type="thesis">
105
+ <group delimiter=", ">
106
+ <text macro="title"/>
107
+ <text variable="genre"/>
108
+ <text variable="publisher"/>
109
+ <date variable="issued">
110
+ <date-part name="year"/>
111
+ </date>
112
+ </group>
113
+ </else-if>
114
+ <else>
115
+ <group delimiter=", ">
116
+ <text macro="title"/>
117
+ <text variable="container-title" font-style="italic"/>
118
+ <text variable="volume" prefix=" vol. "/>
119
+ <date variable="issued">
120
+ <date-part name="month" form="short" suffix=". " strip-periods="true"/>
121
+ <date-part name="year"/>
122
+ </date>
123
+ <text macro="page"/>
124
+ </group>
125
+ </else>
126
+ </choose>
127
+ </layout>
128
+ </bibliography>
129
+ </style>