metanorma-bsi 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of metanorma-bsi might be problematic. Click here for more details.

Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +43 -0
  3. data/.github/workflows/release_github_packages.yml +49 -0
  4. data/.hound.yml +3 -1
  5. data/.rubocop.yml +4 -8
  6. data/README.adoc +95 -11
  7. data/lib/asciidoctor/bsi/biblio.rng +1 -0
  8. data/lib/asciidoctor/bsi/bsi.rng +32 -4
  9. data/lib/asciidoctor/bsi/bsi_intro_en.xml +87 -61
  10. data/lib/asciidoctor/bsi/cleanup.rb +15 -8
  11. data/lib/asciidoctor/bsi/cleanup_ref.rb +10 -21
  12. data/lib/asciidoctor/bsi/converter.rb +7 -5
  13. data/lib/asciidoctor/bsi/front.rb +26 -5
  14. data/lib/asciidoctor/bsi/isodoc.rng +191 -3
  15. data/lib/asciidoctor/bsi/isostandard.rng +12 -0
  16. data/lib/asciidoctor/bsi/validate.rb +5 -6
  17. data/lib/asciidoctor/bsi/validate_list.rb +2 -2
  18. data/lib/isodoc/bsi/base_convert.rb +2 -1
  19. data/lib/isodoc/bsi/bsi.international-standard.xsl +3380 -2349
  20. data/lib/isodoc/bsi/html/htmlstyle.css +43 -22
  21. data/lib/isodoc/bsi/html/htmlstyle.scss +46 -22
  22. data/lib/isodoc/bsi/html_convert.rb +2 -2
  23. data/lib/isodoc/bsi/i18n-en.yaml +4 -4
  24. data/lib/isodoc/bsi/metadata.rb +2 -2
  25. data/lib/isodoc/bsi/presentation_xml_convert.rb +26 -5
  26. data/lib/isodoc/bsi/xref.rb +11 -4
  27. data/lib/metanorma/bsi/version.rb +1 -1
  28. data/metanorma-bsi.gemspec +2 -2
  29. data/spec/asciidoctor/base_spec.rb +564 -494
  30. data/spec/asciidoctor/blocks_spec.rb +192 -195
  31. data/spec/asciidoctor/cleanup_spec.rb +361 -361
  32. data/spec/asciidoctor/refs_spec.rb +8 -78
  33. data/spec/asciidoctor/section_spec.rb +227 -227
  34. data/spec/asciidoctor/validate_spec.rb +26 -1
  35. data/spec/isodoc/blocks_spec.rb +56 -21
  36. data/spec/isodoc/i18n_spec.rb +156 -234
  37. data/spec/isodoc/inline_spec.rb +7 -7
  38. data/spec/isodoc/iso_spec.rb +4 -4
  39. data/spec/isodoc/metadata_spec.rb +0 -1
  40. data/spec/isodoc/ref_spec.rb +7 -7
  41. data/spec/isodoc/section_spec.rb +400 -343
  42. data/spec/isodoc/terms_spec.rb +224 -225
  43. data/spec/isodoc/xref_spec.rb +1347 -1360
  44. data/spec/metanorma/processor_spec.rb +37 -40
  45. data/spec/spec_helper.rb +6 -4
  46. data/spec/vcr_cassettes/iso-639.yml +19 -19
  47. data/spec/vcr_cassettes/isobib_get_639_1967.yml +17 -17
  48. data/spec/vcr_cassettes/multistandard.yml +15 -193
  49. metadata +7 -5
@@ -12,11 +12,11 @@ RSpec.describe Asciidoctor::BSI do
12
12
 
13
13
  it "processes a blank document" do
14
14
  expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
15
- #{ASCIIDOC_BLANK_HDR}
15
+ #{ASCIIDOC_BLANK_HDR}
16
16
  INPUT
17
- #{@blank_hdr}
18
- <sections/>
19
- </bsi-standard>
17
+ #{@blank_hdr}
18
+ <sections/>
19
+ </bsi-standard>
20
20
  OUTPUT
21
21
  end
22
22
 
@@ -90,95 +90,107 @@ RSpec.describe Asciidoctor::BSI do
90
90
  :secretary: Fred Nerk
91
91
  :interest-to-committees: TC 6121, SC 12
92
92
  :obsoletes: ABC; DEF
93
+ :bsi-related: Committee reference DEF/1;Draft for comment 20/30387670 DC
93
94
  INPUT
94
- <bibdata type="standard">
95
- <title language="en" format="text/plain" type="main">Introduction — Main Title — Title — Title Part</title>
96
- <title language="en" format="text/plain" type="title-intro">Introduction</title>
97
- <title language="en" format="text/plain" type="title-main">Main Title — Title</title>
98
- <title language="en" format="text/plain" type="title-part">Title Part</title>
99
- <title language="fr" format="text/plain" type="main">Introduction Française — Titre Principal — Part du Titre</title>
100
- <title language="fr" format="text/plain" type="title-intro">Introduction Française</title>
101
- <title language="fr" format="text/plain" type="title-main">Titre Principal</title>
102
- <title language="fr" format="text/plain" type="title-part">Part du Titre</title>
103
- <docidentifier type="BS">BS/PreNP 1000-1</docidentifier>
104
- <docnumber>1000</docnumber>
105
- <contributor>
106
- <role type="author"/>
107
- <organization>
108
- <name>British Standards Institute</name>
109
- <abbreviation>BSI</abbreviation>
110
- </organization>
111
- </contributor>
112
- <contributor>
113
- <role type="publisher"/>
114
- <organization>
115
- <name>British Standards Institute</name>
116
- <abbreviation>BSI</abbreviation>
117
- </organization>
118
- </contributor>
119
- <edition>2</edition>
120
- <version>
121
- <revision-date>2000-01-01</revision-date>
122
- <draft>0.3.4</draft>
123
- </version>
124
- <language>en</language>
125
- <script>Latn</script>
126
- <status>
127
- <stage abbreviation="NP">10</stage>
128
- <substage>20</substage>
129
- <iteration>3</iteration>
130
- </status>
131
- <copyright>
132
- <from>#{Date.today.year}</from>
133
- <owner>
134
- <organization>
135
- <name>British Standards Institute</name>
136
- <abbreviation>BSI</abbreviation>
137
- </organization>
138
- </owner>
139
- </copyright>
140
- <relation type='obsoletes'>
141
- <bibitem>
142
- <title>--</title>
143
- <docidentifier>ABC</docidentifier>
144
- </bibitem>
145
- </relation>
146
- <relation type='obsoletes'>
147
- <bibitem>
148
- <title>--</title>
149
- <docidentifier>DEF</docidentifier>
150
- </bibitem>
151
- </relation>
152
- <ext>
153
- <doctype>article</doctype>
154
- <editorialgroup>
155
- <technical-committee number="1" type="A">TC</technical-committee>
156
- <technical-committee number="11" type="A1">TC1</technical-committee>
157
- <subcommittee number="2" type="B">SC</subcommittee>
158
- <subcommittee number="21" type="B1">SC1</subcommittee>
159
- <workgroup number="3" type="C">WG</workgroup>
160
- <workgroup number="31" type="C1">WG1</workgroup>
161
- <secretariat>SECRETARIAT</secretariat>
162
- </editorialgroup>
163
- <ics>
164
- <code>1</code>
165
- </ics>
166
- <ics>
167
- <code>2</code>
168
- </ics>
169
- <ics>
170
- <code>3</code>
171
- </ics>
172
- <structuredidentifier>
173
- <project-number part="1">BS 1000</project-number>
174
- </structuredidentifier>
175
- <stagename>New work item proposal</stagename>
176
- </ext>
177
- </bibdata>
95
+ <bibdata type="standard">
96
+ <title language="en" format="text/plain" type="main">Introduction — Main Title — Title — Title Part</title>
97
+ <title language="en" format="text/plain" type="title-intro">Introduction</title>
98
+ <title language="en" format="text/plain" type="title-main">Main Title — Title</title>
99
+ <title language="en" format="text/plain" type="title-part">Title Part</title>
100
+ <title language="fr" format="text/plain" type="main">Introduction Française — Titre Principal — Part du Titre</title>
101
+ <title language="fr" format="text/plain" type="title-intro">Introduction Française</title>
102
+ <title language="fr" format="text/plain" type="title-main">Titre Principal</title>
103
+ <title language="fr" format="text/plain" type="title-part">Part du Titre</title>
104
+ <docidentifier type="BS">BS/PreNP 1000-1</docidentifier>
105
+ <docnumber>1000</docnumber>
106
+ <contributor>
107
+ <role type="author"/>
108
+ <organization>
109
+ <name>British Standards Institution</name>
110
+ <abbreviation>BSI</abbreviation>
111
+ </organization>
112
+ </contributor>
113
+ <contributor>
114
+ <role type="publisher"/>
115
+ <organization>
116
+ <name>British Standards Institution</name>
117
+ <abbreviation>BSI</abbreviation>
118
+ </organization>
119
+ </contributor>
120
+ <edition>2</edition>
121
+ <version>
122
+ <revision-date>2000-01-01</revision-date>
123
+ <draft>0.3.4</draft>
124
+ </version>
125
+ <language>en</language>
126
+ <script>Latn</script>
127
+ <status>
128
+ <stage abbreviation="NP">10</stage>
129
+ <substage>20</substage>
130
+ <iteration>3</iteration>
131
+ </status>
132
+ <copyright>
133
+ <from>#{Date.today.year}</from>
134
+ <owner>
135
+ <organization>
136
+ <name>British Standards Institution</name>
137
+ <abbreviation>BSI</abbreviation>
138
+ </organization>
139
+ </owner>
140
+ </copyright>
141
+ <relation type='obsoletes'>
142
+ <bibitem>
143
+ <title>--</title>
144
+ <docidentifier>ABC</docidentifier>
145
+ </bibitem>
146
+ </relation>
147
+ <relation type='obsoletes'>
148
+ <bibitem>
149
+ <title>--</title>
150
+ <docidentifier>DEF</docidentifier>
151
+ </bibitem>
152
+ </relation>
153
+ <relation type='related'>
154
+ <bibitem>
155
+ <title>--</title>
156
+ <docidentifier>Committee reference DEF/1</docidentifier>
157
+ </bibitem>
158
+ </relation>
159
+ <relation type='related'>
160
+ <bibitem>
161
+ <title>--</title>
162
+ <docidentifier>Draft for comment 20/30387670 DC</docidentifier>
163
+ </bibitem>
164
+ </relation>
165
+ <ext>
166
+ <doctype>article</doctype>
167
+ <editorialgroup>
168
+ <technical-committee number="1" type="A">TC</technical-committee>
169
+ <technical-committee number="11" type="A1">TC1</technical-committee>
170
+ <subcommittee number="2" type="B">SC</subcommittee>
171
+ <subcommittee number="21" type="B1">SC1</subcommittee>
172
+ <workgroup number="3" type="C">WG</workgroup>
173
+ <workgroup number="31" type="C1">WG1</workgroup>
174
+ <secretariat>SECRETARIAT</secretariat>
175
+ </editorialgroup>
176
+ <ics>
177
+ <code>1</code>
178
+ </ics>
179
+ <ics>
180
+ <code>2</code>
181
+ </ics>
182
+ <ics>
183
+ <code>3</code>
184
+ </ics>
185
+ <structuredidentifier>
186
+ <project-number part="1">BS 1000</project-number>
187
+ </structuredidentifier>
188
+ <stagename>New work item proposal</stagename>
189
+ </ext>
190
+ </bibdata>
178
191
  OUTPUT
179
192
  end
180
193
 
181
-
182
194
  it "processes complex metadata" do
183
195
  expect(xmlpp(strip_guid(Nokogiri::XML(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true)).at("//xmlns:bibdata").to_xml))).to be_equivalent_to xmlpp(<<~"OUTPUT")
184
196
  = Document title
@@ -199,289 +211,353 @@ RSpec.describe Asciidoctor::BSI do
199
211
  :function: emc
200
212
  :horizontal: true
201
213
  INPUT
202
- <bibdata type="standard">
203
- <docidentifier type="BS">BS/IETF/ISO/FDTS TS 1000-1-1</docidentifier>
204
- <docidentifier type="iso-tc">2000</docidentifier>
205
- <docnumber>1000</docnumber>
206
- <contributor>
207
- <role type="author"/>
208
- <organization>
209
- <name>British Standards Institute</name>
210
- <abbreviation>BSI</abbreviation>
211
- </organization>
212
- </contributor>
213
- <contributor>
214
- <role type="author"/>
215
- <organization>
216
- <name>IETF</name>
217
- </organization>
218
- </contributor>
219
- <contributor>
220
- <role type="author"/>
221
- <organization>
222
- <name>International Organization for Standardization</name>
223
- <abbreviation>ISO</abbreviation>
224
- </organization>
225
- </contributor>
226
- <contributor>
227
- <role type="publisher"/>
228
- <organization>
229
- <name>British Standards Institute</name>
230
- <abbreviation>BSI</abbreviation>
231
- </organization>
232
- </contributor>
233
- <contributor>
234
- <role type="publisher"/>
235
- <organization>
236
- <name>IETF</name>
237
- </organization>
238
- </contributor>
239
- <contributor>
240
- <role type="publisher"/>
241
- <organization>
242
- <name>International Organization for Standardization</name>
243
- <abbreviation>ISO</abbreviation>
244
- </organization>
245
- </contributor>
246
- <language>el</language>
247
- <script>Grek</script>
248
- <status>
249
- <stage abbreviation="FDTS TS">50</stage>
250
- <substage>00</substage>
251
- </status>
252
- <copyright>
253
- <from>2001</from>
254
- <owner>
255
- <organization>
256
- <name>British Standards Institute</name>
257
- <abbreviation>BSI</abbreviation>
258
- </organization>
259
- </owner>
260
- </copyright>
261
- <copyright>
262
- <from>2001</from>
263
- <owner>
264
- <organization>
265
- <name>IETF</name>
266
- </organization>
267
- </owner>
268
- </copyright>
269
- <copyright>
270
- <from>2001</from>
271
- <owner>
272
- <organization>
273
- <name>International Organization for Standardization</name>
274
- <abbreviation>ISO</abbreviation>
275
- </organization>
276
- </owner>
277
- </copyright>
278
- <ext>
279
- <doctype>technical-specification</doctype>
280
- <editorialgroup>
281
- <technical-committee/>
282
- <subcommittee/>
283
- <workgroup/>
284
- </editorialgroup>
285
- <structuredidentifier>
286
- <project-number part="1" subpart="1">BS/IETF/ISO 1000</project-number>
287
- </structuredidentifier>
288
- <stagename>Final draft</stagename>
289
- </ext>
290
- </bibdata>
214
+ <bibdata type="standard">
215
+ <docidentifier type="BS">BS/IETF/ISO/FDTS TS 1000-1-1</docidentifier>
216
+ <docidentifier type="iso-tc">2000</docidentifier>
217
+ <docnumber>1000</docnumber>
218
+ <contributor>
219
+ <role type="author"/>
220
+ <organization>
221
+ <name>British Standards Institution</name>
222
+ <abbreviation>BSI</abbreviation>
223
+ </organization>
224
+ </contributor>
225
+ <contributor>
226
+ <role type="author"/>
227
+ <organization>
228
+ <name>IETF</name>
229
+ </organization>
230
+ </contributor>
231
+ <contributor>
232
+ <role type="author"/>
233
+ <organization>
234
+ <name>International Organization for Standardization</name>
235
+ <abbreviation>ISO</abbreviation>
236
+ </organization>
237
+ </contributor>
238
+ <contributor>
239
+ <role type="publisher"/>
240
+ <organization>
241
+ <name>British Standards Institution</name>
242
+ <abbreviation>BSI</abbreviation>
243
+ </organization>
244
+ </contributor>
245
+ <contributor>
246
+ <role type="publisher"/>
247
+ <organization>
248
+ <name>IETF</name>
249
+ </organization>
250
+ </contributor>
251
+ <contributor>
252
+ <role type="publisher"/>
253
+ <organization>
254
+ <name>International Organization for Standardization</name>
255
+ <abbreviation>ISO</abbreviation>
256
+ </organization>
257
+ </contributor>
258
+ <language>el</language>
259
+ <script>Grek</script>
260
+ <status>
261
+ <stage abbreviation="FDTS TS">50</stage>
262
+ <substage>00</substage>
263
+ </status>
264
+ <copyright>
265
+ <from>2001</from>
266
+ <owner>
267
+ <organization>
268
+ <name>British Standards Institution</name>
269
+ <abbreviation>BSI</abbreviation>
270
+ </organization>
271
+ </owner>
272
+ </copyright>
273
+ <copyright>
274
+ <from>2001</from>
275
+ <owner>
276
+ <organization>
277
+ <name>IETF</name>
278
+ </organization>
279
+ </owner>
280
+ </copyright>
281
+ <copyright>
282
+ <from>2001</from>
283
+ <owner>
284
+ <organization>
285
+ <name>International Organization for Standardization</name>
286
+ <abbreviation>ISO</abbreviation>
287
+ </organization>
288
+ </owner>
289
+ </copyright>
290
+ <ext>
291
+ <doctype>technical-specification</doctype>
292
+ <editorialgroup>
293
+ <technical-committee/>
294
+ <subcommittee/>
295
+ <workgroup/>
296
+ </editorialgroup>
297
+ <structuredidentifier>
298
+ <project-number part="1" subpart="1">BS/IETF/ISO 1000</project-number>
299
+ </structuredidentifier>
300
+ <stagename>Final draft</stagename>
301
+ </ext>
302
+ </bibdata>
291
303
  OUTPUT
292
304
  end
293
305
 
294
- it "processes adoption of ISO standards" do
295
- VCR.use_cassette "iso-639" do
306
+ it "processes PAS metadata" do
296
307
  expect(xmlpp(strip_guid(Nokogiri::XML(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true)).at("//xmlns:bibdata").to_xml))).to be_equivalent_to xmlpp(<<~"OUTPUT")
297
308
  = Document title
298
309
  Author
299
310
  :docfile: test.adoc
300
- :docnumber: ISO 639
301
- :partnumber: 2
302
311
  :nodoc:
303
312
  :novalid:
304
- :adopted-from: ISO 639-2
313
+ :no-isobib:
314
+ :docnumber: 1000
315
+ :partnumber: 1-1
316
+ :tc-docnumber: 2000
317
+ :language: el
318
+ :script: Grek
305
319
  :copyright-year: 2001
320
+ :docstage: 50
321
+ :doctype: publicly-available-specification
306
322
  INPUT
307
- <bibdata type='standard'>
308
- <docidentifier type='BS'>BS ISO 639-2:2001</docidentifier>
309
- <docnumber>ISO 639</docnumber>
310
- <contributor>
311
- <role type='author'/>
312
- <organization>
313
- <name>British Standards Institute</name>
314
- <abbreviation>BSI</abbreviation>
315
- </organization>
316
- </contributor>
317
- <contributor>
318
- <role type='publisher'/>
319
- <organization>
320
- <name>British Standards Institute</name>
321
- <abbreviation>BSI</abbreviation>
322
- </organization>
323
- </contributor>
324
- <language>en</language>
325
- <script>Latn</script>
326
- <status>
327
- <stage abbreviation='IS'>60</stage>
328
- <substage>60</substage>
329
- </status>
330
- <copyright>
331
- <from>2001</from>
332
- <owner>
333
- <organization>
334
- <name>British Standards Institute</name>
335
- <abbreviation>BSI</abbreviation>
336
- </organization>
337
- </owner>
338
- </copyright>
339
- <relation type='adoptedFrom'>
340
- <bibitem type='standard'>
341
- <fetched>2021-04-25</fetched>
342
- <title type='title-main' format='text/plain' language='en' script='Latn'>Codes for the representation of names of languages</title>
343
- <title type='title-part' format='text/plain' language='en' script='Latn'>Part 2: Alpha-3 code</title>
344
- <title type='main' format='text/plain' language='en' script='Latn'>
345
- Codes for the representation of names of
346
- languages&#8201;&#8212;&#8201;Part 2: Alpha-3 code
347
- </title>
348
- <title type='title-main' format='text/plain' language='fr' script='Latn'>Codes pour la repr&#233;sentation des noms de langue</title>
349
- <title type='title-part' format='text/plain' language='fr' script='Latn'>Partie 2: Code alpha-3</title>
350
- <title type='main' format='text/plain' language='fr' script='Latn'>
351
- Codes pour la repr&#233;sentation des noms de
352
- langue&#8201;&#8212;&#8201;Partie 2: Code alpha-3
353
- </title>
354
- <uri type='src'>https://www.iso.org/standard/4767.html</uri>
355
- <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:4767:en</uri>
356
- <uri type='rss'>https://www.iso.org/contents/data/standard/00/47/4767.detail.rss</uri>
357
- <docidentifier type='ISO'>ISO 639-2</docidentifier>
358
- <docidentifier type='URN'>urn:iso:std:iso:639:-2:stage-90.20:ed-1:en,fr</docidentifier>
359
- <docnumber>639</docnumber>
360
- <contributor>
361
- <role type='publisher'/>
362
- <organization>
363
- <name>International Organization for Standardization</name>
364
- <abbreviation>ISO</abbreviation>
365
- <uri>www.iso.org</uri>
366
- </organization>
367
- </contributor>
368
- <edition>1</edition>
369
- <language>en</language>
370
- <language>fr</language>
371
- <script>Latn</script>
372
- <status>
373
- <stage>90</stage>
374
- <substage>20</substage>
375
- </status>
376
- <copyright>
377
- <from>1998</from>
378
- <owner>
323
+ <bibdata type='standard'>
324
+ <docidentifier type='BS'>BS/FDIS PAS 1000-1-1</docidentifier>
325
+ <docidentifier type='iso-tc'>2000</docidentifier>
326
+ <docnumber>1000</docnumber>
327
+ <contributor>
328
+ <role type='author'/>
329
+ <organization>
330
+ <name>British Standards Institution</name>
331
+ <abbreviation>BSI</abbreviation>
332
+ </organization>
333
+ </contributor>
334
+ <contributor>
335
+ <role type='publisher'/>
379
336
  <organization>
380
- <name>ISO</name>
337
+ <name>British Standards Institution</name>
338
+ <abbreviation>BSI</abbreviation>
381
339
  </organization>
382
- </owner>
383
- </copyright>
384
- <relation type='instance'>
385
- <bibitem type='standard'>
386
- <fetched>2021-04-25</fetched>
387
- <title type='title-main' format='text/plain' language='en' script='Latn'>Codes for the representation of names of languages</title>
388
- <title type='title-part' format='text/plain' language='en' script='Latn'>Part 2: Alpha-3 code</title>
389
- <title type='main' format='text/plain' language='en' script='Latn'>
390
- Codes for the representation of names of
391
- languages&#8201;&#8212;&#8201;Part 2: Alpha-3 code
392
- </title>
393
- <title type='title-main' format='text/plain' language='fr' script='Latn'>Codes pour la repr&#233;sentation des noms de langue</title>
394
- <title type='title-part' format='text/plain' language='fr' script='Latn'>Partie 2: Code alpha-3</title>
395
- <title type='main' format='text/plain' language='fr' script='Latn'>
396
- Codes pour la repr&#233;sentation des noms de
397
- langue&#8201;&#8212;&#8201;Partie 2: Code alpha-3
398
- </title>
399
- <uri type='src'>https://www.iso.org/standard/4767.html</uri>
400
- <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:4767:en</uri>
401
- <uri type='rss'>https://www.iso.org/contents/data/standard/00/47/4767.detail.rss</uri>
402
- <docidentifier type='ISO'>ISO 639-2:1998</docidentifier>
403
- <docidentifier type='URN'>urn:iso:std:iso:639:-2:stage-90.20:ed-1:en,fr</docidentifier>
404
- <docnumber>639</docnumber>
405
- <date type='published'>
406
- <on>1998-11</on>
407
- </date>
340
+ </contributor>
341
+ <language>el</language>
342
+ <script>Grek</script>
343
+ <status>
344
+ <stage abbreviation='FDIS PAS'>50</stage>
345
+ <substage>00</substage>
346
+ </status>
347
+ <copyright>
348
+ <from>2001</from>
349
+ <owner>
350
+ <organization>
351
+ <name>British Standards Institution</name>
352
+ <abbreviation>BSI</abbreviation>
353
+ </organization>
354
+ </owner>
355
+ </copyright>
356
+ <ext>
357
+ <doctype>publicly-available-specification</doctype>
358
+ <editorialgroup>
359
+ <technical-committee/>
360
+ <subcommittee/>
361
+ <workgroup/>
362
+ </editorialgroup>
363
+ <structuredidentifier>
364
+ <project-number part='1' subpart='1'>BS 1000</project-number>
365
+ </structuredidentifier>
366
+ <stagename>Final draft</stagename>
367
+ </ext>
368
+ </bibdata>
369
+ OUTPUT
370
+ end
371
+
372
+ it "processes adoption of ISO standards" do
373
+ VCR.use_cassette "iso-639" do
374
+ expect(xmlpp(strip_guid(Nokogiri::XML(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true)).at("//xmlns:bibdata").to_xml.gsub(%r{<fetched>[^<]+</fetched>}, "")))).to be_equivalent_to xmlpp(<<~"OUTPUT")
375
+ = Document title
376
+ Author
377
+ :docfile: test.adoc
378
+ :docnumber: ISO 639
379
+ :partnumber: 2
380
+ :nodoc:
381
+ :novalid:
382
+ :adopted-from: ISO 639-2
383
+ :copyright-year: 2001
384
+ INPUT
385
+ <bibdata type='standard'>
386
+ <docidentifier type='BS'>BS ISO 639-2:2001</docidentifier>
387
+ <docnumber>ISO 639</docnumber>
388
+ <contributor>
389
+ <role type='author'/>
390
+ <organization>
391
+ <name>British Standards Institution</name>
392
+ <abbreviation>BSI</abbreviation>
393
+ </organization>
394
+ </contributor>
408
395
  <contributor>
409
396
  <role type='publisher'/>
410
397
  <organization>
411
- <name>International Organization for Standardization</name>
412
- <abbreviation>ISO</abbreviation>
413
- <uri>www.iso.org</uri>
398
+ <name>British Standards Institution</name>
399
+ <abbreviation>BSI</abbreviation>
414
400
  </organization>
415
401
  </contributor>
416
- <edition>1</edition>
417
402
  <language>en</language>
418
- <language>fr</language>
419
403
  <script>Latn</script>
420
- <abstract format='text/plain' language='fr' script='Latn'>
421
- La pr&#233;sente partie de l&#8217;ISO 639 fournit deux jeux de
422
- codets &#224; trois caract&#232;res pour la repr&#233;sentation des
423
- noms de langue, l&#8217;un destin&#233; &#224; des applications en
424
- terminologie, l&#8217;autre destin&#233; &#224; des applications
425
- bibliographiques. Les deux jeux de codets sont les m&#234;mes,
426
- except&#233; pour vingt-cinq langues qui ont des codets
427
- diff&#233;rents &#224; cause du crit&#232;re utilis&#233; pour les
428
- former . &#192; l&#8217;origine, des codets de langues ont
429
- &#233;t&#233; cr&#233;&#233;s &#224; l&#8217;usage des
430
- biblioth&#232;ques, des services documentaires et des &#233;diteurs,
431
- pour indiquer la langue dans l&#8217;&#233;change
432
- d&#8217;information, particuli&#232;rement entre des syst&#232;mes
433
- informatis&#233;s. Ces codets ont &#233;t&#233; utilis&#233;s
434
- largement &#224; l&#8217;int&#233;rieur de la communaut&#233; des
435
- biblioth&#232;ques, et ils peuvent &#234;tre adopt&#233;s pour toute
436
- application qui requiert l&#8217;expression de la langue sous forme
437
- cod&#233;e, en terminologie ou en lexicographie. Le code alpha-2 a
438
- &#233;t&#233; cr&#233;&#233; pour un usage pratique pour la plupart
439
- des grandes langues du monde, langues qui sont les plus souvent
440
- repr&#233;sent&#233;es dans le corpus de la litt&#233;rature
441
- mondiale. De nouveaux codets sont cr&#233;&#233;s quand il devient
442
- &#233;vident qu&#8217;il existe un corpus significatif de
443
- litt&#233;rature dans une langue particuli&#232;re. Les langages
444
- cr&#233;&#233;s pour &#234;tre utilis&#233;s exclusivement par des
445
- machines, comme les langages de programmation, ne sont pas inclus
446
- dans le pr&#233;sent code.
447
- </abstract>
448
404
  <status>
449
- <stage>90</stage>
450
- <substage>20</substage>
405
+ <stage abbreviation='IS'>60</stage>
406
+ <substage>60</substage>
451
407
  </status>
452
408
  <copyright>
453
- <from>1998</from>
409
+ <from>2001</from>
454
410
  <owner>
455
411
  <organization>
456
- <name>ISO</name>
412
+ <name>British Standards Institution</name>
413
+ <abbreviation>BSI</abbreviation>
457
414
  </organization>
458
415
  </owner>
459
416
  </copyright>
460
- <place>Geneva</place>
461
- </bibitem>
462
- </relation>
463
- <place>Geneva</place>
464
- </bibitem>
465
- </relation>
466
- <ext>
467
- <doctype>article</doctype>
468
- <editorialgroup>
469
- <technical-committee/>
470
- <subcommittee/>
471
- <workgroup/>
472
- </editorialgroup>
473
- <structuredidentifier>
474
- <project-number part='2'>BS ISO 639</project-number>
475
- </structuredidentifier>
476
- <stagename>International standard</stagename>
477
- </ext>
478
- </bibdata>
479
- OUTPUT
480
- end
417
+ <relation type='adoptedFrom'>
418
+ <bibitem type='standard'>
419
+ <title type='title-main' format='text/plain' language='en' script='Latn'>Codes for the representation of names of languages</title>
420
+ <title type='title-part' format='text/plain' language='en' script='Latn'>Part 2: Alpha-3 code</title>
421
+ <title type='main' format='text/plain' language='en' script='Latn'>
422
+ Codes for the representation of names of
423
+ languages&#8201;&#8212;&#8201;Part 2: Alpha-3 code
424
+ </title>
425
+ <title type='title-main' format='text/plain' language='fr' script='Latn'>Codes pour la repr&#233;sentation des noms de langue</title>
426
+ <title type='title-part' format='text/plain' language='fr' script='Latn'>Partie 2: Code alpha-3</title>
427
+ <title type='main' format='text/plain' language='fr' script='Latn'>
428
+ Codes pour la repr&#233;sentation des noms de
429
+ langue&#8201;&#8212;&#8201;Partie 2: Code alpha-3
430
+ </title>
431
+ <uri type='src'>https://www.iso.org/standard/4767.html</uri>
432
+ <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:4767:en</uri>
433
+ <uri type='rss'>https://www.iso.org/contents/data/standard/00/47/4767.detail.rss</uri>
434
+ <docidentifier type='ISO'>ISO 639-2</docidentifier>
435
+ <docidentifier type='URN'>urn:iso:std:iso:639:-2:stage-90.20:ed-1:en,fr</docidentifier>
436
+ <docnumber>639</docnumber>
437
+ <contributor>
438
+ <role type='publisher'/>
439
+ <organization>
440
+ <name>International Organization for Standardization</name>
441
+ <abbreviation>ISO</abbreviation>
442
+ <uri>www.iso.org</uri>
443
+ </organization>
444
+ </contributor>
445
+ <edition>1</edition>
446
+ <language>en</language>
447
+ <language>fr</language>
448
+ <script>Latn</script>
449
+ <status>
450
+ <stage>90</stage>
451
+ <substage>20</substage>
452
+ </status>
453
+ <copyright>
454
+ <from>1998</from>
455
+ <owner>
456
+ <organization>
457
+ <name>ISO</name>
458
+ </organization>
459
+ </owner>
460
+ </copyright>
461
+ <relation type='instance'>
462
+ <bibitem type='standard'>
463
+ <title type='title-main' format='text/plain' language='en' script='Latn'>Codes for the representation of names of languages</title>
464
+ <title type='title-part' format='text/plain' language='en' script='Latn'>Part 2: Alpha-3 code</title>
465
+ <title type='main' format='text/plain' language='en' script='Latn'>
466
+ Codes for the representation of names of
467
+ languages&#8201;&#8212;&#8201;Part 2: Alpha-3 code
468
+ </title>
469
+ <title type='title-main' format='text/plain' language='fr' script='Latn'>Codes pour la repr&#233;sentation des noms de langue</title>
470
+ <title type='title-part' format='text/plain' language='fr' script='Latn'>Partie 2: Code alpha-3</title>
471
+ <title type='main' format='text/plain' language='fr' script='Latn'>
472
+ Codes pour la repr&#233;sentation des noms de
473
+ langue&#8201;&#8212;&#8201;Partie 2: Code alpha-3
474
+ </title>
475
+ <uri type='src'>https://www.iso.org/standard/4767.html</uri>
476
+ <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:4767:en</uri>
477
+ <uri type='rss'>https://www.iso.org/contents/data/standard/00/47/4767.detail.rss</uri>
478
+ <docidentifier type='ISO'>ISO 639-2:1998</docidentifier>
479
+ <docidentifier type='URN'>urn:iso:std:iso:639:-2:stage-90.20:ed-1:en,fr</docidentifier>
480
+ <docnumber>639</docnumber>
481
+ <date type='published'>
482
+ <on>1998-11</on>
483
+ </date>
484
+ <contributor>
485
+ <role type='publisher'/>
486
+ <organization>
487
+ <name>International Organization for Standardization</name>
488
+ <abbreviation>ISO</abbreviation>
489
+ <uri>www.iso.org</uri>
490
+ </organization>
491
+ </contributor>
492
+ <edition>1</edition>
493
+ <language>en</language>
494
+ <language>fr</language>
495
+ <script>Latn</script>
496
+ <abstract format='text/plain' language='fr' script='Latn'>
497
+ La pr&#233;sente partie de l&#8217;ISO 639 fournit deux jeux de
498
+ codets &#224; trois caract&#232;res pour la repr&#233;sentation des
499
+ noms de langue, l&#8217;un destin&#233; &#224; des applications en
500
+ terminologie, l&#8217;autre destin&#233; &#224; des applications
501
+ bibliographiques. Les deux jeux de codets sont les m&#234;mes,
502
+ except&#233; pour vingt-cinq langues qui ont des codets
503
+ diff&#233;rents &#224; cause du crit&#232;re utilis&#233; pour les
504
+ former . &#192; l&#8217;origine, des codets de langues ont
505
+ &#233;t&#233; cr&#233;&#233;s &#224; l&#8217;usage des
506
+ biblioth&#232;ques, des services documentaires et des &#233;diteurs,
507
+ pour indiquer la langue dans l&#8217;&#233;change
508
+ d&#8217;information, particuli&#232;rement entre des syst&#232;mes
509
+ informatis&#233;s. Ces codets ont &#233;t&#233; utilis&#233;s
510
+ largement &#224; l&#8217;int&#233;rieur de la communaut&#233; des
511
+ biblioth&#232;ques, et ils peuvent &#234;tre adopt&#233;s pour toute
512
+ application qui requiert l&#8217;expression de la langue sous forme
513
+ cod&#233;e, en terminologie ou en lexicographie. Le code alpha-2 a
514
+ &#233;t&#233; cr&#233;&#233; pour un usage pratique pour la plupart
515
+ des grandes langues du monde, langues qui sont les plus souvent
516
+ repr&#233;sent&#233;es dans le corpus de la litt&#233;rature
517
+ mondiale. De nouveaux codets sont cr&#233;&#233;s quand il devient
518
+ &#233;vident qu&#8217;il existe un corpus significatif de
519
+ litt&#233;rature dans une langue particuli&#232;re. Les langages
520
+ cr&#233;&#233;s pour &#234;tre utilis&#233;s exclusivement par des
521
+ machines, comme les langages de programmation, ne sont pas inclus
522
+ dans le pr&#233;sent code.
523
+ </abstract>
524
+ <status>
525
+ <stage>90</stage>
526
+ <substage>20</substage>
527
+ </status>
528
+ <copyright>
529
+ <from>1998</from>
530
+ <owner>
531
+ <organization>
532
+ <name>ISO</name>
533
+ </organization>
534
+ </owner>
535
+ </copyright>
536
+ <place>Geneva</place>
537
+ </bibitem>
538
+ </relation>
539
+ <place>Geneva</place>
540
+ </bibitem>
541
+ </relation>
542
+ <ext>
543
+ <doctype>article</doctype>
544
+ <editorialgroup>
545
+ <technical-committee/>
546
+ <subcommittee/>
547
+ <workgroup/>
548
+ </editorialgroup>
549
+ <structuredidentifier>
550
+ <project-number part='2'>BS ISO 639</project-number>
551
+ </structuredidentifier>
552
+ <stagename>International standard</stagename>
553
+ </ext>
554
+ </bibdata>
555
+ OUTPUT
556
+ end
481
557
  end
482
558
 
483
559
  it "processes boilerplate in English" do
484
- doc = (strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true)))
560
+ doc = strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true))
485
561
  = Document title
486
562
  Author
487
563
  :docfile: test.adoc
@@ -496,10 +572,10 @@ RSpec.describe Asciidoctor::BSI do
496
572
  :publisher: IEC,IETF,ISO
497
573
  :copyright-year: 2001
498
574
  INPUT
499
- expect(doc).to include "Unless otherwise specified"
500
- end
575
+ expect(doc).to include "BSI is the national body responsible for preparing British Standards"
576
+ end
501
577
 
502
- it "defaults substage" do
578
+ it "defaults substage" do
503
579
  expect(xmlpp(strip_guid(Nokogiri::XML(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true)).at("//xmlns:bibdata").to_xml))).to be_equivalent_to xmlpp(<<~"OUTPUT")
504
580
  = Document title
505
581
  Author
@@ -510,56 +586,55 @@ RSpec.describe Asciidoctor::BSI do
510
586
  :docnumber: 1000
511
587
  :docstage: 50
512
588
  INPUT
513
- <bibdata type="standard">
514
- <docidentifier type="BS">BS/FDIS 1000</docidentifier>
515
- <docnumber>1000</docnumber>
516
- <contributor>
517
- <role type="author"/>
518
- <organization>
519
- <name>British Standards Institute</name>
520
- <abbreviation>BSI</abbreviation>
521
- </organization>
522
- </contributor>
523
- <contributor>
524
- <role type="publisher"/>
525
- <organization>
526
- <name>British Standards Institute</name>
527
- <abbreviation>BSI</abbreviation>
528
- </organization>
529
- </contributor>
530
-
531
- <language>en</language>
532
- <script>Latn</script>
533
- <status>
534
- <stage abbreviation="FDIS">50</stage>
535
- <substage>00</substage>
536
- </status>
537
- <copyright>
538
- <from>#{Date.today.year}</from>
539
- <owner>
540
- <organization>
541
- <name>British Standards Institute</name>
542
- <abbreviation>BSI</abbreviation>
543
- </organization>
544
- </owner>
545
- </copyright>
546
- <ext>
547
- <doctype>article</doctype>
548
- <editorialgroup>
549
- <technical-committee/>
550
- <subcommittee/>
551
- <workgroup/>
552
- </editorialgroup>
553
- <structuredidentifier>
554
- <project-number>BS 1000</project-number>
555
- </structuredidentifier>
556
- <stagename>Final draft</stagename>
557
- </ext>
558
- </bibdata>
559
- OUTPUT
560
- end
589
+ <bibdata type="standard">
590
+ <docidentifier type="BS">BS/FDIS 1000</docidentifier>
591
+ <docnumber>1000</docnumber>
592
+ <contributor>
593
+ <role type="author"/>
594
+ <organization>
595
+ <name>British Standards Institution</name>
596
+ <abbreviation>BSI</abbreviation>
597
+ </organization>
598
+ </contributor>
599
+ <contributor>
600
+ <role type="publisher"/>
601
+ <organization>
602
+ <name>British Standards Institution</name>
603
+ <abbreviation>BSI</abbreviation>
604
+ </organization>
605
+ </contributor>
606
+ <language>en</language>
607
+ <script>Latn</script>
608
+ <status>
609
+ <stage abbreviation="FDIS">50</stage>
610
+ <substage>00</substage>
611
+ </status>
612
+ <copyright>
613
+ <from>#{Date.today.year}</from>
614
+ <owner>
615
+ <organization>
616
+ <name>British Standards Institution</name>
617
+ <abbreviation>BSI</abbreviation>
618
+ </organization>
619
+ </owner>
620
+ </copyright>
621
+ <ext>
622
+ <doctype>article</doctype>
623
+ <editorialgroup>
624
+ <technical-committee/>
625
+ <subcommittee/>
626
+ <workgroup/>
627
+ </editorialgroup>
628
+ <structuredidentifier>
629
+ <project-number>BS 1000</project-number>
630
+ </structuredidentifier>
631
+ <stagename>Final draft</stagename>
632
+ </ext>
633
+ </bibdata>
634
+ OUTPUT
635
+ end
561
636
 
562
- it "defaults substage for stage 60" do
637
+ it "defaults substage for stage 60" do
563
638
  expect(xmlpp(strip_guid(Nokogiri::XML(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true)).at("//xmlns:bibdata").to_xml))).to be_equivalent_to xmlpp(<<~"OUTPUT")
564
639
  = Document title
565
640
  Author
@@ -570,54 +645,53 @@ OUTPUT
570
645
  :docnumber: 1000
571
646
  :docstage: 60
572
647
  INPUT
573
- <bibdata type="standard">
574
- <docidentifier type="BS">BS 1000</docidentifier>
575
- <docnumber>1000</docnumber>
576
- <contributor>
577
- <role type="author"/>
578
- <organization>
579
- <name>British Standards Institute</name>
580
- <abbreviation>BSI</abbreviation>
581
- </organization>
582
- </contributor>
583
- <contributor>
584
- <role type="publisher"/>
585
- <organization>
586
- <name>British Standards Institute</name>
587
- <abbreviation>BSI</abbreviation>
588
- </organization>
589
- </contributor>
590
-
591
- <language>en</language>
592
- <script>Latn</script>
593
- <status>
594
- <stage abbreviation='IS'>60</stage>
595
- <substage>60</substage>
596
- </status>
597
- <copyright>
598
- <from>#{Date.today.year}</from>
599
- <owner>
600
- <organization>
601
- <name>British Standards Institute</name>
602
- <abbreviation>BSI</abbreviation>
603
- </organization>
604
- </owner>
605
- </copyright>
606
- <ext>
607
- <doctype>article</doctype>
608
- <editorialgroup>
609
- <technical-committee/>
610
- <subcommittee/>
611
- <workgroup/>
612
- </editorialgroup>
613
- <structuredidentifier>
614
- <project-number>BS 1000</project-number>
615
- </structuredidentifier>
616
- <stagename>International standard</stagename>
617
- </ext>
618
- </bibdata>
619
- OUTPUT
620
- end
648
+ <bibdata type="standard">
649
+ <docidentifier type="BS">BS 1000</docidentifier>
650
+ <docnumber>1000</docnumber>
651
+ <contributor>
652
+ <role type="author"/>
653
+ <organization>
654
+ <name>British Standards Institution</name>
655
+ <abbreviation>BSI</abbreviation>
656
+ </organization>
657
+ </contributor>
658
+ <contributor>
659
+ <role type="publisher"/>
660
+ <organization>
661
+ <name>British Standards Institution</name>
662
+ <abbreviation>BSI</abbreviation>
663
+ </organization>
664
+ </contributor>
665
+ <language>en</language>
666
+ <script>Latn</script>
667
+ <status>
668
+ <stage abbreviation='IS'>60</stage>
669
+ <substage>60</substage>
670
+ </status>
671
+ <copyright>
672
+ <from>#{Date.today.year}</from>
673
+ <owner>
674
+ <organization>
675
+ <name>British Standards Institution</name>
676
+ <abbreviation>BSI</abbreviation>
677
+ </organization>
678
+ </owner>
679
+ </copyright>
680
+ <ext>
681
+ <doctype>article</doctype>
682
+ <editorialgroup>
683
+ <technical-committee/>
684
+ <subcommittee/>
685
+ <workgroup/>
686
+ </editorialgroup>
687
+ <structuredidentifier>
688
+ <project-number>BS 1000</project-number>
689
+ </structuredidentifier>
690
+ <stagename>International standard</stagename>
691
+ </ext>
692
+ </bibdata>
693
+ OUTPUT
694
+ end
621
695
 
622
696
  it "populates metadata for PRF" do
623
697
  expect(xmlpp(strip_guid(Nokogiri::XML(Asciidoctor.convert(<<~"INPUT", backend: :bsi, header_footer: true)).at("//xmlns:bibdata").to_xml))).to be_equivalent_to xmlpp(<<~"OUTPUT")
@@ -631,55 +705,53 @@ OUTPUT
631
705
  :docstage: 60
632
706
  :docsubstage: 00
633
707
  INPUT
634
- <bibdata type="standard">
635
- <docidentifier type="BS">BS 1000</docidentifier>
636
- <docnumber>1000</docnumber>
637
- <contributor>
638
- <role type="author"/>
639
- <organization>
640
- <name>British Standards Institute</name>
641
- <abbreviation>BSI</abbreviation>
642
- </organization>
643
- </contributor>
644
- <contributor>
645
- <role type="publisher"/>
646
- <organization>
647
- <name>British Standards Institute</name>
648
- <abbreviation>BSI</abbreviation>
649
- </organization>
650
- </contributor>
651
-
652
- <language>en</language>
653
- <script>Latn</script>
654
- <status>
655
- <stage abbreviation='PRF'>60</stage>
656
- <substage>00</substage>
657
- </status>
658
- <copyright>
659
- <from>#{Date.today.year}</from>
660
- <owner>
661
- <organization>
662
- <name>British Standards Institute</name>
663
- <abbreviation>BSI</abbreviation>
664
- </organization>
665
- </owner>
666
- </copyright>
667
- <ext>
668
- <doctype>article</doctype>
669
- <editorialgroup>
670
- <technical-committee/>
671
- <subcommittee/>
672
- <workgroup/>
673
- </editorialgroup>
674
- <structuredidentifier>
675
- <project-number>BS 1000</project-number>
676
- </structuredidentifier>
677
- <stagename>Proof</stagename>
678
- </ext>
679
- </bibdata>
680
- OUTPUT
681
- end
682
-
708
+ <bibdata type="standard">
709
+ <docidentifier type="BS">BS 1000</docidentifier>
710
+ <docnumber>1000</docnumber>
711
+ <contributor>
712
+ <role type="author"/>
713
+ <organization>
714
+ <name>British Standards Institution</name>
715
+ <abbreviation>BSI</abbreviation>
716
+ </organization>
717
+ </contributor>
718
+ <contributor>
719
+ <role type="publisher"/>
720
+ <organization>
721
+ <name>British Standards Institution</name>
722
+ <abbreviation>BSI</abbreviation>
723
+ </organization>
724
+ </contributor>
725
+ <language>en</language>
726
+ <script>Latn</script>
727
+ <status>
728
+ <stage abbreviation='PRF'>60</stage>
729
+ <substage>00</substage>
730
+ </status>
731
+ <copyright>
732
+ <from>#{Date.today.year}</from>
733
+ <owner>
734
+ <organization>
735
+ <name>British Standards Institution</name>
736
+ <abbreviation>BSI</abbreviation>
737
+ </organization>
738
+ </owner>
739
+ </copyright>
740
+ <ext>
741
+ <doctype>article</doctype>
742
+ <editorialgroup>
743
+ <technical-committee/>
744
+ <subcommittee/>
745
+ <workgroup/>
746
+ </editorialgroup>
747
+ <structuredidentifier>
748
+ <project-number>BS 1000</project-number>
749
+ </structuredidentifier>
750
+ <stagename>Proof</stagename>
751
+ </ext>
752
+ </bibdata>
753
+ OUTPUT
754
+ end
683
755
 
684
756
  it "reads scripts into blank HTML document" do
685
757
  FileUtils.rm_f "test.html"
@@ -709,9 +781,9 @@ OUTPUT
709
781
  expect(html)
710
782
  .to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
711
783
  expect(html)
712
- .to match(%r[blockquote[^{]+\{[^{]+font-family: "Tahoma", sans-serif;]m)
784
+ .to match(%r[blockquote[^{]+\{[^{]+font-family: "Gesta", "Tahoma", sans-serif;]m)
713
785
  expect(html)
714
- .to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Tahoma", sans-serif;]m)
786
+ .to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Gesta", "Tahoma", sans-serif;]m)
715
787
  end
716
788
 
717
789
  it "uses Chinese fonts" do
@@ -773,6 +845,4 @@ OUTPUT
773
845
  expect(word).to match(%r[mso-style-name: "Intro Title";]m)
774
846
  expect(html).not_to match(%r[mso-style-name: "Intro Title";]m)
775
847
  end
776
-
777
-
778
848
  end