metanorma-iso 1.5.6 → 1.5.11

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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +9 -1
  3. data/.github/workflows/ubuntu.yml +8 -0
  4. data/.github/workflows/windows.yml +7 -0
  5. data/lib/asciidoctor/iso/basicdoc.rng +4 -11
  6. data/lib/asciidoctor/iso/boilerplate-fr.xml +40 -0
  7. data/lib/asciidoctor/iso/boilerplate.xml +1 -0
  8. data/lib/asciidoctor/iso/cleanup.rb +5 -0
  9. data/lib/asciidoctor/iso/front.rb +9 -15
  10. data/lib/asciidoctor/iso/isodoc.rng +14 -50
  11. data/lib/asciidoctor/iso/isostandard.rng +8 -1
  12. data/lib/isodoc/iso/html/header.html +8 -16
  13. data/lib/isodoc/iso/html/style-human.css +5 -1
  14. data/lib/isodoc/iso/html/style-iso.css +5 -1
  15. data/lib/isodoc/iso/i18n-en.yaml +3 -0
  16. data/lib/isodoc/iso/i18n-fr.yaml +3 -0
  17. data/lib/isodoc/iso/i18n-zh-Hans.yaml +4 -0
  18. data/lib/isodoc/iso/iso.amendment.xsl +543 -94
  19. data/lib/isodoc/iso/iso.international-standard.xsl +543 -94
  20. data/lib/isodoc/iso/isosts_convert.rb +31 -0
  21. data/lib/isodoc/iso/metadata.rb +19 -19
  22. data/lib/metanorma-iso.rb +1 -0
  23. data/lib/metanorma/iso/processor.rb +1 -1
  24. data/lib/metanorma/iso/version.rb +1 -1
  25. data/metanorma-iso.gemspec +1 -1
  26. data/spec/asciidoctor-iso/amd_spec.rb +7 -7
  27. data/spec/asciidoctor-iso/base_spec.rb +144 -18
  28. data/spec/asciidoctor-iso/validate_spec.rb +35 -15
  29. data/spec/assets/xref_error.adoc +7 -0
  30. data/spec/isodoc/amd_spec.rb +191 -17
  31. data/spec/isodoc/blocks_spec.rb +1 -1
  32. data/spec/isodoc/i18n_spec.rb +13 -13
  33. data/spec/isodoc/inline_spec.rb +2 -2
  34. data/spec/isodoc/iso_spec.rb +2 -2
  35. data/spec/isodoc/metadata_spec.rb +170 -19
  36. data/spec/isodoc/postproc_spec.rb +3 -3
  37. data/spec/isodoc/ref_spec.rb +3 -3
  38. data/spec/isodoc/section_spec.rb +2 -2
  39. data/spec/isodoc/table_spec.rb +1 -1
  40. data/spec/isodoc/terms_spec.rb +1 -1
  41. data/spec/isodoc/xref_spec.rb +11 -11
  42. data/spec/metanorma/processor_spec.rb +1 -1
  43. data/spec/spec_helper.rb +22 -2
  44. metadata +7 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af5b522de99b45f3bfe7f85160164adef26c76fd3422589d47309fa9e45086b3
4
- data.tar.gz: 99305967e4efd098f560a968e290ed45f687841f3246995b73e472a1776e29be
3
+ metadata.gz: b55ad63091753ec601585409d6eb07ecb5036273c4c0a25d4dc8933d1f8fe68e
4
+ data.tar.gz: e4926508e1cbd008d5f8f9daf99746dd31fe599726ac3b40c3fbe21417425d92
5
5
  SHA512:
6
- metadata.gz: 277da3d65b6fb4b0de530d152ef7c3f02cdd8aca331f8b0b8d201fd9ce99c245f80556ad9f5465d7aba7a47b0cfba3823ce98b6afb11dd8df2ef3ced774c2232
7
- data.tar.gz: 767a3e807f6f26548c1535e297063a73c9b04e45c62b9f7c97929c4bde1917b33027b05a50625ee45b5fb9983f40d9e6337016978db94319bd2ce9f834c28860
6
+ metadata.gz: 5e91a33a23750e3f6bcc4a7b41b31a6543ab59bd28f7c82bc683e4e18c6e1ba0944b8662d29b74f95e548eac55da5d7b40bb842574d1739aba494e0058e07e3c
7
+ data.tar.gz: d8c09a90f76d6d5872010b54001af4c7a8d8ebd809cef8c6c6d09e75bb303c7717d5f74f8e10230ed9a6dbbc47f166383ade0215d2f876dd948a202b08ada08c
@@ -29,9 +29,17 @@ jobs:
29
29
  uses: actions/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
+ - name: Cache gems
33
+ uses: actions/cache@preview
34
+ with:
35
+ path: vendor/bundle
36
+ key: ${{ runner.os }}-${{ matrix.ruby }}-gem-${{ hashFiles('Gemfile') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-${{ matrix.ruby }}-gem-
32
39
  - name: Update gems
33
40
  run: |
34
- sudo gem install bundler --force
41
+ gem install bundler
42
+ bundle config --local path vendor/bundle
35
43
  bundle install --jobs 4 --retry 3
36
44
  - name: Install PlantUML
37
45
  run: |
@@ -29,9 +29,17 @@ jobs:
29
29
  uses: actions/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
+ - name: Cache gems
33
+ uses: actions/cache@preview
34
+ with:
35
+ path: vendor/bundle
36
+ key: ${{ runner.os }}-${{ matrix.ruby }}-gem-${{ hashFiles('Gemfile') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-${{ matrix.ruby }}-gem-
32
39
  - name: Update gems
33
40
  run: |
34
41
  gem install bundler
42
+ bundle config --local path vendor/bundle
35
43
  bundle install --jobs 4 --retry 3
36
44
  - name: Install PlantUML
37
45
  uses: nick-invision/retry@v1
@@ -29,6 +29,13 @@ jobs:
29
29
  uses: actions/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
+ - name: Cache gems
33
+ uses: actions/cache@preview
34
+ with:
35
+ path: vendor/bundle
36
+ key: ${{ runner.os }}-${{ matrix.ruby }}-gem-${{ hashFiles('Gemfile') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-${{ matrix.ruby }}-gem-
32
39
  - name: Update gems
33
40
  shell: pwsh
34
41
  run: |
@@ -158,17 +158,7 @@
158
158
  <data type="ID"/>
159
159
  </attribute>
160
160
  <oneOrMore>
161
- <choice>
162
- <ref name="formula"/>
163
- <ref name="ul"/>
164
- <ref name="ol"/>
165
- <ref name="dl"/>
166
- <ref name="quote"/>
167
- <ref name="sourcecode"/>
168
- <ref name="paragraph"/>
169
- <ref name="table"/>
170
- <ref name="figure"/>
171
- </choice>
161
+ <ref name="paragraph"/>
172
162
  </oneOrMore>
173
163
  </element>
174
164
  </define>
@@ -1028,6 +1018,9 @@
1028
1018
  <value>alphabet_upper</value>
1029
1019
  </choice>
1030
1020
  </attribute>
1021
+ <optional>
1022
+ <attribute name="start"/>
1023
+ </optional>
1031
1024
  <oneOrMore>
1032
1025
  <ref name="li"/>
1033
1026
  </oneOrMore>
@@ -0,0 +1,40 @@
1
+ <boilerplate>
2
+ <copyright-statement>
3
+ <clause>
4
+ <title>DOCUMENT PROTÉGÉ PAR COPYRIGHT</title>
5
+ <p id="boilerplate-year">&copy; {{ agency }} {{ docyear }}</p>
6
+
7
+ <p id="boilerplate-message">
8
+ Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne
9
+ peut être reproduite ni utilisée sous quelque forme que ce soit et par aucun procédé, électronique
10
+ ou mécanique, y compris la photocopie, l’affichage sur l’internet ou sur un Intranet, sans
11
+ autorisation écrite préalable. Les demandes d’autorisation peuvent être adressées à l’ISO à
12
+ l’adresse ci-après ou au comité membre de l’ISO dans le pays du demandeur.
13
+ </p>
14
+
15
+ <p id="boilerplate-address" align="left">
16
+ ISO copyright office<br/>
17
+ Ch. de Blandonnet 8 &#x2022; CP 401<br/>
18
+ CH-1214 Vernier, Geneva, Switzerland<br/>
19
+ Tel.&nbsp;&nbsp;+ 41 22 749 01 11<br/>
20
+ Fax&nbsp;&nbsp;+ 41 22 749 09 47<br/>
21
+ Email: copyright@iso.org<br/>
22
+ Website: www.iso.org
23
+ </p>
24
+ <p id="boilerplate-place">
25
+ Publié en Suisse
26
+ </p>
27
+ </clause>
28
+ </copyright-statement>
29
+
30
+ {% if unpublished %}
31
+ <license-statement>
32
+ <clause>
33
+ <title>Avertissement</title>
34
+
35
+ <p>Ce document n'est pas une Norme internationale de l'ISO. Il est distribué pour examen et observations. Il est susceptible de modification sans préavis et ne peut être cité comme Norme internationale.</p>
36
+ <p>Les destinataires du présent projet sont invités à présenter, avec leurs observations, notification des droits de propriété dont ils auraient éventuellement connaissance et à fournir une documentation explicative.</p>
37
+ </clause>
38
+ </license-statement>
39
+ {% endif %}
40
+ </boilerplate>
@@ -1,6 +1,7 @@
1
1
  <boilerplate>
2
2
  <copyright-statement>
3
3
  <clause>
4
+ <title>COPYRIGHT PROTECTED DOCUMENT</title>
4
5
  <p id="boilerplate-year">
5
6
  &copy; {{ agency }} {{ docyear }}
6
7
  </p>
@@ -124,6 +124,11 @@ module Asciidoctor
124
124
  h.delete('inline-header')
125
125
  end
126
126
  end
127
+
128
+ def boilerplate_file(xmldoc)
129
+ file = @lang == "fr" ? "boilerplate-fr.xml" : "boilerplate.xml"
130
+ File.join(@libdir, file)
131
+ end
127
132
  end
128
133
  end
129
134
  end
@@ -18,18 +18,9 @@ module Asciidoctor
18
18
  xml.updates_document_type a
19
19
  end
20
20
 
21
- def organization(org, orgname)
22
- if ["ISO",
23
- "International Organization for Standardization"].include? orgname
24
- org.name "International Organization for Standardization"
25
- org.abbreviation "ISO"
26
- elsif ["IEC",
27
- "International Electrotechnical Commission"].include? orgname
28
- org.name "International Electrotechnical Commission"
29
- org.abbreviation "IEC"
30
- else
31
- org.name orgname
32
- end
21
+ def org_abbrev
22
+ { "International Organization for Standardization" => "ISO",
23
+ "International Electrotechnical Commission" => "IEC" }
33
24
  end
34
25
 
35
26
  def metadata_author(node, xml)
@@ -37,7 +28,7 @@ module Asciidoctor
37
28
  csv_split(publishers).each do |p|
38
29
  xml.contributor do |c|
39
30
  c.role **{ type: "author" }
40
- c.organization { |a| organization(a, p) }
31
+ c.organization { |a| organization(a, p, node, !node.attr("publisher")) }
41
32
  end
42
33
  end
43
34
  end
@@ -47,7 +38,7 @@ module Asciidoctor
47
38
  csv_split(publishers).each do |p|
48
39
  xml.contributor do |c|
49
40
  c.role **{ type: "publisher" }
50
- c.organization { |a| organization(a, p) }
41
+ c.organization { |a| organization(a, p, node, !node.attr("publisher")) }
51
42
  end
52
43
  end
53
44
  end
@@ -58,7 +49,10 @@ module Asciidoctor
58
49
  xml.copyright do |c|
59
50
  c.from (node.attr("copyright-year") || Date.today.year)
60
51
  c.owner do |owner|
61
- owner.organization { |o| organization(o, p) }
52
+ owner.organization do |o|
53
+ organization(o, p, node,
54
+ !(node.attr("copyright-holder") || node.attr("publisher")))
55
+ end
62
56
  end
63
57
  end
64
58
  end
@@ -42,7 +42,6 @@
42
42
  </define>
43
43
  <define name="xref">
44
44
  <element name="xref">
45
- <!-- attribute target { xsd:IDREF }, -->
46
45
  <attribute name="target">
47
46
  <data type="string">
48
47
  <param name="pattern">\i\c*|\c+#\c+</param>
@@ -64,6 +63,11 @@
64
63
  </choice>
65
64
  </attribute>
66
65
  </optional>
66
+ <optional>
67
+ <attribute name="droploc">
68
+ <data type="boolean"/>
69
+ </attribute>
70
+ </optional>
67
71
  <text/>
68
72
  </element>
69
73
  </define>
@@ -859,6 +863,13 @@
859
863
  </define>
860
864
  <define name="standard-document">
861
865
  <element name="standard-document">
866
+ <attribute name="version"/>
867
+ <attribute name="type">
868
+ <choice>
869
+ <value>semantic</value>
870
+ <value>presentation</value>
871
+ </choice>
872
+ </attribute>
862
873
  <ref name="bibdata"/>
863
874
  <optional>
864
875
  <ref name="boilerplate"/>
@@ -880,7 +891,7 @@
880
891
  <oneOrMore>
881
892
  <choice>
882
893
  <ref name="content"/>
883
- <ref name="preface_abstract"/>
894
+ <ref name="abstract"/>
884
895
  <ref name="foreword"/>
885
896
  <ref name="introduction"/>
886
897
  <ref name="acknowledgements"/>
@@ -1153,49 +1164,7 @@
1153
1164
  </define>
1154
1165
  <define name="annex">
1155
1166
  <element name="annex">
1156
- <optional>
1157
- <attribute name="id">
1158
- <data type="ID"/>
1159
- </attribute>
1160
- </optional>
1161
- <optional>
1162
- <attribute name="language"/>
1163
- </optional>
1164
- <optional>
1165
- <attribute name="script"/>
1166
- </optional>
1167
- <optional>
1168
- <attribute name="inline-header">
1169
- <data type="boolean"/>
1170
- </attribute>
1171
- </optional>
1172
- <attribute name="obligation">
1173
- <choice>
1174
- <value>normative</value>
1175
- <value>informative</value>
1176
- </choice>
1177
- </attribute>
1178
- <optional>
1179
- <ref name="section-title"/>
1180
- </optional>
1181
- <group>
1182
- <group>
1183
- <zeroOrMore>
1184
- <ref name="BasicBlock"/>
1185
- </zeroOrMore>
1186
- <zeroOrMore>
1187
- <ref name="note"/>
1188
- </zeroOrMore>
1189
- </group>
1190
- <zeroOrMore>
1191
- <choice>
1192
- <ref name="annex-subsection"/>
1193
- <ref name="terms"/>
1194
- <ref name="definitions"/>
1195
- <ref name="references"/>
1196
- </choice>
1197
- </zeroOrMore>
1198
- </group>
1167
+ <ref name="Annex-Section"/>
1199
1168
  </element>
1200
1169
  </define>
1201
1170
  <define name="terms">
@@ -1481,11 +1450,6 @@
1481
1450
  </optional>
1482
1451
  </element>
1483
1452
  </define>
1484
- <define name="preface_abstract">
1485
- <element name="abstract">
1486
- <ref name="Basic-Section"/>
1487
- </element>
1488
- </define>
1489
1453
  <define name="term-clause">
1490
1454
  <element name="clause">
1491
1455
  <optional>
@@ -253,7 +253,7 @@
253
253
  <define name="preface">
254
254
  <element name="preface">
255
255
  <optional>
256
- <ref name="preface_abstract"/>
256
+ <ref name="abstract"/>
257
257
  </optional>
258
258
  <ref name="foreword"/>
259
259
  <optional>
@@ -405,6 +405,13 @@
405
405
  -->
406
406
  <define name="iso-standard">
407
407
  <element name="iso-standard">
408
+ <attribute name="version"/>
409
+ <attribute name="type">
410
+ <choice>
411
+ <value>semantic</value>
412
+ <value>presentation</value>
413
+ </choice>
414
+ </attribute>
408
415
  <ref name="bibdata"/>
409
416
  <zeroOrMore>
410
417
  <ref name="termdocsource"/>
@@ -74,7 +74,7 @@ mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber_reference }}{{ draft
74
74
 
75
75
  <p class=MsoHeader style='margin-bottom:18.0pt'><span lang=EN-GB
76
76
  style='font-size:10.0pt;mso-bidi-font-size:11.0pt;font-weight:normal'>©
77
- {{ agency }}&nbsp;{{ docyear }}&nbsp;– All rights reserved</span><span lang=EN-GB
77
+ {{ agency }}&nbsp;{{ docyear }}&nbsp;– {{ all_rights_reserved }}</span><span lang=EN-GB
78
78
  style='font-weight:normal'><o:p></o:p></span></p>
79
79
 
80
80
  </div>
@@ -93,7 +93,7 @@ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
93
93
  mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
94
94
  lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
95
95
  style='mso-tab-count:1'>                                                                                                                                                                           </span>©
96
- {{ agency }}&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
96
+ {{ agency }}&nbsp;{{ docyear }}&nbsp;– {{ all_rights_reserved }}<o:p></o:p></span></p>
97
97
 
98
98
  </div>
99
99
 
@@ -129,7 +129,7 @@ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
129
129
  style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
130
130
  style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
131
131
  1'>                                                                                                                                                                           </span>©
132
- {{ agency }}&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
132
+ {{ agency }}&nbsp;{{ docyear }}&nbsp;– {{ all_rights_reserved }}<o:p></o:p></span></p>
133
133
  </div>
134
134
 
135
135
  <div style='mso-element:footer' id=ef2l>
@@ -144,7 +144,7 @@ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
144
144
  style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
145
145
  style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
146
146
  1'>                                                                                                                                                                           </span>©
147
- {{ agency }}&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
147
+ {{ agency }}&nbsp;{{ docyear }}&nbsp;– {{ all_rights_reserved }}<o:p></o:p></span></p>
148
148
  </div>
149
149
 
150
150
  <div style='mso-element:footer' id=f2>
@@ -188,7 +188,7 @@ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
188
188
  mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
189
189
  lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
190
190
  style='mso-tab-count:1'>                                                                                                                                                                           </span>©
191
- {{ agency }}&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
191
+ {{ agency }}&nbsp;{{ docyear }}&nbsp;– {{ all_rights_reserved }}<o:p></o:p></span></p>
192
192
  </div>
193
193
 
194
194
  <div style='mso-element:footer' id=ef3l>
@@ -204,7 +204,7 @@ style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
204
204
  mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
205
205
  lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
206
206
  style='mso-tab-count:1'>                                                                                                                                                                           </span>©
207
- {{ agency }}&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
207
+ {{ agency }}&nbsp;{{ docyear }}&nbsp;– {{ all_rights_reserved }}<o:p></o:p></span></p>
208
208
  </div>
209
209
 
210
210
  <div style='mso-element:footer' id=f3>
@@ -246,18 +246,10 @@ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span>
246
246
  {% endif %}
247
247
 
248
248
  <p class=MsoFooter style='margin-top:0cm'><span lang=EN-AU style='font-size:
249
- 10.0pt;mso-ansi-language:EN-AU'>Price based on </span><!--[if supportFields]><span
250
- lang=EN-AU style='font-size:10.0pt;mso-ansi-language:EN-AU'><span
251
- style='mso-element:field-begin'></span><span style='mso-spacerun:yes'> </span>NUMPAGES<span
252
- style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
253
- lang=EN-AU style='font-size:10.0pt;mso-ansi-language:EN-AU'><span
254
- style='mso-no-proof:yes'>26</span></span><!--[if supportFields]><span
255
- lang=EN-AU style='font-size:10.0pt;mso-ansi-language:EN-AU'><span
256
- style='mso-element:field-end'></span></span><![endif]--><span lang=EN-AU
257
- style='font-size:10.0pt;mso-ansi-language:EN-AU'> pages<o:p></o:p></span></p>
249
+ 10.0pt;mso-ansi-language:EN-AU'>{{ price_based_on | replace: "%", "<span style='mso-element:field-begin'></span><span style='mso-spacerun:yes'> </span>NUMPAGES<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span><span style='mso-no-proof:yes'>26</span><span style='mso-element:field-end'></span>" }}</span></p>
258
250
 
259
251
  <p class=MsoFooter><span lang=EN-AU style='font-size:10.0pt;'>©
260
- {{ agency }}&nbsp;{{ docyear }}&nbsp;– All rights reserved<o:p></o:p></span></p>
252
+ {{ agency }}&nbsp;{{ docyear }}&nbsp;– {{ all_rights_reserved }}<o:p></o:p></span></p>
261
253
 
262
254
  </div>
263
255
 
@@ -16,7 +16,7 @@ fieldset, form, label, legend,
16
16
  table, caption, tbody, tfoot, thead, tr, th, td,
17
17
  article, aside, canvas, details, embed,
18
18
  figure, figcaption, footer, header, hgroup,
19
- menu, nav, output, ruby, section, summary,
19
+ menu, output, ruby, section, summary,
20
20
  time, mark, audio, video {
21
21
  margin: 0;
22
22
  padding: 0; }
@@ -111,6 +111,10 @@ b, strong {
111
111
  div.document-stage-band, div.document-type-band {
112
112
  background-color: #333333; }
113
113
 
114
+ a.FootnoteRef + a.FootnoteRef:before {
115
+ content: ", ";
116
+ vertical-align: super; }
117
+
114
118
  #standard-band {
115
119
  background-color: #0AC442; }
116
120
 
@@ -16,7 +16,7 @@ fieldset, form, label, legend,
16
16
  table, caption, tbody, tfoot, thead, tr, th, td,
17
17
  article, aside, canvas, details, embed,
18
18
  figure, figcaption, footer, header, hgroup,
19
- menu, nav, output, ruby, section, summary,
19
+ menu, output, ruby, section, summary,
20
20
  time, mark, audio, video {
21
21
  margin: 0;
22
22
  padding: 0; }
@@ -111,6 +111,10 @@ b, strong {
111
111
  div.document-stage-band, div.document-type-band {
112
112
  background-color: #333333; }
113
113
 
114
+ a.FootnoteRef + a.FootnoteRef:before {
115
+ content: ", ";
116
+ vertical-align: super; }
117
+
114
118
  #standard-band {
115
119
  background-color: #0AC442; }
116
120