metanorma-standoc 1.3.24 → 1.3.25

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +2 -1
  3. data/.github/workflows/ubuntu.yml +5 -3
  4. data/.github/workflows/windows.yml +0 -1
  5. data/lib/asciidoctor/standoc/base.rb +22 -8
  6. data/lib/asciidoctor/standoc/biblio.rng +53 -26
  7. data/lib/asciidoctor/standoc/cleanup.rb +8 -7
  8. data/lib/asciidoctor/standoc/cleanup_inline.rb +3 -0
  9. data/lib/asciidoctor/standoc/cleanup_ref.rb +4 -0
  10. data/lib/asciidoctor/standoc/cleanup_section.rb +21 -6
  11. data/lib/asciidoctor/standoc/front.rb +5 -3
  12. data/lib/asciidoctor/standoc/inline.rb +42 -17
  13. data/lib/asciidoctor/standoc/isodoc.rng +28 -1
  14. data/lib/asciidoctor/standoc/macros.rb +2 -1
  15. data/lib/asciidoctor/standoc/macros_yaml2text.rb +142 -0
  16. data/lib/asciidoctor/standoc/ref.rb +5 -3
  17. data/lib/asciidoctor/standoc/section.rb +5 -0
  18. data/lib/asciidoctor/standoc/utils.rb +2 -11
  19. data/lib/metanorma/standoc/latexml_requirement.rb +14 -12
  20. data/lib/metanorma/standoc/version.rb +1 -1
  21. data/metanorma-standoc.gemspec +2 -2
  22. data/spec/asciidoctor-standoc/base_spec.rb +8 -0
  23. data/spec/asciidoctor-standoc/blocks_spec.rb +56 -1
  24. data/spec/asciidoctor-standoc/cleanup_spec.rb +26 -2
  25. data/spec/asciidoctor-standoc/inline_spec.rb +3 -2
  26. data/spec/asciidoctor-standoc/macros_spec.rb +4 -4
  27. data/spec/asciidoctor-standoc/macros_yaml2text_spec.rb +564 -0
  28. data/spec/asciidoctor-standoc/refs_spec.rb +234 -146
  29. data/spec/asciidoctor-standoc/section_spec.rb +58 -0
  30. data/spec/asciidoctor-standoc/validate_spec.rb +34 -0
  31. data/spec/assets/codes.yml +695 -0
  32. data/spec/examples/codes_table.html +3174 -0
  33. data/spec/metanorma/processor_spec.rb +2 -2
  34. data/spec/spec_helper.rb +1 -0
  35. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +71 -265
  36. data/spec/vcr_cassettes/isobib_get_123.yml +38 -84
  37. data/spec/vcr_cassettes/isobib_get_123_2001.yml +20 -43
  38. data/spec/vcr_cassettes/isobib_get_124.yml +19 -101
  39. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +8 -8
  40. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +35 -35
  41. metadata +10 -6
@@ -20,6 +20,7 @@ RSpec.describe Asciidoctor::Standoc do
20
20
  <bibitem id="iso123" type="standard">
21
21
  <title format="text/plain">Standard</title>
22
22
  <docidentifier>ISO 123</docidentifier>
23
+ <docnumber>123</docnumber>
23
24
  <contributor>
24
25
  <role type="publisher"/>
25
26
  <organization>
@@ -31,6 +32,7 @@ RSpec.describe Asciidoctor::Standoc do
31
32
  <title format='text/plain'>Standard</title>
32
33
  <docidentifier type='metanorma'>[1]</docidentifier>
33
34
  <docidentifier>ISO 123</docidentifier>
35
+ <docnumber>123</docnumber>
34
36
  <contributor>
35
37
  <role type='publisher'/>
36
38
  <organization>
@@ -61,6 +63,7 @@ RSpec.describe Asciidoctor::Standoc do
61
63
  <bibitem id="iso123" type="standard">
62
64
  <title format="text/plain">Standard</title>
63
65
  <docidentifier>ISO 123:1066-1067</docidentifier>
66
+ <docnumber>123</docnumber>
64
67
  <date type="published">
65
68
  <from>1066</from>
66
69
  <to>1067</to>
@@ -76,6 +79,7 @@ RSpec.describe Asciidoctor::Standoc do
76
79
  <title format="text/plain">Standard</title>
77
80
  <docidentifier type='metanorma'>[1]</docidentifier>
78
81
  <docidentifier>ISO 123:1066-1067</docidentifier>
82
+ <docnumber>123</docnumber>
79
83
  <date type="published">
80
84
  <from>1066</from>
81
85
  <to>1067</to>
@@ -234,155 +238,223 @@ RSpec.describe Asciidoctor::Standoc do
234
238
 
235
239
  </sections><bibliography><references id="_" obligation="informative"><title>Normative References</title>
236
240
  #{NORM_REF_BOILERPLATE}
237
- <bibitem id="iso123" type="standard">
238
- <fetched>#{Date.today}</fetched>
239
- <title type="title-intro" format="text/plain" language="en" script="Latn">Rubber latex</title>
240
- <title type="title-main" format="text/plain" language="en" script="Latn">Sampling</title>
241
- <title type="main" format="text/plain" language="en" script="Latn">Rubber latex – Sampling</title>
242
- <title type="title-intro" format="text/plain" language="fr" script="Latn">Latex de caoutchouc</title>
243
- <title type="title-main" format="text/plain" language="fr" script="Latn">Échantillonnage</title>
244
- <title type="main" format="text/plain" language="fr" script="Latn">Latex de caoutchouc – Échantillonnage</title>
245
- <uri type="src">https://www.iso.org/standard/23281.html</uri>
246
- <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
247
- <uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
248
- <docidentifier type="ISO">ISO 123:2001</docidentifier>
249
- <docnumber>123</docnumber>
250
- <date type="published">
251
- <on>2001</on>
252
- </date>
253
- <contributor>
254
- <role type="publisher"/>
255
- <organization>
256
- <name>International Organization for Standardization</name>
257
- <abbreviation>ISO</abbreviation>
258
- <uri>www.iso.org</uri>
259
- </organization>
260
- </contributor>
261
- <edition>3</edition>
262
- <language>en</language>
263
- <language>fr</language>
264
- <script>Latn</script>
265
- <status>
266
- <stage>90</stage>
267
- <substage>93</substage>
268
- </status>
269
- <copyright>
270
- <from>2001</from>
271
- <owner>
272
- <organization>
273
- <name>ISO</name>
274
- </organization>
275
- </owner>
276
- </copyright>
277
- <relation type="obsoletes">
278
- <bibitem type="standard">
279
- <formattedref format="text/plain">ISO 123:1985</formattedref>
280
- </bibitem>
281
- </relation>
282
- <place>Geneva</place>
283
- </bibitem>
284
- <bibitem id="iso123" type="standard">
285
- <fetched>#{Date.today}</fetched>
286
- <title type="title-intro" format="text/plain" language="en" script="Latn">Rubber latex</title>
287
- <title type="title-main" format="text/plain" language="en" script="Latn">Sampling</title>
288
- <title type="main" format="text/plain" language="en" script="Latn">Rubber latex – Sampling</title>
289
- <title type="title-intro" format="text/plain" language="fr" script="Latn">Latex de caoutchouc</title>
290
- <title type="title-main" format="text/plain" language="fr" script="Latn">Échantillonnage</title>
291
- <title type="main" format="text/plain" language="fr" script="Latn">Latex de caoutchouc – Échantillonnage</title>
292
- <uri type="src">https://www.iso.org/standard/23281.html</uri>
293
- <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
294
- <uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
295
- <docidentifier type="ISO">ISO 123:2001</docidentifier>
296
- <docidentifier type='metanorma'>[1]</docidentifier>
297
- <docnumber>123</docnumber>
298
- <date type="published">
299
- <on>2001</on>
300
- </date>
301
- <contributor>
302
- <role type="publisher"/>
303
- <organization>
304
- <name>International Organization for Standardization</name>
305
- <abbreviation>ISO</abbreviation>
306
- <uri>www.iso.org</uri>
307
- </organization>
308
- </contributor>
309
- <edition>3</edition>
310
- <language>en</language>
311
- <language>fr</language>
312
- <script>Latn</script>
313
- <status>
314
- <stage>90</stage>
315
- <substage>93</substage>
316
- </status>
317
- <copyright>
318
- <from>2001</from>
319
- <owner>
320
- <organization>
321
- <name>ISO</name>
322
- </organization>
323
- </owner>
324
- </copyright>
325
- <relation type="obsoletes">
326
- <bibitem type="standard">
327
- <formattedref format="text/plain">ISO 123:1985</formattedref>
328
- </bibitem>
329
- </relation>
330
- <place>Geneva</place>
331
- </bibitem>
332
- </references></bibliography>
333
- </standard-document>
334
- OUTPUT
335
- =begin
336
- <relation type="instance">
337
- <bibitem type="standard">
338
- <fetched>#{Date.today}</fetched>
339
- <title type="title-main" format="text/plain" language="en" script="Latn">Rubber latex – Sampling</title>
340
- <title type="main" format="text/plain" language="en" script="Latn">Rubber latex – Sampling</title>
341
- <title type="title-main" format="text/plain" language="fr" script="Latn">Latex de caoutchouc – Échantillonnage</title>
342
- <title type="main" format="text/plain" language="fr" script="Latn">Latex de caoutchouc – Échantillonnage</title>
343
- <uri type="src">https://www.iso.org/standard/23281.html</uri>
344
- <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
345
- <uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
346
- <docidentifier type="ISO">ISO 123:2001</docidentifier>
347
- <docnumber>123</docnumber>
348
- <date type="published">
349
- <on>2001</on>
350
- </date>
351
- <contributor>
352
- <role type="publisher"/>
353
- <organization>
354
- <name>International Organization for Standardization</name>
355
- <abbreviation>ISO</abbreviation>
356
- <uri>www.iso.org</uri>
357
- </organization>
358
- </contributor>
359
- <edition>3</edition>
360
- <language>en</language>
361
- <language>fr</language>
362
- <script>Latn</script>
363
- <status>
364
- <stage>90</stage>
365
- <substage>93</substage>
366
- </status>
367
- <copyright>
368
- <from>2001</from>
369
- <owner>
241
+ <bibitem id='iso123' type='standard'>
242
+ <fetched>#{Date.today}</fetched>
243
+ <title type='title-intro' format='text/plain' language='en' script='Latn'>Rubber latex</title>
244
+ <title type='title-main' format='text/plain' language='en' script='Latn'>Sampling</title>
245
+ <title type='main' format='text/plain' language='en' script='Latn'>Rubber latex – Sampling</title>
246
+ <title type='title-intro' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc</title>
247
+ <title type='title-main' format='text/plain' language='fr' script='Latn'>Échantillonnage</title>
248
+ <title type='main' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc – Échantillonnage</title>
249
+ <uri type='src'>https://www.iso.org/standard/23281.html</uri>
250
+ <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
251
+ <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
252
+ <docidentifier type='ISO'>ISO 123 (all parts)</docidentifier>
253
+ <docnumber>123</docnumber>
254
+ <date type='published'>
255
+ <on>2001</on>
256
+ </date>
257
+ <contributor>
258
+ <role type='publisher'/>
370
259
  <organization>
371
- <name>ISO</name>
260
+ <name>International Organization for Standardization</name>
261
+ <abbreviation>ISO</abbreviation>
262
+ <uri>www.iso.org</uri>
372
263
  </organization>
373
- </owner>
374
- </copyright>
375
- <relation type="obsoletes">
376
- <bibitem type="standard">
377
- <formattedref format="text/plain">ISO 123:1985</formattedref>
378
- </bibitem>
379
- </relation>
380
- </bibitem>
381
- </relation>
382
- </bibitem> </references></bibliography>
264
+ </contributor>
265
+ <edition>3</edition>
266
+ <language>en</language>
267
+ <language>fr</language>
268
+ <script>Latn</script>
269
+ <status>
270
+ <stage>90</stage>
271
+ <substage>93</substage>
272
+ </status>
273
+ <copyright>
274
+ <from>2001</from>
275
+ <owner>
276
+ <organization>
277
+ <name>ISO</name>
278
+ </organization>
279
+ </owner>
280
+ </copyright>
281
+ <relation type='obsoletes'>
282
+ <bibitem type='standard'>
283
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
284
+ </bibitem>
285
+ </relation>
286
+ <relation type='instance'>
287
+ <bibitem type='standard'>
288
+ <fetched>#{Date.today}</fetched>
289
+ <title type='title-intro' format='text/plain' language='en' script='Latn'>Rubber latex</title>
290
+ <title type='title-main' format='text/plain' language='en' script='Latn'>Sampling</title>
291
+ <title type='main' format='text/plain' language='en' script='Latn'>Rubber latex – Sampling</title>
292
+ <title type='title-intro' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc</title>
293
+ <title type='title-main' format='text/plain' language='fr' script='Latn'>Échantillonnage</title>
294
+ <title type='main' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc – Échantillonnage</title>
295
+ <uri type='src'>https://www.iso.org/standard/23281.html</uri>
296
+ <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
297
+ <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
298
+ <docidentifier type='ISO'>ISO 123:2001</docidentifier>
299
+ <docnumber>123</docnumber>
300
+ <date type='published'>
301
+ <on>2001</on>
302
+ </date>
303
+ <contributor>
304
+ <role type='publisher'/>
305
+ <organization>
306
+ <name>International Organization for Standardization</name>
307
+ <abbreviation>ISO</abbreviation>
308
+ <uri>www.iso.org</uri>
309
+ </organization>
310
+ </contributor>
311
+ <edition>3</edition>
312
+ <language>en</language>
313
+ <language>fr</language>
314
+ <script>Latn</script>
315
+ <status>
316
+ <stage>90</stage>
317
+ <substage>93</substage>
318
+ </status>
319
+ <copyright>
320
+ <from>2001</from>
321
+ <owner>
322
+ <organization>
323
+ <name>ISO</name>
324
+ </organization>
325
+ </owner>
326
+ </copyright>
327
+ <relation type='obsoletes'>
328
+ <bibitem type='standard'>
329
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
330
+ </bibitem>
331
+ </relation>
332
+ <place>Geneva</place>
333
+ </bibitem>
334
+ </relation>
335
+ <relation type='instance'>
336
+ <bibitem type='standard'>
337
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
338
+ </bibitem>
339
+ </relation>
340
+ <relation type='instance'>
341
+ <bibitem type='standard'>
342
+ <formattedref format='text/plain'>ISO 123:1974</formattedref>
343
+ </bibitem>
344
+ </relation>
345
+ <place>Geneva</place>
346
+ </bibitem>
347
+ <bibitem id='iso123' type='standard'>
348
+ <fetched>#{Date.today}</fetched>
349
+ <title type='title-intro' format='text/plain' language='en' script='Latn'>Rubber latex</title>
350
+ <title type='title-main' format='text/plain' language='en' script='Latn'>Sampling</title>
351
+ <title type='main' format='text/plain' language='en' script='Latn'>Rubber latex – Sampling</title>
352
+ <title type='title-intro' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc</title>
353
+ <title type='title-main' format='text/plain' language='fr' script='Latn'>Échantillonnage</title>
354
+ <title type='main' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc – Échantillonnage</title>
355
+ <uri type='src'>https://www.iso.org/standard/23281.html</uri>
356
+ <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
357
+ <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
358
+ <docidentifier type='ISO'>ISO 123 (all parts)</docidentifier>
359
+ <docidentifier type='metanorma'>[1]</docidentifier>
360
+ <docnumber>123</docnumber>
361
+ <date type='published'>
362
+ <on>2001</on>
363
+ </date>
364
+ <contributor>
365
+ <role type='publisher'/>
366
+ <organization>
367
+ <name>International Organization for Standardization</name>
368
+ <abbreviation>ISO</abbreviation>
369
+ <uri>www.iso.org</uri>
370
+ </organization>
371
+ </contributor>
372
+ <edition>3</edition>
373
+ <language>en</language>
374
+ <language>fr</language>
375
+ <script>Latn</script>
376
+ <status>
377
+ <stage>90</stage>
378
+ <substage>93</substage>
379
+ </status>
380
+ <copyright>
381
+ <from>2001</from>
382
+ <owner>
383
+ <organization>
384
+ <name>ISO</name>
385
+ </organization>
386
+ </owner>
387
+ </copyright>
388
+ <relation type='obsoletes'>
389
+ <bibitem type='standard'>
390
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
391
+ </bibitem>
392
+ </relation>
393
+ <relation type='instance'>
394
+ <bibitem type='standard'>
395
+ <fetched>#{Date.today}</fetched>
396
+ <title type='title-intro' format='text/plain' language='en' script='Latn'>Rubber latex</title>
397
+ <title type='title-main' format='text/plain' language='en' script='Latn'>Sampling</title>
398
+ <title type='main' format='text/plain' language='en' script='Latn'>Rubber latex – Sampling</title>
399
+ <title type='title-intro' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc</title>
400
+ <title type='title-main' format='text/plain' language='fr' script='Latn'>Échantillonnage</title>
401
+ <title type='main' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc – Échantillonnage</title>
402
+ <uri type='src'>https://www.iso.org/standard/23281.html</uri>
403
+ <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
404
+ <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
405
+ <docidentifier type='ISO'>ISO 123:2001</docidentifier>
406
+ <docnumber>123</docnumber>
407
+ <date type='published'>
408
+ <on>2001</on>
409
+ </date>
410
+ <contributor>
411
+ <role type='publisher'/>
412
+ <organization>
413
+ <name>International Organization for Standardization</name>
414
+ <abbreviation>ISO</abbreviation>
415
+ <uri>www.iso.org</uri>
416
+ </organization>
417
+ </contributor>
418
+ <edition>3</edition>
419
+ <language>en</language>
420
+ <language>fr</language>
421
+ <script>Latn</script>
422
+ <status>
423
+ <stage>90</stage>
424
+ <substage>93</substage>
425
+ </status>
426
+ <copyright>
427
+ <from>2001</from>
428
+ <owner>
429
+ <organization>
430
+ <name>ISO</name>
431
+ </organization>
432
+ </owner>
433
+ </copyright>
434
+ <relation type='obsoletes'>
435
+ <bibitem type='standard'>
436
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
437
+ </bibitem>
438
+ </relation>
439
+ <place>Geneva</place>
440
+ </bibitem>
441
+ </relation>
442
+ <relation type='instance'>
443
+ <bibitem type='standard'>
444
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
445
+ </bibitem>
446
+ </relation>
447
+ <relation type='instance'>
448
+ <bibitem type='standard'>
449
+ <formattedref format='text/plain'>ISO 123:1974</formattedref>
450
+ </bibitem>
451
+ </relation>
452
+ <place>Geneva</place>
453
+ </bibitem>
454
+ </references>
455
+ </bibliography>
383
456
  </standard-document>
384
- OUTPUT
385
- =end
457
+ OUTPUT
386
458
  end
387
459
  end
388
460
 
@@ -403,6 +475,7 @@ RSpec.describe Asciidoctor::Standoc do
403
475
  <bibitem id="iso123" type="standard">
404
476
  <title format="text/plain">Standard</title>
405
477
  <docidentifier>IEC 123</docidentifier>
478
+ <docnumber>123</docnumber>
406
479
  <contributor>
407
480
  <role type="publisher"/>
408
481
  <organization>
@@ -414,6 +487,7 @@ RSpec.describe Asciidoctor::Standoc do
414
487
  <title format='text/plain'>Standard</title>
415
488
  <docidentifier type='metanorma'>[1]</docidentifier>
416
489
  <docidentifier>IEC 123</docidentifier>
490
+ <docnumber>123</docnumber>
417
491
  <contributor>
418
492
  <role type='publisher'/>
419
493
  <organization>
@@ -482,6 +556,7 @@ RSpec.describe Asciidoctor::Standoc do
482
556
  <language>fr</language>
483
557
  <script>Latn</script>
484
558
  <abstract format="text/plain" language="en" script="Latn">Contains a permuted index of all terms included in the parts 1 — 28 of ISO 2382. If any of these parts has been revised, the present TR refers to the revision.</abstract>
559
+ <abstract format="text/plain" language="fr" script="Latn">Contains a permuted index of all terms included in the parts 1 — 28 of ISO 2382. If any of these parts has been revised, the present TR refers to the revision.</abstract>
485
560
  <status>
486
561
  <stage>90</stage>
487
562
  <substage>93</substage>
@@ -581,6 +656,7 @@ RSpec.describe Asciidoctor::Standoc do
581
656
  <language>fr</language>
582
657
  <script>Latn</script>
583
658
  <abstract format="text/plain" language="en" script="Latn">Contains a permuted index of all terms included in the parts 1 — 28 of ISO 2382. If any of these parts has been revised, the present TR refers to the revision.</abstract>
659
+ <abstract format="text/plain" language="fr" script="Latn">Contains a permuted index of all terms included in the parts 1 — 28 of ISO 2382. If any of these parts has been revised, the present TR refers to the revision.</abstract>
584
660
  <status>
585
661
  <stage>90</stage>
586
662
  <substage>93</substage>
@@ -673,6 +749,7 @@ RSpec.describe Asciidoctor::Standoc do
673
749
  <em>Standard</em>
674
750
  </formattedref>
675
751
  <docidentifier>ISO/IEC TR 12382:1992</docidentifier>
752
+ <docnumber>12382:1992)</docnumber>
676
753
  </bibitem>
677
754
  <bibitem id='iso124' type='standard'>
678
755
  <fetched>#{Date.today}</fetched>
@@ -749,6 +826,7 @@ OUTPUT
749
826
  <bibitem id="iso123" type="standard">
750
827
  <title format="text/plain">Standard</title>
751
828
  <docidentifier>ISO 123:—</docidentifier>
829
+ <docnumber>123</docnumber>
752
830
  <date type="published">
753
831
  <on>–</on>
754
832
  </date>
@@ -762,6 +840,7 @@ OUTPUT
762
840
  <bibitem id="iso124" type="standard">
763
841
  <title format="text/plain">Standard</title>
764
842
  <docidentifier>ISO 124:—</docidentifier>
843
+ <docnumber>124</docnumber>
765
844
  <date type="published">
766
845
  <on>–</on>
767
846
  </date>
@@ -776,6 +855,7 @@ OUTPUT
776
855
  <bibitem id="iso125" type="standard">
777
856
  <title format="text/plain">Standard</title>
778
857
  <docidentifier>ISO 125:—</docidentifier>
858
+ <docnumber>125</docnumber>
779
859
  <date type="published">
780
860
  <on>–</on>
781
861
  </date>
@@ -791,6 +871,7 @@ OUTPUT
791
871
  <title format='text/plain'>Standard</title>
792
872
  <docidentifier type='metanorma'>[1]</docidentifier>
793
873
  <docidentifier>ISO 123:—</docidentifier>
874
+ <docnumber>123</docnumber>
794
875
  <date type='published'>
795
876
  <on>–</on>
796
877
  </date>
@@ -826,6 +907,7 @@ OUTPUT
826
907
  <bibitem id="iso123" type="standard">
827
908
  <title format="text/plain">Standard</title>
828
909
  <docidentifier>ISO 123:1066 (all parts)</docidentifier>
910
+ <docnumber>123</docnumber>
829
911
  <date type="published">
830
912
  <on>1066</on>
831
913
  </date>
@@ -843,6 +925,7 @@ OUTPUT
843
925
  <title format='text/plain'>Standard</title>
844
926
  <docidentifier type='metanorma'>[1]</docidentifier>
845
927
  <docidentifier>ISO 123:1066 (all parts)</docidentifier>
928
+ <docnumber>123</docnumber>
846
929
  <date type='published'>
847
930
  <on>1066</on>
848
931
  </date>
@@ -1020,6 +1103,7 @@ OUTPUT
1020
1103
  <em>Standard</em>
1021
1104
  </formattedref>
1022
1105
  <docidentifier>XYZ 123:1066 (all parts)</docidentifier>
1106
+ <docnumber>123:1066 (all parts)</docnumber>
1023
1107
  </bibitem>
1024
1108
  <bibitem id='iso124'>
1025
1109
  <formattedref format='application/x-isodoc+xml'>
@@ -1027,6 +1111,7 @@ OUTPUT
1027
1111
  </formattedref>
1028
1112
  <docidentifier type='metanorma'>[1]</docidentifier>
1029
1113
  <docidentifier>XYZ 123:1066 (all parts)</docidentifier>
1114
+ <docnumber>123:1066 (all parts)</docnumber>
1030
1115
  </bibitem>
1031
1116
  </references>
1032
1117
  </bibliography>
@@ -1078,6 +1163,7 @@ OUTPUT
1078
1163
  </formattedref>
1079
1164
  <docidentifier type='metanorma'>[5]</docidentifier>
1080
1165
  <docidentifier>XYZ 123:1066 (all parts)</docidentifier>
1166
+ <docnumber>123:1066 (all parts)</docnumber>
1081
1167
  </bibitem>
1082
1168
  </references>
1083
1169
  </bibliography>
@@ -1119,6 +1205,7 @@ OUTPUT
1119
1205
  <bibitem id="iso123" type="standard">
1120
1206
  <title format="text/plain">Standard</title>
1121
1207
  <docidentifier type="ISO">ISO 123</docidentifier>
1208
+ <docnumber>123</docnumber>
1122
1209
  <contributor>
1123
1210
  <role type="publisher"/>
1124
1211
  <organization>
@@ -1130,6 +1217,7 @@ OUTPUT
1130
1217
  <title format='text/plain'>Standard</title>
1131
1218
  <docidentifier type='metanorma'>[1]</docidentifier>
1132
1219
  <docidentifier type='ISO'>ISO 123</docidentifier>
1220
+ <docnumber>123</docnumber>
1133
1221
  <contributor>
1134
1222
  <role type='publisher'/>
1135
1223
  <organization>
@@ -517,6 +517,64 @@ RSpec.describe Asciidoctor::Standoc do
517
517
  OUTPUT
518
518
  end
519
519
 
520
+
521
+ it "varies terms & symbols title" do
522
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
523
+ #{ASCIIDOC_BLANK_HDR}
524
+ [heading="terms, definitions, symbols and abbreviated terms"]
525
+ == Terms, Definitions, Symbols Section
526
+
527
+ === Term
528
+
529
+ === Symbols
530
+
531
+ INPUT
532
+ #{BLANK_HDR}
533
+ <sections>
534
+ <terms id='_' obligation='normative'>
535
+ <title>Terms, definitions and symbols</title>
536
+ <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
537
+ <term id='_'>
538
+ <preferred>Term</preferred>
539
+ </term>
540
+ <definitions id='_'>
541
+ <title>Symbols</title>
542
+ </definitions>
543
+ </terms>
544
+ </sections>
545
+ </standard-document>
546
+ OUTPUT
547
+ end
548
+
549
+ it "varies terms & abbreviated terms title" do
550
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
551
+ #{ASCIIDOC_BLANK_HDR}
552
+ [heading="terms, definitions, symbols and abbreviated terms"]
553
+ == Terms, Definitions, Abbreviated Terms Section
554
+
555
+ === Term
556
+
557
+ === Symbols
558
+
559
+ INPUT
560
+ #{BLANK_HDR}
561
+ <sections>
562
+ <terms id='_' obligation='normative'>
563
+ <title>Terms, definitions and abbreviated terms</title>
564
+ <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
565
+ <term id='_'>
566
+ <preferred>Term</preferred>
567
+ </term>
568
+ <definitions id='_'>
569
+ <title>Symbols</title>
570
+ </definitions>
571
+ </terms>
572
+ </sections>
573
+ </standard-document>
574
+ OUTPUT
575
+ end
576
+
577
+
520
578
  it "processes section obligations" do
521
579
  expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
522
580
  #{ASCIIDOC_BLANK_HDR}
@@ -3,6 +3,40 @@ require "relaton_iec"
3
3
  require "fileutils"
4
4
 
5
5
  RSpec.describe Asciidoctor::Standoc do
6
+ it "warns about malformed LaTeX" do
7
+ FileUtils.rm_f "test.err"
8
+ Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
9
+ #{VALIDATING_BLANK_HDR}
10
+
11
+ == Clause 1
12
+
13
+ latexmath:[\\begin{}]
14
+
15
+ === Clause 1.1
16
+
17
+ Subclause
18
+ INPUT
19
+ expect(File.read("test.err")).to include "latexmlmath failed to process equation"
20
+ end
21
+
22
+ it "warns about reparsing LaTeX" do
23
+ FileUtils.rm_f "test.err"
24
+ expect { Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true) }.to output(/Retrying/).to_stderr
25
+ #{VALIDATING_BLANK_HDR}
26
+
27
+ == Clause 1
28
+
29
+ [latexmath]
30
+ ++++
31
+ \\pmatrix{ \\hat{e}_{\\xi} \\cr \\hat{e}_{\\eta}
32
+ \\cr \\hat{e}_{\\zeta} } = {\\bf T} \\pmatrix{ \\hat{e}_x \\cr \\hat{e}_y \\cr \\hat{e}_z },
33
+ ++++
34
+
35
+ === Clause 1.1
36
+
37
+ Subclause
38
+ INPUT
39
+ end
6
40
 
7
41
  it "warns about hanging paragraphs" do
8
42
  FileUtils.rm_f "test.err"