metanorma-iso 2.1.1 → 2.1.2

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/html2doc/lists.rb +142 -10
  3. data/lib/isodoc/iso/base_convert.rb +10 -0
  4. data/lib/isodoc/iso/html/html_iso_titlepage.html +2 -0
  5. data/lib/isodoc/iso/html/isodoc-dis.css +170 -252
  6. data/lib/isodoc/iso/html/isodoc-dis.scss +170 -245
  7. data/lib/isodoc/iso/html/isodoc.css +38 -13
  8. data/lib/isodoc/iso/html/isodoc.scss +38 -12
  9. data/lib/isodoc/iso/html/style-human.css +14 -1
  10. data/lib/isodoc/iso/html/style-human.scss +10 -1
  11. data/lib/isodoc/iso/html/style-iso.css +35 -23
  12. data/lib/isodoc/iso/html/style-iso.scss +31 -23
  13. data/lib/isodoc/iso/html/word_iso_intro-dis.html +1 -6
  14. data/lib/isodoc/iso/html/word_iso_titlepage-dis.html +24 -13
  15. data/lib/isodoc/iso/html/word_iso_titlepage-prf.html +58 -0
  16. data/lib/isodoc/iso/html/word_iso_titlepage.html +6 -2
  17. data/lib/isodoc/iso/html_convert.rb +5 -0
  18. data/lib/isodoc/iso/i18n-en.yaml +32 -4
  19. data/lib/isodoc/iso/i18n-fr.yaml +29 -3
  20. data/lib/isodoc/iso/i18n-ru.yaml +32 -4
  21. data/lib/isodoc/iso/i18n-zh-Hans.yaml +32 -3
  22. data/lib/isodoc/iso/i18n.rb +1 -1
  23. data/lib/isodoc/iso/iso.amendment.xsl +332 -187
  24. data/lib/isodoc/iso/iso.international-standard.xsl +332 -187
  25. data/lib/isodoc/iso/metadata.rb +63 -63
  26. data/lib/isodoc/iso/presentation_bibdata.rb +74 -0
  27. data/lib/isodoc/iso/presentation_xml_convert.rb +14 -3
  28. data/lib/isodoc/iso/presentation_xref.rb +8 -2
  29. data/lib/isodoc/iso/sections.rb +1 -1
  30. data/lib/isodoc/iso/word_cleanup.rb +3 -0
  31. data/lib/isodoc/iso/word_convert.rb +6 -3
  32. data/lib/isodoc/iso/word_dis_cleanup.rb +235 -0
  33. data/lib/isodoc/iso/word_dis_convert.rb +47 -108
  34. data/lib/isodoc/iso/xref.rb +34 -6
  35. data/lib/metanorma/iso/base.rb +20 -1
  36. data/lib/metanorma/iso/biblio.rng +32 -34
  37. data/lib/metanorma/iso/boilerplate-fr.xml +3 -0
  38. data/lib/metanorma/iso/boilerplate-ru.xml +3 -0
  39. data/lib/metanorma/iso/boilerplate.xml +3 -0
  40. data/lib/metanorma/iso/cleanup.rb +28 -1
  41. data/lib/metanorma/iso/front.rb +31 -6
  42. data/lib/metanorma/iso/front_id.rb +2 -0
  43. data/lib/metanorma/iso/isodoc.rng +9 -0
  44. data/lib/metanorma/iso/isostandard.rng +30 -12
  45. data/lib/metanorma/iso/macros.rb +29 -0
  46. data/lib/metanorma/iso/version.rb +1 -1
  47. data/spec/isodoc/amd_spec.rb +4 -30
  48. data/spec/isodoc/blocks_spec.rb +499 -2
  49. data/spec/isodoc/i18n_spec.rb +145 -80
  50. data/spec/isodoc/iso_spec.rb +50 -169
  51. data/spec/isodoc/metadata_spec.rb +224 -83
  52. data/spec/isodoc/postproc_spec.rb +41 -5
  53. data/spec/isodoc/section_spec.rb +12 -6
  54. data/spec/isodoc/word_dis_spec.rb +1273 -147
  55. data/spec/isodoc/xref_spec.rb +87 -13
  56. data/spec/metanorma/amd_spec.rb +53 -1
  57. data/spec/metanorma/base_spec.rb +185 -10
  58. data/spec/metanorma/blocks_spec.rb +54 -0
  59. data/spec/metanorma/lists_spec.rb +2 -2
  60. data/spec/metanorma/section_spec.rb +2 -2
  61. data/spec/spec_helper.rb +13 -4
  62. data/spec/vcr_cassettes/withdrawn_iso.yml +27 -27
  63. metadata +7 -8
  64. data/docs/asciiiso-syntax.adoc +0 -307
  65. data/docs/guidance.adoc +0 -487
  66. data/docs/navigation.adoc +0 -23
  67. data/docs/quickstart.adoc +0 -179
  68. data/lib/isodoc/iso/presentation_inline.rb +0 -90
@@ -153,7 +153,7 @@ RSpec.describe IsoDoc do
153
153
  .convert("test", input, true))).to be_equivalent_to xmlpp(output)
154
154
  end
155
155
 
156
- it "cross-references figures (Presentation XML)" do
156
+ it "cross-references figures" do
157
157
  input = <<~INPUT
158
158
  <iso-standard xmlns="http://riboseinc.com/isoxml">
159
159
  <preface>
@@ -299,7 +299,7 @@ RSpec.describe IsoDoc do
299
299
  .convert("test", input, true))).to be_equivalent_to xmlpp(output)
300
300
  end
301
301
 
302
- it "cross-references subfigures (Presentation XML)" do
302
+ it "cross-references subfigures" do
303
303
  input = <<~INPUT
304
304
  <iso-standard xmlns="http://riboseinc.com/isoxml">
305
305
  <preface>
@@ -1501,12 +1501,12 @@ RSpec.describe IsoDoc do
1501
1501
  <preface>
1502
1502
  <foreword displayorder='1'>
1503
1503
  <p>
1504
- <xref target='N'>Clause 1 a)</xref>
1505
- <xref target='note1'>3.1 List 1 a)</xref>
1506
- <xref target='note2'>3.1 List 2 a)</xref>
1504
+ <xref target='N'>1 a)</xref>
1505
+ <xref target='note1'>3.1, List 1 a)</xref>
1506
+ <xref target='note2'>3.1, List 2 a)</xref>
1507
1507
  <xref target='AN'>A.1 a)</xref>
1508
- <xref target='Anote1'>A.2 List 1 a)</xref>
1509
- <xref target='Anote2'>A.2 List 2 a)</xref>
1508
+ <xref target='Anote1'>A.2, List 1 a)</xref>
1509
+ <xref target='Anote2'>A.2, List 2 a)</xref>
1510
1510
  </p>
1511
1511
  </foreword>
1512
1512
  </preface>
@@ -1621,12 +1621,12 @@ RSpec.describe IsoDoc do
1621
1621
  <preface>
1622
1622
  <foreword displayorder='1'>
1623
1623
  <p>
1624
- <xref target='N'>Clause 1 a)</xref>
1625
- <xref target='note1'>Clause 1 a.1)</xref>
1626
- <xref target='note2'>Clause 1 a.1.i)</xref>
1627
- <xref target='AN'>Clause 1 a.1.i.A)</xref>
1628
- <xref target='Anote1'>Clause 1 a.1.i.A.I)</xref>
1629
- <xref target='Anote2'>Clause 1 a.1.i.A.I.a)</xref>
1624
+ <xref target='N'>1 a)</xref>
1625
+ <xref target='note1'>1 a) 1)</xref>
1626
+ <xref target='note2'>1 a) 1) i)</xref>
1627
+ <xref target='AN'>1 a) 1) i) A)</xref>
1628
+ <xref target='Anote1'>1 a) 1) i) A) I)</xref>
1629
+ <xref target='Anote2'>1 a) 1) i) A) I) a)</xref>
1630
1630
  </p>
1631
1631
  </foreword>
1632
1632
  </preface>
@@ -1670,4 +1670,78 @@ RSpec.describe IsoDoc do
1670
1670
  expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1671
1671
  .convert("test", input, true))).to be_equivalent_to xmlpp(output)
1672
1672
  end
1673
+
1674
+ it "conflates cross-references to a split list" do
1675
+ input = <<~INPUT
1676
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1677
+ <preface>
1678
+ <foreword>
1679
+ <p><xref target="Na"/></p>
1680
+ </foreword>
1681
+ </preface>
1682
+ <sections>
1683
+ <clause id="scope" type="scope">
1684
+ <title>Scope</title>
1685
+ <ol id="N1">
1686
+ <li id="Na"><p>A</p></li>
1687
+ <li id="Na1"><p>A</p></li>
1688
+ </ol>
1689
+ <ol id="N2" start="3">
1690
+ <li id="Nb"><p>A</p></li>
1691
+ <li id="Nb1"><p>A</p></li>
1692
+ </ol>
1693
+ <ol id="N3" start="5">
1694
+ <li id="Nc"><p>A</p></li>
1695
+ <li id="Nc1"><p>A</p></li>
1696
+ </ol>
1697
+ </clause>
1698
+ </sections>
1699
+ </iso-standard>
1700
+ INPUT
1701
+ output = <<~OUTPUT
1702
+ <foreword displayorder='1'>
1703
+ <p><xref target='Na'>1 a)</xref></p>
1704
+ </foreword>
1705
+ OUTPUT
1706
+ expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
1707
+ .convert("test", input, true))
1708
+ .at("//xmlns:foreword").to_xml))
1709
+ .to be_equivalent_to xmlpp(output)
1710
+
1711
+ input = <<~INPUT
1712
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1713
+ <preface>
1714
+ <foreword>
1715
+ <p><xref target="Na"/></p>
1716
+ </foreword>
1717
+ </preface>
1718
+ <sections>
1719
+ <clause id="scope" type="scope">
1720
+ <title>Scope</title>
1721
+ <ol id="N1">
1722
+ <li id="Na"><p>A</p></li>
1723
+ <li id="Na1"><p>A</p></li>
1724
+ </ol>
1725
+ <ol id="N2" start="3">
1726
+ <li id="Nb"><p>A</p></li>
1727
+ <li id="Nb1"><p>A</p></li>
1728
+ </ol>
1729
+ <ol id="N3" start="6">
1730
+ <li id="Nc"><p>A</p></li>
1731
+ <li id="Nc1"><p>A</p></li>
1732
+ </ol>
1733
+ </clause>
1734
+ </sections>
1735
+ </iso-standard>
1736
+ INPUT
1737
+ output = <<~OUTPUT
1738
+ <foreword displayorder='1'>
1739
+ <p><xref target='Na'>Clause 1, List 1 a)</xref></p>
1740
+ </foreword>
1741
+ OUTPUT
1742
+ expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
1743
+ .convert("test", input, true))
1744
+ .at("//xmlns:foreword").to_xml))
1745
+ .to be_equivalent_to xmlpp(output)
1746
+ end
1673
1747
  end
@@ -55,7 +55,7 @@ RSpec.describe Metanorma::ISO do
55
55
  === Bibliography Subsection
56
56
  INPUT
57
57
  output = <<~OUTPUT
58
- #{BLANK_HDR.sub(%r{<doctype>article</doctype>}, '<doctype>amendment</doctype>')}
58
+ #{BLANK_HDR.sub(%r{<doctype>standard</doctype>}, '<doctype>amendment</doctype>')}
59
59
  <sections>
60
60
  <clause id="_" obligation="normative">
61
61
  <title>Foreword</title>
@@ -255,6 +255,7 @@ RSpec.describe Metanorma::ISO do
255
255
  <ext>
256
256
  <doctype>amendment</doctype>
257
257
  <editorialgroup>
258
+ <agency>ISO</agency>
258
259
  <technical-committee number="1" type="A">TC</technical-committee>
259
260
  <technical-committee number="11" type="A1">TC1</technical-committee>
260
261
  <subcommittee number="2" type="B">SC</subcommittee>
@@ -263,6 +264,15 @@ RSpec.describe Metanorma::ISO do
263
264
  <workgroup number="31" type="C1">WG1</workgroup>
264
265
  <secretariat>SECRETARIAT</secretariat>
265
266
  </editorialgroup>
267
+ <approvalgroup>
268
+ <agency>ISO</agency>
269
+ <technical-committee number="1" type="A">TC</technical-committee>
270
+ <technical-committee number="11" type="A1">TC1</technical-committee>
271
+ <subcommittee number="2" type="B">SC</subcommittee>
272
+ <subcommittee number="21" type="B1">SC1</subcommittee>
273
+ <workgroup number="3" type="C">WG</workgroup>
274
+ <workgroup number="31" type="C1">WG1</workgroup>
275
+ </approvalgroup>
266
276
  <ics>
267
277
  <code>1</code>
268
278
  </ics>
@@ -341,10 +351,17 @@ RSpec.describe Metanorma::ISO do
341
351
  <ext>
342
352
  <doctype>amendment</doctype>
343
353
  <editorialgroup>
354
+ <agency>ISO</agency>
344
355
  <technical-committee/>
345
356
  <subcommittee/>
346
357
  <workgroup/>
347
358
  </editorialgroup>
359
+ <approvalgroup>
360
+ <agency>ISO</agency>
361
+ <technical-committee/>
362
+ <subcommittee/>
363
+ <workgroup/>
364
+ </approvalgroup>
348
365
  <structuredidentifier>
349
366
  <project-number amendment="1" part="1">17301</project-number>
350
367
  </structuredidentifier>
@@ -413,10 +430,17 @@ RSpec.describe Metanorma::ISO do
413
430
  <ext>
414
431
  <doctype>amendment</doctype>
415
432
  <editorialgroup>
433
+ <agency>ISO</agency>
416
434
  <technical-committee/>
417
435
  <subcommittee/>
418
436
  <workgroup/>
419
437
  </editorialgroup>
438
+ <approvalgroup>
439
+ <agency>ISO</agency>
440
+ <technical-committee/>
441
+ <subcommittee/>
442
+ <workgroup/>
443
+ </approvalgroup>
420
444
  <structuredidentifier>
421
445
  <project-number amendment="1" part="1">17301</project-number>
422
446
  </structuredidentifier>
@@ -484,10 +508,17 @@ RSpec.describe Metanorma::ISO do
484
508
  <ext>
485
509
  <doctype>amendment</doctype>
486
510
  <editorialgroup>
511
+ <agency>ISO</agency>
487
512
  <technical-committee/>
488
513
  <subcommittee/>
489
514
  <workgroup/>
490
515
  </editorialgroup>
516
+ <approvalgroup>
517
+ <agency>ISO</agency>
518
+ <technical-committee/>
519
+ <subcommittee/>
520
+ <workgroup/>
521
+ </approvalgroup>
491
522
  <structuredidentifier>
492
523
  <project-number amendment="1" part="1">17301</project-number>
493
524
  </structuredidentifier>
@@ -556,10 +587,17 @@ RSpec.describe Metanorma::ISO do
556
587
  <ext>
557
588
  <doctype>technical-corrigendum</doctype>
558
589
  <editorialgroup>
590
+ <agency>ISO</agency>
559
591
  <technical-committee/>
560
592
  <subcommittee/>
561
593
  <workgroup/>
562
594
  </editorialgroup>
595
+ <approvalgroup>
596
+ <agency>ISO</agency>
597
+ <technical-committee/>
598
+ <subcommittee/>
599
+ <workgroup/>
600
+ </approvalgroup>
563
601
  <structuredidentifier>
564
602
  <project-number corrigendum="3" part="1">17301</project-number>
565
603
  </structuredidentifier>
@@ -628,10 +666,17 @@ RSpec.describe Metanorma::ISO do
628
666
  <ext>
629
667
  <doctype>technical-corrigendum</doctype>
630
668
  <editorialgroup>
669
+ <agency>ISO</agency>
631
670
  <technical-committee/>
632
671
  <subcommittee/>
633
672
  <workgroup/>
634
673
  </editorialgroup>
674
+ <approvalgroup>
675
+ <agency>ISO</agency>
676
+ <technical-committee/>
677
+ <subcommittee/>
678
+ <workgroup/>
679
+ </approvalgroup>
635
680
  <structuredidentifier>
636
681
  <project-number part='1' corrigendum='3'>17301</project-number>
637
682
  </structuredidentifier>
@@ -699,10 +744,17 @@ RSpec.describe Metanorma::ISO do
699
744
  <ext>
700
745
  <doctype>technical-corrigendum</doctype>
701
746
  <editorialgroup>
747
+ <agency>ISO</agency>
702
748
  <technical-committee/>
703
749
  <subcommittee/>
704
750
  <workgroup/>
705
751
  </editorialgroup>
752
+ <approvalgroup>
753
+ <agency>ISO</agency>
754
+ <technical-committee/>
755
+ <subcommittee/>
756
+ <workgroup/>
757
+ </approvalgroup>
706
758
  <structuredidentifier>
707
759
  <project-number corrigendum="3" part="1">17301</project-number>
708
760
  </structuredidentifier>
@@ -37,6 +37,25 @@ RSpec.describe Metanorma::ISO do
37
37
  :workgroup-number_2: 31
38
38
  :workgroup-type_2: C1
39
39
  :secretariat: SECRETARIAT
40
+ :approval-technical-committee: TCa
41
+ :approval-technical-committee-number: 1a
42
+ :approval-technical-committee-type: Aa
43
+ :approval-subcommittee: SCa
44
+ :approval-subcommittee-number: 2a
45
+ :approval-subcommittee-type: Ba
46
+ :approval-workgroup: WGa
47
+ :approval-workgroup-number: 3a
48
+ :approval-workgroup-type: Ca
49
+ :approval-technical-committee_2: TC1a
50
+ :approval-technical-committee-number_2: 11a
51
+ :approval-technical-committee-type_2: A1a
52
+ :approval-subcommittee_2: SC1a
53
+ :approval-subcommittee-number_2: 21a
54
+ :approval-subcommittee-type_2: B1a
55
+ :approval-workgroup_2: WG1a
56
+ :approval-workgroup-number_2: 31a
57
+ :approval-workgroup-type_2: C1a
58
+ :approval-agency: ISO/IEC
40
59
  :docstage: 20
41
60
  :docsubstage: 20
42
61
  :iteration: 3
@@ -105,9 +124,10 @@ RSpec.describe Metanorma::ISO do
105
124
  </owner>
106
125
  </copyright>
107
126
  <ext>
108
- <doctype>article</doctype>
127
+ <doctype>standard</doctype>
109
128
  <horizontal>true</horizontal>
110
129
  <editorialgroup>
130
+ <agency>ISO</agency>
111
131
  <technical-committee number="1" type="A">TC</technical-committee>
112
132
  <technical-committee number="11" type="A1">TC1</technical-committee>
113
133
  <subcommittee number="2" type="B">SC</subcommittee>
@@ -116,6 +136,16 @@ RSpec.describe Metanorma::ISO do
116
136
  <workgroup number="31" type="C1">WG1</workgroup>
117
137
  <secretariat>SECRETARIAT</secretariat>
118
138
  </editorialgroup>
139
+ <approvalgroup>
140
+ <agency>ISO</agency>
141
+ <agency>IEC</agency>
142
+ <technical-committee number="1a" type="Aa">TCa</technical-committee>
143
+ <technical-committee number="11a" type="A1a">TC1a</technical-committee>
144
+ <subcommittee number="2a" type="Ba">SCa</subcommittee>
145
+ <subcommittee number="21a" type="B1a">SC1a</subcommittee>
146
+ <workgroup number="3a" type="Ca">WGa</workgroup>
147
+ <workgroup number="31a" type="C1a">WG1a</workgroup>
148
+ </approvalgroup>
119
149
  <ics>
120
150
  <code>1</code>
121
151
  </ics>
@@ -161,6 +191,15 @@ RSpec.describe Metanorma::ISO do
161
191
  :pub-uri: http://www.example.com
162
192
  :docstage:
163
193
  :docsubstage:
194
+ :technical-committee: TC
195
+ :technical-committee-number: 1
196
+ :technical-committee-type: A
197
+ :subcommittee: SC
198
+ :subcommittee-number: 2
199
+ :subcommittee-type: B
200
+ :workgroup: WG
201
+ :workgroup-number: 3
202
+ :workgroup-type: C
164
203
  INPUT
165
204
  expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
166
205
  .to be_equivalent_to xmlpp(<<~"OUTPUT")
@@ -274,11 +313,20 @@ RSpec.describe Metanorma::ISO do
274
313
  </copyright>
275
314
  <ext>
276
315
  <doctype>technical-report</doctype>
277
- <editorialgroup>
278
- <technical-committee/>
279
- <subcommittee/>
280
- <workgroup/>
281
- </editorialgroup>
316
+ <editorialgroup>
317
+ <agency>IEC</agency>
318
+ <agency>IETF</agency>
319
+ <agency>ISO</agency>
320
+ <technical-committee number='1' type='A'>TC</technical-committee>
321
+ <subcommittee number='2' type='B'>SC</subcommittee>
322
+ <workgroup number='3' type='C'>WG</workgroup>
323
+ </editorialgroup>
324
+ <approvalgroup>
325
+ <agency>ISO</agency>
326
+ <technical-committee number='1' type='A'>TC</technical-committee>
327
+ <subcommittee number='2' type='B'>SC</subcommittee>
328
+ <workgroup number='3' type='C'>WG</workgroup>
329
+ </approvalgroup>
282
330
  <structuredidentifier>
283
331
  <project-number part="1" subpart="1">IEC/IETF/ISO 1000</project-number>
284
332
  </structuredidentifier>
@@ -290,6 +338,84 @@ RSpec.describe Metanorma::ISO do
290
338
  OUTPUT
291
339
  end
292
340
 
341
+ it "processes tech specification identifier" do
342
+ output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
343
+ = Document title
344
+ Author
345
+ :docfile: test.adoc
346
+ :nodoc:
347
+ :novalid:
348
+ :no-isobib:
349
+ :docnumber: 1000
350
+ :partnumber: 1-1
351
+ :copyright-year: 2001
352
+ :doctype: technical-specification
353
+ :docstage: 50
354
+ :docsubstage:
355
+ INPUT
356
+ expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
357
+ .to be_equivalent_to xmlpp(<<~"OUTPUT")
358
+ <iso-standard xmlns='https://www.metanorma.org/ns/iso' type='semantic' version="#{Metanorma::ISO::VERSION}">
359
+ <bibdata type='standard'>
360
+ <docidentifier type='ISO'>ISO/FDTS 1000-1-1</docidentifier>
361
+ <docidentifier type='iso-undated'>ISO/FDTS 1000-1-1</docidentifier>
362
+ <docidentifier type='iso-with-lang'>ISO/FDTS 1000-1-1(E)</docidentifier>
363
+ <docidentifier type='iso-reference'>ISO/FDTS 1000-1-1:2001(E)</docidentifier>
364
+ <docnumber>1000</docnumber>
365
+ <contributor>
366
+ <role type='author'/>
367
+ <organization>
368
+ <name>International Organization for Standardization</name>
369
+ <abbreviation>ISO</abbreviation>
370
+ </organization>
371
+ </contributor>
372
+ <contributor>
373
+ <role type='publisher'/>
374
+ <organization>
375
+ <name>International Organization for Standardization</name>
376
+ <abbreviation>ISO</abbreviation>
377
+ </organization>
378
+ </contributor>
379
+ <language>en</language>
380
+ <script>Latn</script>
381
+ <status>
382
+ <stage abbreviation='FDTS TS'>50</stage>
383
+ <substage>00</substage>
384
+ </status>
385
+ <copyright>
386
+ <from>2001</from>
387
+ <owner>
388
+ <organization>
389
+ <name>International Organization for Standardization</name>
390
+ <abbreviation>ISO</abbreviation>
391
+ </organization>
392
+ </owner>
393
+ </copyright>
394
+ <ext>
395
+ <doctype>technical-specification</doctype>
396
+ <editorialgroup>
397
+ <agency>ISO</agency>
398
+ <technical-committee/>
399
+ <subcommittee/>
400
+ <workgroup/>
401
+ </editorialgroup>
402
+ <approvalgroup>
403
+ <agency>ISO</agency>
404
+ <technical-committee/>
405
+ <subcommittee/>
406
+ <workgroup/>
407
+ </approvalgroup>
408
+ <structuredidentifier>
409
+ <project-number part='1' subpart='1'>ISO 1000</project-number>
410
+ </structuredidentifier>
411
+ <stagename>Final draft</stagename>
412
+ </ext>
413
+ </bibdata>
414
+ <sections> </sections>
415
+ </iso-standard>
416
+ OUTPUT
417
+ end
418
+
293
419
  it "processes Russian titles" do
294
420
  output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
295
421
  = Document title
@@ -381,13 +507,20 @@ RSpec.describe Metanorma::ISO do
381
507
  </owner>
382
508
  </copyright>
383
509
  <ext>
384
- <doctype>article</doctype>
510
+ <doctype>standard</doctype>
385
511
  <horizontal>true</horizontal>
386
512
  <editorialgroup>
513
+ <agency>ISO</agency>
387
514
  <technical-committee/>
388
515
  <subcommittee/>
389
516
  <workgroup/>
390
517
  </editorialgroup>
518
+ <approvalgroup>
519
+ <agency>ISO</agency>
520
+ <technical-committee/>
521
+ <subcommittee/>
522
+ <workgroup/>
523
+ </approvalgroup>
391
524
  <structuredidentifier>
392
525
  <project-number part='1'>ISO 1000</project-number>
393
526
  </structuredidentifier>
@@ -491,10 +624,17 @@ RSpec.describe Metanorma::ISO do
491
624
  <ext>
492
625
  <doctype>this-is-a-doctype</doctype>
493
626
  <editorialgroup>
627
+ <agency>SD</agency>
494
628
  <technical-committee/>
495
629
  <subcommittee/>
496
630
  <workgroup/>
497
631
  </editorialgroup>
632
+ <approvalgroup>
633
+ <agency>ISO</agency>
634
+ <technical-committee/>
635
+ <subcommittee/>
636
+ <workgroup/>
637
+ </approvalgroup>
498
638
  <structuredidentifier>
499
639
  <project-number part="1" subpart="1">SD 1000</project-number>
500
640
  </structuredidentifier>
@@ -562,10 +702,17 @@ RSpec.describe Metanorma::ISO do
562
702
  <ext>
563
703
  <doctype>international-standard</doctype>
564
704
  <editorialgroup>
705
+ <agency>ISO</agency>
565
706
  <technical-committee/>
566
707
  <subcommittee/>
567
708
  <workgroup/>
568
709
  </editorialgroup>
710
+ <approvalgroup>
711
+ <agency>ISO</agency>
712
+ <technical-committee/>
713
+ <subcommittee/>
714
+ <workgroup/>
715
+ </approvalgroup>
569
716
  <structuredidentifier>
570
717
  <project-number>ISO 1000</project-number>
571
718
  </structuredidentifier>
@@ -629,12 +776,19 @@ RSpec.describe Metanorma::ISO do
629
776
  </owner>
630
777
  </copyright>
631
778
  <ext>
632
- <doctype>article</doctype>
779
+ <doctype>standard</doctype>
633
780
  <editorialgroup>
781
+ <agency>ISO</agency>
634
782
  <technical-committee/>
635
783
  <subcommittee/>
636
784
  <workgroup/>
637
785
  </editorialgroup>
786
+ <approvalgroup>
787
+ <agency>ISO</agency>
788
+ <technical-committee/>
789
+ <subcommittee/>
790
+ <workgroup/>
791
+ </approvalgroup>
638
792
  <structuredidentifier>
639
793
  <project-number>ISO 1000</project-number>
640
794
  </structuredidentifier>
@@ -698,12 +852,19 @@ RSpec.describe Metanorma::ISO do
698
852
  </owner>
699
853
  </copyright>
700
854
  <ext>
701
- <doctype>article</doctype>
855
+ <doctype>standard</doctype>
702
856
  <editorialgroup>
857
+ <agency>ISO</agency>
703
858
  <technical-committee/>
704
859
  <subcommittee/>
705
860
  <workgroup/>
706
861
  </editorialgroup>
862
+ <approvalgroup>
863
+ <agency>ISO</agency>
864
+ <technical-committee/>
865
+ <subcommittee/>
866
+ <workgroup/>
867
+ </approvalgroup>
707
868
  <structuredidentifier>
708
869
  <project-number>ISO 1000</project-number>
709
870
  </structuredidentifier>
@@ -768,10 +929,17 @@ RSpec.describe Metanorma::ISO do
768
929
  <ext>
769
930
  <doctype>directive</doctype>
770
931
  <editorialgroup>
932
+ <agency>ISO</agency>
771
933
  <technical-committee/>
772
934
  <subcommittee/>
773
935
  <workgroup/>
774
936
  </editorialgroup>
937
+ <approvalgroup>
938
+ <agency>ISO</agency>
939
+ <technical-committee/>
940
+ <subcommittee/>
941
+ <workgroup/>
942
+ </approvalgroup>
775
943
  <structuredidentifier>
776
944
  <project-number>ISO 1000</project-number>
777
945
  </structuredidentifier>
@@ -1142,12 +1310,19 @@ RSpec.describe Metanorma::ISO do
1142
1310
  </bibitem>
1143
1311
  </relation>
1144
1312
  <ext>
1145
- <doctype>article</doctype>
1313
+ <doctype>standard</doctype>
1146
1314
  <editorialgroup>
1315
+ <agency>ISO</agency>
1147
1316
  <technical-committee/>
1148
1317
  <subcommittee/>
1149
1318
  <workgroup/>
1150
1319
  </editorialgroup>
1320
+ <approvalgroup>
1321
+ <agency>ISO</agency>
1322
+ <technical-committee/>
1323
+ <subcommittee/>
1324
+ <workgroup/>
1325
+ </approvalgroup>
1151
1326
  <stagename>International standard</stagename>
1152
1327
  </ext>
1153
1328
  </bibdata>
@@ -228,6 +228,27 @@ RSpec.describe Metanorma::ISO do
228
228
  .to be_equivalent_to xmlpp(output)
229
229
  end
230
230
 
231
+ it "processes editorial notes" do
232
+ input = <<~INPUT
233
+ #{ASCIIDOC_BLANK_HDR}
234
+ [IMPORTANT,type=editorial]
235
+ ====
236
+ Editorial note
237
+ ====
238
+ INPUT
239
+ output = <<~OUTPUT
240
+ #{BLANK_HDR}
241
+ <sections>
242
+ <admonition id="_" type="editorial">
243
+ <p id="_">Editorial note</p>
244
+ </admonition>
245
+ </sections>
246
+ </iso-standard>
247
+ OUTPUT
248
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
249
+ .to be_equivalent_to xmlpp(output)
250
+ end
251
+
231
252
  it "processes complex admonitions with non-Asciidoc names" do
232
253
  input = <<~INPUT
233
254
  #{ASCIIDOC_BLANK_HDR}
@@ -600,4 +621,37 @@ RSpec.describe Metanorma::ISO do
600
621
  expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
601
622
  .to be_equivalent_to xmlpp(output)
602
623
  end
624
+
625
+ it "processes the macro for editorial notes" do
626
+ input = <<~INPUT
627
+ #{ASCIIDOC_BLANK_HDR}
628
+ EDITOR: Note1
629
+
630
+ [EDITOR]
631
+ ====
632
+ Note2
633
+ ====
634
+
635
+ [EDITOR]
636
+ Note3
637
+ INPUT
638
+ output = <<~OUTPUT
639
+ #{BLANK_HDR}
640
+ <sections>
641
+ <admonition id='_' type='editorial'>
642
+ <p id='_'>Note1</p>
643
+ </admonition>
644
+ <admonition id='_' type='editorial'>
645
+ <p id='_'>Note2</p>
646
+ </admonition>
647
+ <admonition id='_' type='editorial'>
648
+ <p id='_'>Note3</p>
649
+ </admonition>
650
+ </sections>
651
+ </iso-standard>
652
+ OUTPUT
653
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
654
+ .to be_equivalent_to xmlpp(output)
655
+ end
656
+
603
657
  end
@@ -73,7 +73,7 @@ RSpec.describe Metanorma::ISO do
73
73
  [loweralpha]
74
74
  . First
75
75
  . Second
76
- [upperalpha]
76
+ [upperalpha,start=4]
77
77
  .. Third
78
78
  .. Fourth
79
79
  . Fifth
@@ -117,7 +117,7 @@ RSpec.describe Metanorma::ISO do
117
117
  </li>
118
118
  <li>
119
119
  <p id="_">Second</p>
120
- <ol id="_">
120
+ <ol id='_' start='4'>
121
121
  <li>
122
122
  <p id="_">Third</p>
123
123
  </li>