metanorma-standoc 1.4.4 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +4 -9
  3. data/.github/workflows/ubuntu.yml +1 -5
  4. data/.github/workflows/windows.yml +2 -12
  5. data/.rubocop.yml +1 -1
  6. data/lib/asciidoctor/standoc/base.rb +11 -5
  7. data/lib/asciidoctor/standoc/base_structured_text_preprocessor.rb +123 -0
  8. data/lib/asciidoctor/standoc/basicdoc.rng +23 -0
  9. data/lib/asciidoctor/standoc/cleanup.rb +32 -12
  10. data/lib/asciidoctor/standoc/cleanup_amend.rb +54 -0
  11. data/lib/asciidoctor/standoc/cleanup_block.rb +0 -2
  12. data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +11 -24
  13. data/lib/asciidoctor/standoc/cleanup_footnotes.rb +0 -3
  14. data/lib/asciidoctor/standoc/cleanup_inline.rb +62 -1
  15. data/lib/asciidoctor/standoc/cleanup_ref.rb +10 -7
  16. data/lib/asciidoctor/standoc/cleanup_section.rb +91 -8
  17. data/lib/asciidoctor/standoc/cleanup_terms.rb +12 -2
  18. data/lib/asciidoctor/standoc/converter.rb +3 -3
  19. data/lib/asciidoctor/standoc/front.rb +0 -12
  20. data/lib/asciidoctor/standoc/front_contributor.rb +51 -10
  21. data/lib/asciidoctor/standoc/inline.rb +21 -31
  22. data/lib/asciidoctor/standoc/isodoc.rng +137 -21
  23. data/lib/asciidoctor/standoc/json2_text_preprocessor.rb +44 -0
  24. data/lib/asciidoctor/standoc/log.rb +10 -1
  25. data/lib/asciidoctor/standoc/macros.rb +45 -33
  26. data/lib/asciidoctor/standoc/ref.rb +45 -45
  27. data/lib/asciidoctor/standoc/section.rb +39 -30
  28. data/lib/asciidoctor/standoc/table.rb +3 -2
  29. data/lib/asciidoctor/standoc/utils.rb +18 -1
  30. data/lib/asciidoctor/standoc/validate.rb +30 -18
  31. data/lib/asciidoctor/standoc/validate_section.rb +1 -1
  32. data/lib/asciidoctor/standoc/views/datamodel/model_representation.adoc.erb +10 -10
  33. data/lib/asciidoctor/standoc/yaml2_text_preprocessor.rb +46 -0
  34. data/lib/liquid/custom_blocks/key_iterator.rb +21 -0
  35. data/lib/liquid/custom_filters/values.rb +7 -0
  36. data/lib/metanorma/standoc.rb +0 -5
  37. data/lib/metanorma/standoc/version.rb +20 -1
  38. data/metanorma-standoc.gemspec +4 -5
  39. data/spec/asciidoctor-standoc/base_spec.rb +140 -7
  40. data/spec/asciidoctor-standoc/blocks_spec.rb +275 -149
  41. data/spec/asciidoctor-standoc/cleanup_spec.rb +1372 -56
  42. data/spec/asciidoctor-standoc/inline_spec.rb +133 -6
  43. data/spec/asciidoctor-standoc/isobib_cache_spec.rb +9 -7
  44. data/spec/asciidoctor-standoc/macros_json2text_spec.rb +10 -0
  45. data/spec/asciidoctor-standoc/macros_spec.rb +43 -23
  46. data/spec/asciidoctor-standoc/macros_yaml2text_spec.rb +5 -560
  47. data/spec/asciidoctor-standoc/refs_dl_spec.rb +9 -7
  48. data/spec/asciidoctor-standoc/refs_spec.rb +43 -34
  49. data/spec/asciidoctor-standoc/section_spec.rb +42 -39
  50. data/spec/asciidoctor-standoc/table_spec.rb +119 -113
  51. data/spec/asciidoctor-standoc/validate_spec.rb +45 -1
  52. data/spec/assets/i18n.yaml +17 -2
  53. data/spec/examples/codes_table.html +1365 -1365
  54. data/spec/fixtures/macros_datamodel/address_class_profile.xml +46 -46
  55. data/spec/fixtures/macros_datamodel/address_component_profile.xml +21 -21
  56. data/spec/fixtures/macros_datamodel/blank_definition_profile.xml +21 -21
  57. data/spec/metanorma/processor_spec.rb +1 -2
  58. data/spec/spec_helper.rb +110 -109
  59. data/spec/support/shared_examples/structured_data_2_text_preprocessor.rb +629 -0
  60. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +71 -71
  61. data/spec/vcr_cassettes/isobib_get_123.yml +16 -16
  62. data/spec/vcr_cassettes/isobib_get_123_1.yml +36 -36
  63. data/spec/vcr_cassettes/isobib_get_123_2001.yml +16 -16
  64. data/spec/vcr_cassettes/isobib_get_124.yml +17 -17
  65. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +8 -8
  66. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +39 -37
  67. metadata +29 -14
  68. data/lib/asciidoctor-yaml/i18n-en.yaml +0 -20
  69. data/lib/asciidoctor-yaml/i18n-fr.yaml +0 -13
  70. data/lib/asciidoctor-yaml/i18n-zh-Hans.yaml +0 -15
  71. data/lib/asciidoctor/standoc/i18n.rb +0 -39
  72. data/lib/asciidoctor/standoc/macros_yaml2text.rb +0 -165
  73. data/lib/metanorma/standoc/latexml_requirement.rb +0 -62
  74. data/lib/metanorma/standoc/requirement.rb +0 -13
@@ -39,7 +39,7 @@ RSpec.describe Asciidoctor::Standoc do
39
39
  #{BLANK_HDR}
40
40
  <sections>
41
41
  </sections><bibliography><references id="_" obligation="informative" normative="true">
42
- <title>Normative References</title>
42
+ <title>Normative references</title>
43
43
  #{NORM_REF_BOILERPLATE}
44
44
  <bibitem id="iso123" type="standard">
45
45
  <fetched>#{Date.today}</fetched>
@@ -77,9 +77,9 @@ it "processes complex dl reference" do
77
77
  [bibliography]
78
78
  == Normative References
79
79
 
80
- [[ISO/TC211]]
80
+ [[ISOTC211]]
81
81
  [%bibitem]
82
- === {blank}
82
+ === Other Title
83
83
  fetched:: 2019-06-30
84
84
  title::
85
85
  type::: main
@@ -289,12 +289,14 @@ formattedref::
289
289
  #{BLANK_HDR}
290
290
  <sections>
291
291
  </sections><bibliography><references id="_" obligation="informative" normative="true">
292
- <title>Normative References</title>
292
+ <title>Normative references</title>
293
293
  #{NORM_REF_BOILERPLATE}
294
294
  <bibitem id="TC211" type="standard">
295
295
  <fetched>2019-06-30</fetched>
296
296
  <title type="main" format="text/plain">Geographic information</title>
297
297
  <title type="subtitle" format="text/plain" language="en" script="Latn">Geographic information subtitle</title>
298
+ <title type='title-main' format='text/plain'>Other Title</title>
299
+ <title type='main' format='text/plain'>Other Title</title>
298
300
  <uri type="src">https://www.iso.org/standard/53798.html</uri>
299
301
  <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:53798:en</uri>
300
302
  <uri type="rss">https://www.iso.org/contents/data/standard/05/37/53798.detail.rss</uri>
@@ -446,7 +448,7 @@ OUTPUT
446
448
  [bibliography]
447
449
  == Normative References
448
450
 
449
- [[ISO/TC211]]
451
+ [[ISOTC211]]
450
452
  [%bibitem]
451
453
  === {blank}
452
454
  fetched:: 2019-06-30
@@ -607,7 +609,7 @@ series.formattedref.script:: Latn
607
609
  #{BLANK_HDR}
608
610
  <sections>
609
611
  </sections><bibliography><references id="_" obligation="informative" normative="true">
610
- <title>Normative References</title>
612
+ <title>Normative references</title>
611
613
  #{NORM_REF_BOILERPLATE}
612
614
  <bibitem id="TC211" type="standard">
613
615
  <fetched>2019-06-30</fetched>
@@ -807,7 +809,7 @@ OUTPUT
807
809
  <title>Subsection</title>
808
810
  </clause>
809
811
  <references id='_' obligation='informative' normative="true">
810
- <title>Normative References</title>
812
+ <title>Normative references</title>
811
813
  <bibitem id='A'>
812
814
  <formattedref format='application/x-isodoc+xml'>Title</formattedref>
813
815
  <docidentifier>B</docidentifier>
@@ -15,7 +15,7 @@ RSpec.describe Asciidoctor::Standoc do
15
15
  #{BLANK_HDR}
16
16
  <sections>
17
17
  </sections><bibliography><references id="_" obligation="informative" normative="true">
18
- <title>Normative References</title>
18
+ <title>Normative references</title>
19
19
  #{NORM_REF_BOILERPLATE}
20
20
  <bibitem id="iso123" type="standard">
21
21
  <title format="text/plain">Standard</title>
@@ -30,7 +30,7 @@ RSpec.describe Asciidoctor::Standoc do
30
30
  </bibitem>
31
31
  <bibitem id='iso124' type='standard'>
32
32
  <title format='text/plain'>Standard</title>
33
- <docidentifier type='metanorma'>[1]</docidentifier>
33
+ <docidentifier type='metanorma'>[2]</docidentifier>
34
34
  <docidentifier>ISO 123</docidentifier>
35
35
  <docnumber>123</docnumber>
36
36
  <contributor>
@@ -58,7 +58,7 @@ RSpec.describe Asciidoctor::Standoc do
58
58
  #{BLANK_HDR}
59
59
  <sections>
60
60
  </sections><bibliography><references id="_" obligation="informative" normative="true">
61
- <title>Normative References</title>
61
+ <title>Normative references</title>
62
62
  #{NORM_REF_BOILERPLATE}
63
63
  <bibitem id="iso123" type="standard">
64
64
  <title format="text/plain">Standard</title>
@@ -77,7 +77,7 @@ RSpec.describe Asciidoctor::Standoc do
77
77
  </bibitem>
78
78
  <bibitem id="iso124" type="standard">
79
79
  <title format="text/plain">Standard</title>
80
- <docidentifier type='metanorma'>[1]</docidentifier>
80
+ <docidentifier type='metanorma'>[2]</docidentifier>
81
81
  <docidentifier>ISO 123:1066-1067</docidentifier>
82
82
  <docnumber>123</docnumber>
83
83
  <date type="published">
@@ -120,12 +120,12 @@ RSpec.describe Asciidoctor::Standoc do
120
120
  <title>Foreword</title>
121
121
  <p id='_'>
122
122
  <eref type='inline' bibitemid='iso123' citeas='ISO 123'/>
123
- <eref type='inline' bibitemid='iso124' citeas='[1]'/>
123
+ <eref type='inline' bibitemid='iso124' citeas='[2]'/>
124
124
  </p>
125
125
  </foreword>
126
126
  </preface>
127
127
  <sections>
128
- </sections><bibliography><references id="_" obligation="informative" normative="true"><title>Normative References</title>
128
+ </sections><bibliography><references id="_" obligation="informative" normative="true"><title>Normative references</title>
129
129
  #{NORM_REF_BOILERPLATE}
130
130
  <bibitem type="standard" id="iso123">
131
131
  <uri type="src">https://www.iso.org/standard/23281.html</uri>
@@ -213,7 +213,7 @@ RSpec.describe Asciidoctor::Standoc do
213
213
  </bibitem>
214
214
  </relation>
215
215
  <docidentifier>ISO 123</docidentifier>
216
- <docidentifier type='metanorma'>[1]</docidentifier>
216
+ <docidentifier type='metanorma'>[2]</docidentifier>
217
217
  <title><em>Standard</em></title>
218
218
  </bibitem>
219
219
  </references></bibliography>
@@ -224,7 +224,7 @@ RSpec.describe Asciidoctor::Standoc do
224
224
 
225
225
  it "fetches simple ISO reference" do
226
226
  # mock_isobib_get_123
227
- VCR.use_cassette "isobib_get_123_1" do
227
+ VCR.use_cassette "isobib_get_123_1", :re_record_interval => 25200 do
228
228
  expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp( <<~"OUTPUT")
229
229
  #{ISOBIB_BLANK_HDR}
230
230
  [bibliography]
@@ -236,7 +236,7 @@ RSpec.describe Asciidoctor::Standoc do
236
236
  #{BLANK_HDR}
237
237
  <sections>
238
238
 
239
- </sections><bibliography><references id="_" obligation="informative" normative="true"><title>Normative References</title>
239
+ </sections><bibliography><references id="_" obligation="informative" normative="true"><title>Normative references</title>
240
240
  #{NORM_REF_BOILERPLATE}
241
241
  <bibitem id='iso123' type='standard'>
242
242
  <fetched>#{Date.today}</fetched>
@@ -250,6 +250,7 @@ RSpec.describe Asciidoctor::Standoc do
250
250
  <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
251
251
  <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
252
252
  <docidentifier type='ISO'>ISO 123 (all parts)</docidentifier>
253
+ <docidentifier type='URN'>urn:iso:std:iso:123</docidentifier>
253
254
  <docnumber>123</docnumber>
254
255
  <date type='published'>
255
256
  <on>2001</on>
@@ -296,6 +297,7 @@ RSpec.describe Asciidoctor::Standoc do
296
297
  <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
297
298
  <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
298
299
  <docidentifier type='ISO'>ISO 123:2001</docidentifier>
300
+ <docidentifier type='URN'>urn:iso:std:iso:123:stage-90.93:ed-3:en,fr</docidentifier>
299
301
  <docnumber>123</docnumber>
300
302
  <date type='published'>
301
303
  <on>2001</on>
@@ -356,7 +358,8 @@ RSpec.describe Asciidoctor::Standoc do
356
358
  <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
357
359
  <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
358
360
  <docidentifier type='ISO'>ISO 123 (all parts)</docidentifier>
359
- <docidentifier type='metanorma'>[1]</docidentifier>
361
+ <docidentifier type='metanorma'>[2]</docidentifier>
362
+ <docidentifier type='URN'>urn:iso:std:iso:123</docidentifier>
360
363
  <docnumber>123</docnumber>
361
364
  <date type='published'>
362
365
  <on>2001</on>
@@ -403,6 +406,7 @@ RSpec.describe Asciidoctor::Standoc do
403
406
  <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
404
407
  <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
405
408
  <docidentifier type='ISO'>ISO 123:2001</docidentifier>
409
+ <docidentifier type='URN'>urn:iso:std:iso:123:stage-90.93:ed-3:en,fr</docidentifier>
406
410
  <docnumber>123</docnumber>
407
411
  <date type='published'>
408
412
  <on>2001</on>
@@ -470,7 +474,7 @@ RSpec.describe Asciidoctor::Standoc do
470
474
  #{BLANK_HDR}
471
475
  <sections>
472
476
  </sections><bibliography><references id="_" obligation="informative" normative="true">
473
- <title>Normative References</title>
477
+ <title>Normative references</title>
474
478
  #{NORM_REF_BOILERPLATE}
475
479
  <bibitem id="iso123" type="standard">
476
480
  <title format="text/plain">Standard</title>
@@ -485,7 +489,7 @@ RSpec.describe Asciidoctor::Standoc do
485
489
  </bibitem>
486
490
  <bibitem id='iso124' type='standard'>
487
491
  <title format='text/plain'>Standard</title>
488
- <docidentifier type='metanorma'>[1]</docidentifier>
492
+ <docidentifier type='metanorma'>[2]</docidentifier>
489
493
  <docidentifier>IEC 123</docidentifier>
490
494
  <docnumber>123</docnumber>
491
495
  <contributor>
@@ -504,7 +508,7 @@ RSpec.describe Asciidoctor::Standoc do
504
508
  it "processes dated ISO reference and joint ISO/IEC references" do
505
509
  # mock_isobib_get_iec12382
506
510
  # mock_isobib_get_124
507
- VCR.use_cassette "dated_iso_ref_joint_iso_iec" do
511
+ VCR.use_cassette "dated_iso_ref_joint_iso_iec", :re_record_interval => 25200 do
508
512
  expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp( <<~"OUTPUT")
509
513
  #{ISOBIB_BLANK_HDR}
510
514
  [bibliography]
@@ -519,7 +523,7 @@ RSpec.describe Asciidoctor::Standoc do
519
523
  <sections>
520
524
 
521
525
  </sections><bibliography><references id="_" obligation="informative" normative="true">
522
- <title>Normative References</title>
526
+ <title>Normative references</title>
523
527
  #{NORM_REF_BOILERPLATE}
524
528
  <bibitem type="standard" id="iso123">
525
529
  <fetched>#{Date.today}</fetched>
@@ -531,6 +535,7 @@ RSpec.describe Asciidoctor::Standoc do
531
535
  <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:21071:en</uri>
532
536
  <uri type="rss">https://www.iso.org/contents/data/standard/02/10/21071.detail.rss</uri>
533
537
  <docidentifier type="ISO">ISO/IEC TR 12382:1992</docidentifier>
538
+ <docidentifier type='URN'>urn:iso:std:iso-iec:tr:12382:stage-90.93:ed-2:en,fr</docidentifier>
534
539
  <docnumber>12382</docnumber>
535
540
  <date type="published">
536
541
  <on>1992</on>
@@ -583,6 +588,7 @@ RSpec.describe Asciidoctor::Standoc do
583
588
  <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:61884:en</uri>
584
589
  <uri type="rss">https://www.iso.org/contents/data/standard/06/18/61884.detail.rss</uri>
585
590
  <docidentifier type="ISO">ISO 124:2014</docidentifier>
591
+ <docidentifier type='URN'>urn:iso:std:iso:124:stage-90.93:ed-7:en,fr</docidentifier>
586
592
  <docnumber>124</docnumber>
587
593
  <date type="published">
588
594
  <on>2014</on>
@@ -630,7 +636,8 @@ RSpec.describe Asciidoctor::Standoc do
630
636
  <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:21071:en</uri>
631
637
  <uri type="rss">https://www.iso.org/contents/data/standard/02/10/21071.detail.rss</uri>
632
638
  <docidentifier type="ISO">ISO/IEC TR 12382:1992</docidentifier>
633
- <docidentifier type='metanorma'>[1]</docidentifier>
639
+ <docidentifier type='metanorma'>[3]</docidentifier>
640
+ <docidentifier type='URN'>urn:iso:std:iso-iec:tr:12382:stage-90.93:ed-2:en,fr</docidentifier>
634
641
  <docnumber>12382</docnumber>
635
642
  <date type="published">
636
643
  <on>1992</on>
@@ -683,7 +690,8 @@ RSpec.describe Asciidoctor::Standoc do
683
690
  <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:61884:en</uri>
684
691
  <uri type="rss">https://www.iso.org/contents/data/standard/06/18/61884.detail.rss</uri>
685
692
  <docidentifier type="ISO">ISO 124:2014</docidentifier>
686
- <docidentifier type='metanorma'>[1]</docidentifier>
693
+ <docidentifier type='metanorma'>[4]</docidentifier>
694
+ <docidentifier type='URN'>urn:iso:std:iso:124:stage-90.93:ed-7:en,fr</docidentifier>
687
695
  <docnumber>124</docnumber>
688
696
  <date type="published">
689
697
  <on>2014</on>
@@ -729,7 +737,7 @@ RSpec.describe Asciidoctor::Standoc do
729
737
  end
730
738
 
731
739
  it "declines to fetch individual references" do
732
- VCR.use_cassette "dated_iso_ref_joint_iso_iec" do
740
+ VCR.use_cassette "dated_iso_ref_joint_iso_iec", :re_record_interval => 25200 do
733
741
  expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp( <<~"OUTPUT")
734
742
  #{ISOBIB_BLANK_HDR}
735
743
  [bibliography]
@@ -742,7 +750,7 @@ RSpec.describe Asciidoctor::Standoc do
742
750
  <sections>
743
751
 
744
752
  </sections><bibliography><references id="_" obligation="informative" normative="true">
745
- <title>Normative References</title>
753
+ <title>Normative references</title>
746
754
  #{NORM_REF_BOILERPLATE}
747
755
  <bibitem id='iso123'>
748
756
  <formattedref format='application/x-isodoc+xml'>
@@ -763,6 +771,7 @@ RSpec.describe Asciidoctor::Standoc do
763
771
  <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:61884:en</uri>
764
772
  <uri type='rss'>https://www.iso.org/contents/data/standard/06/18/61884.detail.rss</uri>
765
773
  <docidentifier type='ISO'>ISO 124:2014</docidentifier>
774
+ <docidentifier type='URN'>urn:iso:std:iso:124:stage-90.93:ed-7:en,fr</docidentifier>
766
775
  <docnumber>124</docnumber>
767
776
  <date type='published'>
768
777
  <on>2014</on>
@@ -821,7 +830,7 @@ OUTPUT
821
830
  #{BLANK_HDR}
822
831
  <sections>
823
832
  </sections><bibliography><references id="_" obligation="informative" normative="true">
824
- <title>Normative References</title>
833
+ <title>Normative references</title>
825
834
  #{NORM_REF_BOILERPLATE}
826
835
  <bibitem id="iso123" type="standard">
827
836
  <title format="text/plain">Standard</title>
@@ -869,7 +878,7 @@ OUTPUT
869
878
  </bibitem>
870
879
  <bibitem id='iso126' type='standard'>
871
880
  <title format='text/plain'>Standard</title>
872
- <docidentifier type='metanorma'>[1]</docidentifier>
881
+ <docidentifier type='metanorma'>[4]</docidentifier>
873
882
  <docidentifier>ISO 123:—</docidentifier>
874
883
  <docnumber>123</docnumber>
875
884
  <date type='published'>
@@ -902,7 +911,7 @@ OUTPUT
902
911
  #{BLANK_HDR}
903
912
  <sections>
904
913
  </sections><bibliography><references id="_" obligation="informative" normative="true">
905
- <title>Normative References</title>
914
+ <title>Normative references</title>
906
915
  #{NORM_REF_BOILERPLATE}
907
916
  <bibitem id="iso123" type="standard">
908
917
  <title format="text/plain">Standard</title>
@@ -923,7 +932,7 @@ OUTPUT
923
932
  </bibitem>
924
933
  <bibitem id='iso124' type='standard'>
925
934
  <title format='text/plain'>Standard</title>
926
- <docidentifier type='metanorma'>[1]</docidentifier>
935
+ <docidentifier type='metanorma'>[2]</docidentifier>
927
936
  <docidentifier>ISO 123:1066 (all parts)</docidentifier>
928
937
  <docnumber>123</docnumber>
929
938
  <date type='published'>
@@ -947,7 +956,7 @@ OUTPUT
947
956
 
948
957
  it "processes RFC reference in Normative References" do
949
958
  # mock_rfcbib_get_rfc8341
950
- VCR.use_cassette "rfcbib_get_rfc8341" do
959
+ VCR.use_cassette "rfcbib_get_rfc8341", :re_record_interval => 25200 do
951
960
  expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp( <<~"OUTPUT")
952
961
  #{ISOBIB_BLANK_HDR}
953
962
  [bibliography]
@@ -969,7 +978,7 @@ OUTPUT
969
978
  </p>
970
979
  </clause>
971
980
  </sections><bibliography><references id="_" obligation="informative" normative="true">
972
- <title>Normative References</title>
981
+ <title>Normative references</title>
973
982
  #{NORM_REF_BOILERPLATE}
974
983
  <bibitem id="iso123" type="standard">
975
984
  <fetched>#{Date.today}</fetched>
@@ -1036,7 +1045,7 @@ OUTPUT
1036
1045
  <uri type='xml'>https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml</uri>
1037
1046
  <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
1038
1047
  <docidentifier type="IETF">RFC 8341</docidentifier>
1039
- <docidentifier type='metanorma'>[1]</docidentifier>
1048
+ <docidentifier type='metanorma'>[2]</docidentifier>
1040
1049
  <docidentifier type='rfc-anchor'>RFC8341</docidentifier>
1041
1050
  <docidentifier type="DOI">10.17487/RFC8341</docidentifier>
1042
1051
  <date type="published">
@@ -1110,7 +1119,7 @@ OUTPUT
1110
1119
  <sections>
1111
1120
 
1112
1121
  </sections><bibliography><references id="_" obligation="informative" normative="true">
1113
- <title>Normative References</title>
1122
+ <title>Normative references</title>
1114
1123
  #{NORM_REF_BOILERPLATE}
1115
1124
  <bibitem id="iso123">
1116
1125
  <formattedref format="application/x-isodoc+xml">
@@ -1123,7 +1132,7 @@ OUTPUT
1123
1132
  <formattedref format='application/x-isodoc+xml'>
1124
1133
  <em>Standard</em>
1125
1134
  </formattedref>
1126
- <docidentifier type='metanorma'>[1]</docidentifier>
1135
+ <docidentifier type='metanorma'>[2]</docidentifier>
1127
1136
  <docidentifier>XYZ 123:1066 (all parts)</docidentifier>
1128
1137
  <docnumber>123:1066 (all parts)</docnumber>
1129
1138
  </bibitem>
@@ -1198,7 +1207,7 @@ OUTPUT
1198
1207
  * [[[iso124,(1)ISO 123]]] _Standard_
1199
1208
  INPUT
1200
1209
  <?xml version="1.0" encoding="UTF-8"?>
1201
- <standard-document xmlns="https://www.metanorma.org/ns/standoc">
1210
+ <standard-document xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="#{Metanorma::Standoc::VERSION}">
1202
1211
  <bibdata type="standard">
1203
1212
  <title language="en" format="text/plain">Document title</title>
1204
1213
  <language>en</language>
@@ -1214,7 +1223,7 @@ OUTPUT
1214
1223
  <sections>
1215
1224
 
1216
1225
  </sections><bibliography><references id="_" obligation="informative" normative="true">
1217
- <title>Normative References</title>
1226
+ <title>Normative references</title>
1218
1227
  #{NORM_REF_BOILERPLATE}
1219
1228
  <bibitem id="iso123" type="standard">
1220
1229
  <title format="text/plain">Standard</title>
@@ -1229,7 +1238,7 @@ OUTPUT
1229
1238
  </bibitem>
1230
1239
  <bibitem id='iso124' type='standard'>
1231
1240
  <title format='text/plain'>Standard</title>
1232
- <docidentifier type='metanorma'>[1]</docidentifier>
1241
+ <docidentifier type='metanorma'>[2]</docidentifier>
1233
1242
  <docidentifier type='ISO'>ISO 123</docidentifier>
1234
1243
  <docnumber>123</docnumber>
1235
1244
  <contributor>
@@ -1260,7 +1269,7 @@ OUTPUT
1260
1269
  INPUT
1261
1270
  #{BLANK_HDR}
1262
1271
  <sections>
1263
- <clause id='_' inline-header='false' obligation='normative'>
1272
+ <clause id='_' inline-header='false' obligation='normative' type="scope">
1264
1273
  <title>Scope</title>
1265
1274
  <p id='_'>
1266
1275
  <eref type='inline' bibitemid='iso123' citeas='ISO 123'/>
@@ -1278,7 +1287,7 @@ OUTPUT
1278
1287
  </sections>
1279
1288
  <bibliography>
1280
1289
  <references id='_' normative='true' obligation='informative'>
1281
- <title>Normative References</title>
1290
+ <title>Normative references</title>
1282
1291
  <p id='_'>
1283
1292
  The following documents are referred to in the text in such a way that
1284
1293
  some or all of their content constitutes requirements of this document.
@@ -1321,7 +1330,7 @@ OUTPUT
1321
1330
  INPUT
1322
1331
  #{BLANK_HDR}
1323
1332
  <sections>
1324
- <clause id='_' inline-header='false' obligation='normative'>
1333
+ <clause id='_' inline-header='false' obligation='normative' type="scope">
1325
1334
  <title>Scope</title>
1326
1335
  <p id='_'>
1327
1336
  <eref type='inline' bibitemid='iso123' citeas='ISO 123 (all parts)'/>
@@ -1360,7 +1369,7 @@ OUTPUT
1360
1369
  </sections>
1361
1370
  <bibliography>
1362
1371
  <references id='_' normative='true' obligation='informative'>
1363
- <title>Normative References</title>
1372
+ <title>Normative references</title>
1364
1373
  <p id='_'>
1365
1374
  The following documents are referred to in the text in such a way that
1366
1375
  some or all of their content constitutes requirements of this document.
@@ -59,7 +59,7 @@ RSpec.describe Asciidoctor::Standoc do
59
59
  [.nonterm]
60
60
  ==== General
61
61
 
62
- ==== Symbols 1
62
+ ==== Symbols
63
63
 
64
64
  == Abbreviated Terms
65
65
 
@@ -82,6 +82,7 @@ RSpec.describe Asciidoctor::Standoc do
82
82
  INPUT
83
83
  #{BLANK_HDR.sub(/<status>/, "<abstract> <p>Text</p> </abstract><status>")}
84
84
  <preface><abstract id="_">
85
+ <title>Abstract</title>
85
86
  <p id="_">Text</p>
86
87
  </abstract><foreword id='_' obligation="informative">
87
88
  <title>Foreword</title>
@@ -101,7 +102,7 @@ RSpec.describe Asciidoctor::Standoc do
101
102
  </preface><sections>
102
103
 
103
104
 
104
- <clause id="_" inline-header="false" obligation="normative">
105
+ <clause id="_" inline-header="false" obligation="normative" type="scope">
105
106
  <title>Scope</title>
106
107
  <p id="_">Text</p>
107
108
  </clause>
@@ -143,14 +144,14 @@ RSpec.describe Asciidoctor::Standoc do
143
144
  <preferred>Term2</preferred>
144
145
  </term>
145
146
  </terms>
146
- <definitions id="_"><title>Symbols and Abbreviated Terms</title><clause id="_" inline-header="false" obligation="normative">
147
+ <definitions id="_" obligation="normative"><title>Symbols and abbreviated terms</title><clause id="_" inline-header="false" obligation="normative">
147
148
  <title>General</title>
148
149
  </clause>
149
- <definitions id="_">
150
- <title>Symbols 1</title>
150
+ <definitions id="_" obligation="normative" type="symbols">
151
+ <title>Symbols</title>
151
152
  </definitions></definitions></clause>
152
- <definitions id="_">
153
- <title>Abbreviated Terms</title>
153
+ <definitions id="_" obligation="normative" type="abbreviated_terms">
154
+ <title>Abbreviated terms</title>
154
155
  </definitions>
155
156
  <clause id="_" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="_" inline-header="false" obligation="normative">
156
157
  <title>Introduction</title>
@@ -168,7 +169,7 @@ RSpec.describe Asciidoctor::Standoc do
168
169
  <title>Annex A.1</title>
169
170
  </clause>
170
171
  </annex><bibliography><references id="_" obligation="informative" normative="true">
171
- <title>Normative References</title>
172
+ <title>Normative references</title>
172
173
  <p id="_">There are no normative references in this document.</p>
173
174
  </references><clause id="_" obligation="informative">
174
175
  <title>Bibliography</title>
@@ -256,7 +257,7 @@ RSpec.describe Asciidoctor::Standoc do
256
257
  [language=en,script=Latn]
257
258
  ==== General
258
259
 
259
- ==== Symbols 1
260
+ ==== Symbols
260
261
 
261
262
  [language=en,script=Latn]
262
263
  == Abbreviated Terms
@@ -287,6 +288,7 @@ RSpec.describe Asciidoctor::Standoc do
287
288
  INPUT
288
289
  #{BLANK_HDR.sub(/<status>/, "<abstract> <p>Text</p> </abstract><status>")}
289
290
  <preface><abstract id="_" language="en" script="Latn">
291
+ <title>Abstract</title>
290
292
  <p id="_">Text</p>
291
293
  </abstract><foreword id='_' language='en' script='Latn' obligation='informative'>
292
294
  <title>Foreword</title>
@@ -306,7 +308,7 @@ RSpec.describe Asciidoctor::Standoc do
306
308
  </preface><sections>
307
309
 
308
310
 
309
- <clause id="_" language="en" script="Latn" inline-header="false" obligation="normative">
311
+ <clause id="_" language="en" script="Latn" inline-header="false" obligation="normative" type="scope">
310
312
  <title>Scope</title>
311
313
  <p id="_">Text</p>
312
314
  </clause>
@@ -348,14 +350,14 @@ RSpec.describe Asciidoctor::Standoc do
348
350
  <preferred>Term2</preferred>
349
351
  </term>
350
352
  </terms>
351
- <definitions id="_" language="en" script="Latn"><title>Symbols and Abbreviated Terms</title><clause id="_" language="en" script="Latn" inline-header="false" obligation="normative">
353
+ <definitions id="_" language="en" script="Latn" obligation="normative"><title>Symbols and abbreviated terms</title><clause id="_" language="en" script="Latn" inline-header="false" obligation="normative">
352
354
  <title>General</title>
353
355
  </clause>
354
- <definitions id="_">
355
- <title>Symbols 1</title>
356
+ <definitions id="_" obligation="normative" type="symbols">
357
+ <title>Symbols</title>
356
358
  </definitions></definitions></clause>
357
- <definitions id="_" language="en" script="Latn">
358
- <title>Abbreviated Terms</title>
359
+ <definitions id="_" language="en" script="Latn" obligation="normative" type="abbreviated_terms">
360
+ <title>Abbreviated terms</title>
359
361
  </definitions>
360
362
  <clause id="_" language="en" script="Latn" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="_" language="en" script="Latn" inline-header="false" obligation="normative">
361
363
  <title>Introduction</title>
@@ -373,7 +375,7 @@ RSpec.describe Asciidoctor::Standoc do
373
375
  <title>Annex A.1</title>
374
376
  </clause>
375
377
  </annex><bibliography><references id="_" language="en" script="Latn" obligation="informative" normative="true">
376
- <title>Normative References</title>
378
+ <title>Normative references</title>
377
379
  <p id="_">There are no normative references in this document.</p>
378
380
  </references><clause id="_" language="en" script="Latn" obligation="informative">
379
381
  <title>Bibliography</title>
@@ -420,10 +422,10 @@ RSpec.describe Asciidoctor::Standoc do
420
422
 
421
423
  ==== Term2
422
424
 
423
- [heading=symbols and abbreviated terms]
425
+ [heading=symbols]
424
426
  === Σύμβολα και Συντομογραφίες
425
427
 
426
- [heading=symbols and abbreviated terms]
428
+ [heading=abbreviated terms]
427
429
  == Σύμβολα και Συντομογραφίες
428
430
 
429
431
  == Clause 4
@@ -445,6 +447,7 @@ RSpec.describe Asciidoctor::Standoc do
445
447
  #{BLANK_HDR.sub(/<status>/, "<abstract> <p>Text</p> </abstract><status>")}
446
448
  <preface>
447
449
  <abstract id='_'>
450
+ <title>Abstract</title>
448
451
  <p id='_'>Text</p>
449
452
  </abstract>
450
453
  <foreword id='_' obligation='informative'>
@@ -458,7 +461,7 @@ RSpec.describe Asciidoctor::Standoc do
458
461
  </clause>
459
462
  </introduction>
460
463
  <acknowledgements id='_' obligation='informative'>
461
- <title>Ευχαριστίες</title>
464
+ <title>Acknowledgements</title>
462
465
  </acknowledgements>
463
466
  </preface>
464
467
  <sections>
@@ -470,7 +473,7 @@ RSpec.describe Asciidoctor::Standoc do
470
473
  </term>
471
474
  </terms>
472
475
  <clause id='_' obligation='normative'>
473
- <title>Terms and definitions</title>
476
+ <title>Terms, definitions and symbols</title>
474
477
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
475
478
  <terms id='_' obligation='normative'>
476
479
  <title>Normal Terms</title>
@@ -478,12 +481,12 @@ RSpec.describe Asciidoctor::Standoc do
478
481
  <preferred>Term2</preferred>
479
482
  </term>
480
483
  </terms>
481
- <definitions id='_'>
482
- <title>Σύμβολα και Συντομογραφίες</title>
484
+ <definitions id='_' obligation="normative" type="symbols">
485
+ <title>Symbols</title>
483
486
  </definitions>
484
487
  </clause>
485
- <definitions id='_'>
486
- <title>Σύμβολα και Συντομογραφίες</title>
488
+ <definitions id='_' obligation="normative" type="abbreviated_terms">
489
+ <title>Abbreviated terms</title>
487
490
  </definitions>
488
491
  <clause id='_' inline-header='false' obligation='normative'>
489
492
  <title>Clause 4</title>
@@ -503,7 +506,7 @@ RSpec.describe Asciidoctor::Standoc do
503
506
  </annex>
504
507
  <bibliography>
505
508
  <references id='_' obligation='informative' normative="true">
506
- <title>Normative References</title>
509
+ <title>Normative references</title>
507
510
  <p id="_">There are no normative references in this document.</p>
508
511
  </references>
509
512
  <clause id='_' obligation='informative'>
@@ -517,7 +520,6 @@ RSpec.describe Asciidoctor::Standoc do
517
520
  OUTPUT
518
521
  end
519
522
 
520
-
521
523
  it "varies terms & symbols title" do
522
524
  expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
523
525
  #{ASCIIDOC_BLANK_HDR}
@@ -537,7 +539,7 @@ RSpec.describe Asciidoctor::Standoc do
537
539
  <term id='_'>
538
540
  <preferred>Term</preferred>
539
541
  </term>
540
- <definitions id='_'>
542
+ <definitions id='_' obligation="normative" type="symbols">
541
543
  <title>Symbols</title>
542
544
  </definitions>
543
545
  </terms>
@@ -554,6 +556,7 @@ RSpec.describe Asciidoctor::Standoc do
554
556
 
555
557
  === Term
556
558
 
559
+ [heading="abbreviated terms"]
557
560
  === Symbols
558
561
 
559
562
  INPUT
@@ -565,8 +568,8 @@ RSpec.describe Asciidoctor::Standoc do
565
568
  <term id='_'>
566
569
  <preferred>Term</preferred>
567
570
  </term>
568
- <definitions id='_'>
569
- <title>Symbols</title>
571
+ <definitions id='_' obligation="normative" type="abbreviated_terms">
572
+ <title>Abbreviated terms</title>
570
573
  </definitions>
571
574
  </terms>
572
575
  </sections>
@@ -671,12 +674,12 @@ RSpec.describe Asciidoctor::Standoc do
671
674
  #{BLANK_HDR}
672
675
  <sections>
673
676
  <terms id='_' obligation='normative'>
674
- <title>Terms, definitions, symbols and abbreviated terms</title>
677
+ <title>Terms, definitions and symbols</title>
675
678
  <p id='_'>No terms and definitions are listed in this document.</p>
676
679
  <clause id='_' inline-header='false' obligation='normative'>
677
680
  <title>Terms and definitions</title>
678
681
  </clause>
679
- <definitions id='_'>
682
+ <definitions id='_' obligation="normative" type="symbols">
680
683
  <title>Symbols</title>
681
684
  </definitions>
682
685
  </terms>
@@ -787,11 +790,11 @@ RSpec.describe Asciidoctor::Standoc do
787
790
  #{BLANK_HDR.sub(%r{<language>en</language>}, "<language>fr</language>")}
788
791
  <termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/>
789
792
  <preface><foreword id='_' obligation="informative">
790
- <title>Foreword</title>
793
+ <title>Avant-propos</title>
791
794
  <p id="_">Foreword</p>
792
795
  </foreword></preface><sections>
793
796
  <terms id="_" obligation="normative">
794
- <title>Terms and definitions</title>
797
+ <title>Terms et définitions</title>
795
798
  <p id="_">Pour les besoins du présent document, les termes et définitions de <eref bibitemid="iso1234"/> et <eref bibitemid="iso5678"/> s’appliquent.</p>
796
799
 
797
800
 
@@ -820,11 +823,11 @@ RSpec.describe Asciidoctor::Standoc do
820
823
  INPUT
821
824
  #{BLANK_HDR.sub(%r{<language>en</language>}, "<language>zh</language>").sub(%r{<script>Latn</script>}, "<script>Hans</script>")}
822
825
  <termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/><preface><foreword id='_' obligation="informative">
823
- <title>Foreword</title>
826
+ <title>前言</title>
824
827
  <p id="_">Foreword</p>
825
828
  </foreword></preface><sections>
826
829
  <terms id="_" obligation="normative">
827
- <title>Terms and definitions</title><p id="_"><eref bibitemid="iso1234"/>和<eref bibitemid="iso5678"/>界定的术语和定义适用于本文件。</p>
830
+ <title>术语和定义</title><p id="_"><eref bibitemid="iso1234"/>和<eref bibitemid="iso5678"/>界定的术语和定义适用于本文件。</p>
828
831
 
829
832
 
830
833
 
@@ -858,12 +861,12 @@ INPUT
858
861
  #{BLANK_HDR}
859
862
  <sections>
860
863
  <terms id='tda' obligation='normative'>
861
- <title>Terms, definitions, symbols and abbreviated terms</title>
864
+ <title>Terms, definitions and symbols</title>
862
865
  <p id='_'>No terms and definitions are listed in this document.</p>
863
866
  <clause id='terms' inline-header='false' obligation='normative'>
864
867
  <title>Terms and definitions</title>
865
868
  </clause>
866
- <definitions id='_'>
869
+ <definitions id='_' obligation="normative" type="symbols">
867
870
  <title>Symbols</title>
868
871
  </definitions>
869
872
  </terms>
@@ -895,7 +898,7 @@ _time_ (<<term-time>>) on the _calendar_ (<<term-calendar>>) _time scale_ (<<ter
895
898
  INPUT
896
899
  #{BLANK_HDR}
897
900
  <sections>
898
- <clause id='_' inline-header='false' obligation='normative'>
901
+ <clause id='_' inline-header='false' obligation='normative' type="scope">
899
902
  <title>Scope</title>
900
903
  </clause>
901
904
  <clause id='tda' obligation='normative'>
@@ -963,7 +966,7 @@ INPUT
963
966
  </preface>
964
967
  <sections> </sections>
965
968
  <annex id='_' obligation='' language='fr' script=''>
966
- <definitions id='sym' language='fr'>
969
+ <definitions id='sym' language='fr' obligation="normative">
967
970
  <title>Symbols and abbreviated terms</title>
968
971
  </definitions>
969
972
  </annex>