metanorma-iso 2.1.1 → 2.1.4

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/lib/html2doc/lists.rb +145 -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 +173 -257
  6. data/lib/isodoc/iso/html/isodoc-dis.scss +173 -249
  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 +750 -307
  24. data/lib/isodoc/iso/iso.international-standard.xsl +750 -307
  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 +15 -4
  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 +243 -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 +14 -1
  36. data/lib/metanorma/iso/biblio.rng +134 -39
  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 +53 -13
  41. data/lib/metanorma/iso/front.rb +38 -6
  42. data/lib/metanorma/iso/front_id.rb +2 -0
  43. data/lib/metanorma/iso/isodoc.rng +32 -0
  44. data/lib/metanorma/iso/isostandard.rng +32 -12
  45. data/lib/metanorma/iso/validate_section.rb +0 -12
  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 +223 -83
  52. data/spec/isodoc/postproc_spec.rb +41 -5
  53. data/spec/isodoc/section_spec.rb +9 -9
  54. data/spec/isodoc/word_dis_spec.rb +1332 -146
  55. data/spec/isodoc/xref_spec.rb +87 -13
  56. data/spec/metanorma/amd_spec.rb +39 -23
  57. data/spec/metanorma/base_spec.rb +174 -44
  58. data/spec/metanorma/blocks_spec.rb +21 -0
  59. data/spec/metanorma/cleanup_spec.rb +196 -196
  60. data/spec/metanorma/lists_spec.rb +2 -2
  61. data/spec/metanorma/section_spec.rb +2 -2
  62. data/spec/metanorma/validate_spec.rb +8 -19
  63. data/spec/spec_helper.rb +10 -7
  64. data/spec/vcr_cassettes/withdrawn_iso.yml +30 -30
  65. metadata +6 -8
  66. data/docs/asciiiso-syntax.adoc +0 -307
  67. data/docs/guidance.adoc +0 -487
  68. data/docs/navigation.adoc +0 -23
  69. data/docs/quickstart.adoc +0 -179
  70. 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,11 @@ RSpec.describe Metanorma::ISO do
341
351
  <ext>
342
352
  <doctype>amendment</doctype>
343
353
  <editorialgroup>
344
- <technical-committee/>
345
- <subcommittee/>
346
- <workgroup/>
354
+ <agency>ISO</agency>
347
355
  </editorialgroup>
356
+ <approvalgroup>
357
+ <agency>ISO</agency>
358
+ </approvalgroup>
348
359
  <structuredidentifier>
349
360
  <project-number amendment="1" part="1">17301</project-number>
350
361
  </structuredidentifier>
@@ -413,10 +424,11 @@ RSpec.describe Metanorma::ISO do
413
424
  <ext>
414
425
  <doctype>amendment</doctype>
415
426
  <editorialgroup>
416
- <technical-committee/>
417
- <subcommittee/>
418
- <workgroup/>
427
+ <agency>ISO</agency>
419
428
  </editorialgroup>
429
+ <approvalgroup>
430
+ <agency>ISO</agency>
431
+ </approvalgroup>
420
432
  <structuredidentifier>
421
433
  <project-number amendment="1" part="1">17301</project-number>
422
434
  </structuredidentifier>
@@ -483,11 +495,12 @@ RSpec.describe Metanorma::ISO do
483
495
  </copyright>
484
496
  <ext>
485
497
  <doctype>amendment</doctype>
486
- <editorialgroup>
487
- <technical-committee/>
488
- <subcommittee/>
489
- <workgroup/>
498
+ <editorialgroup>
499
+ <agency>ISO</agency>
490
500
  </editorialgroup>
501
+ <approvalgroup>
502
+ <agency>ISO</agency>
503
+ </approvalgroup>
491
504
  <structuredidentifier>
492
505
  <project-number amendment="1" part="1">17301</project-number>
493
506
  </structuredidentifier>
@@ -555,11 +568,12 @@ RSpec.describe Metanorma::ISO do
555
568
  </copyright>
556
569
  <ext>
557
570
  <doctype>technical-corrigendum</doctype>
558
- <editorialgroup>
559
- <technical-committee/>
560
- <subcommittee/>
561
- <workgroup/>
571
+ <editorialgroup>
572
+ <agency>ISO</agency>
562
573
  </editorialgroup>
574
+ <approvalgroup>
575
+ <agency>ISO</agency>
576
+ </approvalgroup>
563
577
  <structuredidentifier>
564
578
  <project-number corrigendum="3" part="1">17301</project-number>
565
579
  </structuredidentifier>
@@ -627,11 +641,12 @@ RSpec.describe Metanorma::ISO do
627
641
  </copyright>
628
642
  <ext>
629
643
  <doctype>technical-corrigendum</doctype>
630
- <editorialgroup>
631
- <technical-committee/>
632
- <subcommittee/>
633
- <workgroup/>
644
+ <editorialgroup>
645
+ <agency>ISO</agency>
634
646
  </editorialgroup>
647
+ <approvalgroup>
648
+ <agency>ISO</agency>
649
+ </approvalgroup>
635
650
  <structuredidentifier>
636
651
  <project-number part='1' corrigendum='3'>17301</project-number>
637
652
  </structuredidentifier>
@@ -698,11 +713,12 @@ RSpec.describe Metanorma::ISO do
698
713
  </copyright>
699
714
  <ext>
700
715
  <doctype>technical-corrigendum</doctype>
701
- <editorialgroup>
702
- <technical-committee/>
703
- <subcommittee/>
704
- <workgroup/>
716
+ <editorialgroup>
717
+ <agency>ISO</agency>
705
718
  </editorialgroup>
719
+ <approvalgroup>
720
+ <agency>ISO</agency>
721
+ </approvalgroup>
706
722
  <structuredidentifier>
707
723
  <project-number corrigendum="3" part="1">17301</project-number>
708
724
  </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,18 @@ 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
+ :subcommittee: SC
197
+ :subcommittee-number: 2
198
+ :workgroup: WG
199
+ :workgroup-number: 3
200
+ :approval-technical-committee: TC
201
+ :approval-technical-committee-number: 1
202
+ :approval-subcommittee: SC
203
+ :approval-subcommittee-number: 2
204
+ :approval-workgroup: WG
205
+ :approval-workgroup-number: 3
164
206
  INPUT
165
207
  expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
166
208
  .to be_equivalent_to xmlpp(<<~"OUTPUT")
@@ -274,11 +316,20 @@ RSpec.describe Metanorma::ISO do
274
316
  </copyright>
275
317
  <ext>
276
318
  <doctype>technical-report</doctype>
277
- <editorialgroup>
278
- <technical-committee/>
279
- <subcommittee/>
280
- <workgroup/>
281
- </editorialgroup>
319
+ <editorialgroup>
320
+ <agency>IEC</agency>
321
+ <agency>IETF</agency>
322
+ <agency>ISO</agency>
323
+ <technical-committee number='1' type='TC'>TC</technical-committee>
324
+ <subcommittee number='2' type='SC'>SC</subcommittee>
325
+ <workgroup number='3' type='WG'>WG</workgroup>
326
+ </editorialgroup>
327
+ <approvalgroup>
328
+ <agency>ISO</agency>
329
+ <technical-committee number='1' type='TC'>TC</technical-committee>
330
+ <subcommittee number='2' type='SC'>SC</subcommittee>
331
+ <workgroup number='3' type='WG'>WG</workgroup>
332
+ </approvalgroup>
282
333
  <structuredidentifier>
283
334
  <project-number part="1" subpart="1">IEC/IETF/ISO 1000</project-number>
284
335
  </structuredidentifier>
@@ -290,6 +341,78 @@ RSpec.describe Metanorma::ISO do
290
341
  OUTPUT
291
342
  end
292
343
 
344
+ it "processes tech specification identifier" do
345
+ output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
346
+ = Document title
347
+ Author
348
+ :docfile: test.adoc
349
+ :nodoc:
350
+ :novalid:
351
+ :no-isobib:
352
+ :docnumber: 1000
353
+ :partnumber: 1-1
354
+ :copyright-year: 2001
355
+ :doctype: technical-specification
356
+ :docstage: 50
357
+ :docsubstage:
358
+ INPUT
359
+ expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
360
+ .to be_equivalent_to xmlpp(<<~"OUTPUT")
361
+ <iso-standard xmlns='https://www.metanorma.org/ns/iso' type='semantic' version="#{Metanorma::ISO::VERSION}">
362
+ <bibdata type='standard'>
363
+ <docidentifier type='ISO'>ISO/FDTS 1000-1-1</docidentifier>
364
+ <docidentifier type='iso-undated'>ISO/FDTS 1000-1-1</docidentifier>
365
+ <docidentifier type='iso-with-lang'>ISO/FDTS 1000-1-1(E)</docidentifier>
366
+ <docidentifier type='iso-reference'>ISO/FDTS 1000-1-1:2001(E)</docidentifier>
367
+ <docnumber>1000</docnumber>
368
+ <contributor>
369
+ <role type='author'/>
370
+ <organization>
371
+ <name>International Organization for Standardization</name>
372
+ <abbreviation>ISO</abbreviation>
373
+ </organization>
374
+ </contributor>
375
+ <contributor>
376
+ <role type='publisher'/>
377
+ <organization>
378
+ <name>International Organization for Standardization</name>
379
+ <abbreviation>ISO</abbreviation>
380
+ </organization>
381
+ </contributor>
382
+ <language>en</language>
383
+ <script>Latn</script>
384
+ <status>
385
+ <stage abbreviation='FDTS TS'>50</stage>
386
+ <substage>00</substage>
387
+ </status>
388
+ <copyright>
389
+ <from>2001</from>
390
+ <owner>
391
+ <organization>
392
+ <name>International Organization for Standardization</name>
393
+ <abbreviation>ISO</abbreviation>
394
+ </organization>
395
+ </owner>
396
+ </copyright>
397
+ <ext>
398
+ <doctype>technical-specification</doctype>
399
+ <editorialgroup>
400
+ <agency>ISO</agency>
401
+ </editorialgroup>
402
+ <approvalgroup>
403
+ <agency>ISO</agency>
404
+ </approvalgroup>
405
+ <structuredidentifier>
406
+ <project-number part='1' subpart='1'>ISO 1000</project-number>
407
+ </structuredidentifier>
408
+ <stagename>Final draft</stagename>
409
+ </ext>
410
+ </bibdata>
411
+ <sections> </sections>
412
+ </iso-standard>
413
+ OUTPUT
414
+ end
415
+
293
416
  it "processes Russian titles" do
294
417
  output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
295
418
  = Document title
@@ -381,13 +504,14 @@ RSpec.describe Metanorma::ISO do
381
504
  </owner>
382
505
  </copyright>
383
506
  <ext>
384
- <doctype>article</doctype>
507
+ <doctype>standard</doctype>
385
508
  <horizontal>true</horizontal>
386
- <editorialgroup>
387
- <technical-committee/>
388
- <subcommittee/>
389
- <workgroup/>
390
- </editorialgroup>
509
+ <editorialgroup>
510
+ <agency>ISO</agency>
511
+ </editorialgroup>
512
+ <approvalgroup>
513
+ <agency>ISO</agency>
514
+ </approvalgroup>
391
515
  <structuredidentifier>
392
516
  <project-number part='1'>ISO 1000</project-number>
393
517
  </structuredidentifier>
@@ -490,11 +614,12 @@ RSpec.describe Metanorma::ISO do
490
614
  </copyright>
491
615
  <ext>
492
616
  <doctype>this-is-a-doctype</doctype>
493
- <editorialgroup>
494
- <technical-committee/>
495
- <subcommittee/>
496
- <workgroup/>
497
- </editorialgroup>
617
+ <editorialgroup>
618
+ <agency>SD</agency>
619
+ </editorialgroup>
620
+ <approvalgroup>
621
+ <agency>ISO</agency>
622
+ </approvalgroup>
498
623
  <structuredidentifier>
499
624
  <project-number part="1" subpart="1">SD 1000</project-number>
500
625
  </structuredidentifier>
@@ -561,11 +686,12 @@ RSpec.describe Metanorma::ISO do
561
686
  </copyright>
562
687
  <ext>
563
688
  <doctype>international-standard</doctype>
564
- <editorialgroup>
565
- <technical-committee/>
566
- <subcommittee/>
567
- <workgroup/>
568
- </editorialgroup>
689
+ <editorialgroup>
690
+ <agency>ISO</agency>
691
+ </editorialgroup>
692
+ <approvalgroup>
693
+ <agency>ISO</agency>
694
+ </approvalgroup>
569
695
  <structuredidentifier>
570
696
  <project-number>ISO 1000</project-number>
571
697
  </structuredidentifier>
@@ -629,12 +755,13 @@ RSpec.describe Metanorma::ISO do
629
755
  </owner>
630
756
  </copyright>
631
757
  <ext>
632
- <doctype>article</doctype>
633
- <editorialgroup>
634
- <technical-committee/>
635
- <subcommittee/>
636
- <workgroup/>
758
+ <doctype>standard</doctype>
759
+ <editorialgroup>
760
+ <agency>ISO</agency>
637
761
  </editorialgroup>
762
+ <approvalgroup>
763
+ <agency>ISO</agency>
764
+ </approvalgroup>
638
765
  <structuredidentifier>
639
766
  <project-number>ISO 1000</project-number>
640
767
  </structuredidentifier>
@@ -698,12 +825,13 @@ RSpec.describe Metanorma::ISO do
698
825
  </owner>
699
826
  </copyright>
700
827
  <ext>
701
- <doctype>article</doctype>
702
- <editorialgroup>
703
- <technical-committee/>
704
- <subcommittee/>
705
- <workgroup/>
706
- </editorialgroup>
828
+ <doctype>standard</doctype>
829
+ <editorialgroup>
830
+ <agency>ISO</agency>
831
+ </editorialgroup>
832
+ <approvalgroup>
833
+ <agency>ISO</agency>
834
+ </approvalgroup>
707
835
  <structuredidentifier>
708
836
  <project-number>ISO 1000</project-number>
709
837
  </structuredidentifier>
@@ -767,11 +895,12 @@ RSpec.describe Metanorma::ISO do
767
895
  </copyright>
768
896
  <ext>
769
897
  <doctype>directive</doctype>
770
- <editorialgroup>
771
- <technical-committee/>
772
- <subcommittee/>
773
- <workgroup/>
774
- </editorialgroup>
898
+ <editorialgroup>
899
+ <agency>ISO</agency>
900
+ </editorialgroup>
901
+ <approvalgroup>
902
+ <agency>ISO</agency>
903
+ </approvalgroup>
775
904
  <structuredidentifier>
776
905
  <project-number>ISO 1000</project-number>
777
906
  </structuredidentifier>
@@ -1142,12 +1271,13 @@ RSpec.describe Metanorma::ISO do
1142
1271
  </bibitem>
1143
1272
  </relation>
1144
1273
  <ext>
1145
- <doctype>article</doctype>
1146
- <editorialgroup>
1147
- <technical-committee/>
1148
- <subcommittee/>
1149
- <workgroup/>
1150
- </editorialgroup>
1274
+ <doctype>standard</doctype>
1275
+ <editorialgroup>
1276
+ <agency>ISO</agency>
1277
+ </editorialgroup>
1278
+ <approvalgroup>
1279
+ <agency>ISO</agency>
1280
+ </approvalgroup>
1151
1281
  <stagename>International standard</stagename>
1152
1282
  </ext>
1153
1283
  </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}