metanorma-standoc 1.11.4 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +3 -31
  3. data/.gitignore +23 -0
  4. data/Gemfile +0 -1
  5. data/lib/asciidoctor/standoc/base.rb +2 -145
  6. data/lib/asciidoctor/standoc/blocks.rb +2 -238
  7. data/lib/asciidoctor/standoc/blocks_notes.rb +2 -100
  8. data/lib/asciidoctor/standoc/cleanup.rb +2 -208
  9. data/lib/asciidoctor/standoc/cleanup_amend.rb +2 -53
  10. data/lib/asciidoctor/standoc/cleanup_block.rb +2 -172
  11. data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +2 -212
  12. data/lib/asciidoctor/standoc/cleanup_footnotes.rb +2 -108
  13. data/lib/asciidoctor/standoc/cleanup_image.rb +2 -69
  14. data/lib/asciidoctor/standoc/cleanup_inline.rb +2 -189
  15. data/lib/asciidoctor/standoc/cleanup_maths.rb +2 -221
  16. data/lib/asciidoctor/standoc/cleanup_ref.rb +2 -169
  17. data/lib/asciidoctor/standoc/cleanup_ref_dl.rb +2 -103
  18. data/lib/asciidoctor/standoc/cleanup_reqt.rb +2 -110
  19. data/lib/asciidoctor/standoc/cleanup_section.rb +2 -184
  20. data/lib/asciidoctor/standoc/cleanup_section_names.rb +2 -91
  21. data/lib/asciidoctor/standoc/cleanup_symbols.rb +2 -47
  22. data/lib/asciidoctor/standoc/cleanup_table.rb +2 -67
  23. data/lib/asciidoctor/standoc/cleanup_terms.rb +2 -139
  24. data/lib/asciidoctor/standoc/cleanup_terms_designations.rb +2 -198
  25. data/lib/asciidoctor/standoc/cleanup_text.rb +2 -95
  26. data/lib/asciidoctor/standoc/cleanup_toc.rb +3 -0
  27. data/lib/asciidoctor/standoc/cleanup_xref.rb +2 -106
  28. data/lib/asciidoctor/standoc/converter.rb +2 -123
  29. data/lib/asciidoctor/standoc/datamodel/attributes_table_preprocessor.rb +2 -56
  30. data/lib/asciidoctor/standoc/datamodel/diagram_preprocessor.rb +2 -102
  31. data/lib/asciidoctor/standoc/datamodel/plantuml_renderer.rb +3 -404
  32. data/lib/asciidoctor/standoc/deprecated.rb +5 -0
  33. data/lib/asciidoctor/standoc/front.rb +2 -223
  34. data/lib/asciidoctor/standoc/front_contributor.rb +2 -191
  35. data/lib/asciidoctor/standoc/inline.rb +2 -231
  36. data/lib/asciidoctor/standoc/lists.rb +2 -119
  37. data/lib/asciidoctor/standoc/macros.rb +2 -203
  38. data/lib/asciidoctor/standoc/macros_form.rb +2 -62
  39. data/lib/asciidoctor/standoc/macros_note.rb +2 -44
  40. data/lib/asciidoctor/standoc/macros_plantuml.rb +2 -112
  41. data/lib/asciidoctor/standoc/macros_terms.rb +2 -180
  42. data/lib/asciidoctor/standoc/ref.rb +2 -251
  43. data/lib/asciidoctor/standoc/ref_sect.rb +2 -153
  44. data/lib/asciidoctor/standoc/ref_utility.rb +2 -0
  45. data/lib/asciidoctor/standoc/render.rb +2 -114
  46. data/lib/asciidoctor/standoc/reqt.rb +2 -89
  47. data/lib/asciidoctor/standoc/section.rb +2 -207
  48. data/lib/asciidoctor/standoc/table.rb +2 -84
  49. data/lib/asciidoctor/standoc/term_lookup_cleanup.rb +2 -178
  50. data/lib/asciidoctor/standoc/terms.rb +2 -159
  51. data/lib/asciidoctor/standoc/utils.rb +2 -100
  52. data/lib/asciidoctor/standoc/validate.rb +2 -157
  53. data/lib/asciidoctor/standoc/validate_section.rb +2 -54
  54. data/lib/isodoc/html/htmlstyle.css +25 -19
  55. data/lib/isodoc/html/htmlstyle.scss +7 -2
  56. data/lib/metanorma/standoc/base.rb +163 -0
  57. data/lib/{asciidoctor → metanorma}/standoc/basicdoc.rng +5 -3
  58. data/lib/{asciidoctor → metanorma}/standoc/biblio.rng +7 -5
  59. data/lib/metanorma/standoc/blocks.rb +239 -0
  60. data/lib/metanorma/standoc/blocks_notes.rb +101 -0
  61. data/lib/metanorma/standoc/cleanup.rb +157 -0
  62. data/lib/metanorma/standoc/cleanup_amend.rb +54 -0
  63. data/lib/metanorma/standoc/cleanup_block.rb +173 -0
  64. data/lib/metanorma/standoc/cleanup_boilerplate.rb +213 -0
  65. data/lib/metanorma/standoc/cleanup_footnotes.rb +109 -0
  66. data/lib/metanorma/standoc/cleanup_image.rb +184 -0
  67. data/lib/metanorma/standoc/cleanup_inline.rb +190 -0
  68. data/lib/metanorma/standoc/cleanup_maths.rb +222 -0
  69. data/lib/metanorma/standoc/cleanup_ref.rb +170 -0
  70. data/lib/metanorma/standoc/cleanup_ref_dl.rb +104 -0
  71. data/lib/metanorma/standoc/cleanup_reqt.rb +111 -0
  72. data/lib/metanorma/standoc/cleanup_section.rb +212 -0
  73. data/lib/metanorma/standoc/cleanup_section_names.rb +92 -0
  74. data/lib/metanorma/standoc/cleanup_symbols.rb +48 -0
  75. data/lib/metanorma/standoc/cleanup_table.rb +68 -0
  76. data/lib/metanorma/standoc/cleanup_terms.rb +140 -0
  77. data/lib/metanorma/standoc/cleanup_terms_designations.rb +199 -0
  78. data/lib/metanorma/standoc/cleanup_text.rb +74 -0
  79. data/lib/metanorma/standoc/cleanup_toc.rb +98 -0
  80. data/lib/metanorma/standoc/cleanup_xref.rb +114 -0
  81. data/lib/metanorma/standoc/converter.rb +126 -0
  82. data/lib/metanorma/standoc/datamodel/attributes_table_preprocessor.rb +57 -0
  83. data/lib/metanorma/standoc/datamodel/diagram_preprocessor.rb +103 -0
  84. data/lib/metanorma/standoc/datamodel/plantuml_renderer.rb +409 -0
  85. data/lib/metanorma/standoc/front.rb +224 -0
  86. data/lib/metanorma/standoc/front_contributor.rb +192 -0
  87. data/lib/metanorma/standoc/inline.rb +232 -0
  88. data/lib/{asciidoctor → metanorma}/standoc/isodoc.rng +108 -1
  89. data/lib/metanorma/standoc/lists.rb +120 -0
  90. data/lib/metanorma/standoc/macros.rb +205 -0
  91. data/lib/metanorma/standoc/macros_embed.rb +72 -0
  92. data/lib/metanorma/standoc/macros_form.rb +63 -0
  93. data/lib/metanorma/standoc/macros_note.rb +45 -0
  94. data/lib/metanorma/standoc/macros_plantuml.rb +113 -0
  95. data/lib/metanorma/standoc/macros_terms.rb +194 -0
  96. data/lib/metanorma/standoc/ref.rb +248 -0
  97. data/lib/metanorma/standoc/ref_sect.rb +153 -0
  98. data/lib/{asciidoctor/standoc/ref_date_id.rb → metanorma/standoc/ref_utility.rb} +45 -6
  99. data/lib/metanorma/standoc/render.rb +115 -0
  100. data/lib/metanorma/standoc/reqt.rb +90 -0
  101. data/lib/{asciidoctor → metanorma}/standoc/reqt.rng +0 -0
  102. data/lib/metanorma/standoc/section.rb +209 -0
  103. data/lib/metanorma/standoc/table.rb +85 -0
  104. data/lib/metanorma/standoc/term_lookup_cleanup.rb +181 -0
  105. data/lib/metanorma/standoc/terms.rb +163 -0
  106. data/lib/metanorma/standoc/utils.rb +101 -0
  107. data/lib/metanorma/standoc/validate.rb +163 -0
  108. data/lib/metanorma/standoc/validate_section.rb +55 -0
  109. data/lib/metanorma/standoc/version.rb +1 -1
  110. data/lib/{asciidoctor → metanorma}/standoc/views/datamodel/model_representation.adoc.erb +0 -0
  111. data/lib/{asciidoctor → metanorma}/standoc/views/datamodel/plantuml_representation.adoc.erb +0 -0
  112. data/lib/metanorma-standoc.rb +1 -1
  113. data/metanorma-standoc.gemspec +1 -1
  114. data/spec/assets/a1.adoc +8 -0
  115. data/spec/assets/a2.adoc +8 -0
  116. data/spec/assets/a3.adoc +9 -0
  117. data/spec/assets/a4.adoc +4 -0
  118. data/spec/{asciidoctor → metanorma}/base_spec.rb +453 -409
  119. data/spec/{asciidoctor → metanorma}/blank_spec.rb +1 -1
  120. data/spec/{asciidoctor → metanorma}/blocks_spec.rb +1 -1
  121. data/spec/{asciidoctor → metanorma}/cleanup_blocks_spec.rb +137 -1
  122. data/spec/{asciidoctor → metanorma}/cleanup_sections_spec.rb +1 -1
  123. data/spec/{asciidoctor → metanorma}/cleanup_spec.rb +8 -8
  124. data/spec/{asciidoctor → metanorma}/cleanup_terms_spec.rb +204 -204
  125. data/spec/{asciidoctor → metanorma}/datamodel/attributes_table_preprocessor_spec.rb +1 -1
  126. data/spec/{asciidoctor → metanorma}/datamodel/diagram_preprocessor_spec.rb +1 -1
  127. data/spec/{asciidoctor → metanorma}/inline_spec.rb +1 -1
  128. data/spec/{asciidoctor → metanorma}/isobib_cache_spec.rb +3 -3
  129. data/spec/{asciidoctor → metanorma}/lists_spec.rb +1 -1
  130. data/spec/{asciidoctor → metanorma}/macros_json2text_spec.rb +0 -0
  131. data/spec/{asciidoctor → metanorma}/macros_plantuml_spec.rb +3 -3
  132. data/spec/{asciidoctor → metanorma}/macros_spec.rb +158 -6
  133. data/spec/{asciidoctor → metanorma}/macros_yaml2text_spec.rb +0 -0
  134. data/spec/metanorma/refs_dl_spec.rb +863 -0
  135. data/spec/{asciidoctor → metanorma}/refs_spec.rb +580 -66
  136. data/spec/{asciidoctor → metanorma}/section_spec.rb +42 -17
  137. data/spec/{asciidoctor → metanorma}/table_spec.rb +1 -1
  138. data/spec/{asciidoctor → metanorma}/validate_spec.rb +2 -2
  139. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +46 -46
  140. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +10 -10
  141. data/spec/vcr_cassettes/hide_refs.yml +599 -0
  142. data/spec/vcr_cassettes/isobib_get_123.yml +12 -12
  143. data/spec/vcr_cassettes/isobib_get_123_1.yml +23 -23
  144. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +85 -85
  145. data/spec/vcr_cassettes/isobib_get_123_2001.yml +12 -12
  146. data/spec/vcr_cassettes/isobib_get_124.yml +13 -13
  147. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +14 -14
  148. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +60 -50
  149. metadata +88 -32
  150. data/spec/asciidoctor/refs_dl_spec.rb +0 -864
@@ -1,11 +1,12 @@
1
1
  require "spec_helper"
2
2
 
3
- RSpec.describe Asciidoctor::Standoc do
4
- it "processes the Asciidoctor::Standoc inline macros" do
3
+ RSpec.describe Metanorma::Standoc do
4
+ it "processes the Metanorma::Standoc inline macros" do
5
5
  input = <<~INPUT
6
6
  #{ASCIIDOC_BLANK_HDR}
7
7
  preferred:[term0]
8
8
  alt:[term1]
9
+ admitted:[term1a]
9
10
  deprecated:[term2]
10
11
  domain:[term3]
11
12
  inherit:[<<ref1>>]
@@ -23,6 +24,7 @@ RSpec.describe Asciidoctor::Standoc do
23
24
  <title>Foreword</title>
24
25
  <preferred><expression><name>term0</name></expression></preferred>
25
26
  <admitted><expression><name>term1</name></expression></admitted>
27
+ <admitted><expression><name>term1a</name></expression></admitted>
26
28
  <deprecates><expression><name>term2</name></expression></deprecates>
27
29
  <domain>term3</domain>
28
30
  <inherit>
@@ -55,7 +57,7 @@ RSpec.describe Asciidoctor::Standoc do
55
57
  .to be_equivalent_to xmlpp(output)
56
58
  end
57
59
 
58
- it "processes the Asciidoctor::Standoc index macros" do
60
+ it "processes the Metanorma::Standoc index macros" do
59
61
  input = <<~INPUT
60
62
  #{ASCIIDOC_BLANK_HDR}
61
63
  index:also[]
@@ -127,7 +129,7 @@ RSpec.describe Asciidoctor::Standoc do
127
129
  .to be_equivalent_to xmlpp(output)
128
130
  end
129
131
 
130
- it "processes the Asciidoctor::Standoc variant macros" do
132
+ it "processes the Metanorma::Standoc variant macros" do
131
133
  input = <<~INPUT
132
134
  #{ASCIIDOC_BLANK_HDR}
133
135
  == lang:en[English] lang:fr-Latn[Français]
@@ -163,7 +165,7 @@ RSpec.describe Asciidoctor::Standoc do
163
165
  .to be_equivalent_to xmlpp(output)
164
166
  end
165
167
 
166
- it "processes the Asciidoctor::Standoc concept and related macros" do
168
+ it "processes the Metanorma::Standoc concept and related macros" do
167
169
  input = <<~INPUT
168
170
  #{ASCIIDOC_BLANK_HDR}
169
171
 
@@ -332,7 +334,7 @@ RSpec.describe Asciidoctor::Standoc do
332
334
  .to be_equivalent_to xmlpp(output)
333
335
  end
334
336
 
335
- it "processes the Asciidoctor::Standoc concept macros for acronyms" do
337
+ it "processes the Metanorma::Standoc concept macros for acronyms" do
336
338
  input = <<~INPUT
337
339
  #{ASCIIDOC_BLANK_HDR}
338
340
 
@@ -1302,6 +1304,95 @@ RSpec.describe Asciidoctor::Standoc do
1302
1304
  .to be_equivalent_to xmlpp(output)
1303
1305
  end
1304
1306
 
1307
+ it "processes embed macro" do
1308
+ input = <<~INPUT
1309
+ #{ASCIIDOC_BLANK_HDR}
1310
+
1311
+ [[clause1]]
1312
+ == Clause 1
1313
+
1314
+ embed::spec/assets/xref_error.adoc[]
1315
+ INPUT
1316
+ output = <<~OUTPUT
1317
+ #{BLANK_HDR}
1318
+ <sections>
1319
+ <clause id='clause1' inline-header='false' obligation='normative'>
1320
+ <title>Clause 1</title>
1321
+ </clause>
1322
+ <clause id='_' inline-header='false' obligation='normative'>
1323
+ <title>Clause</title>
1324
+ <p id='_'>
1325
+ <xref target='a'>b</xref>
1326
+ </p>
1327
+ </clause>
1328
+ </sections>
1329
+ </standard-document>
1330
+ OUTPUT
1331
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
1332
+ .to be_equivalent_to xmlpp(output)
1333
+ end
1334
+
1335
+ it "processes embed macro with overwriting" do
1336
+ input = <<~INPUT
1337
+ #{ASCIIDOC_BLANK_HDR}
1338
+
1339
+ [[clause1]]
1340
+ == Clause
1341
+
1342
+ embed::spec/assets/xref_error.adoc[]
1343
+ INPUT
1344
+ output = <<~OUTPUT
1345
+ #{BLANK_HDR}
1346
+ <sections>
1347
+ <clause id='clause1' inline-header='false' obligation='normative'>
1348
+ <title>Clause</title>
1349
+ </clause>
1350
+ </sections>
1351
+ </standard-document>
1352
+ OUTPUT
1353
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
1354
+ .to be_equivalent_to xmlpp(output)
1355
+ end
1356
+
1357
+ it "processes recursive embed macro with includes" do
1358
+ input = <<~INPUT
1359
+ #{ASCIIDOC_BLANK_HDR}
1360
+
1361
+ [[clause1]]
1362
+ == Clause
1363
+
1364
+ embed::spec/assets/a1.adoc[]
1365
+ INPUT
1366
+ output = <<~OUTPUT
1367
+ #{BLANK_HDR}
1368
+ <sections>
1369
+ <clause id='clause1' inline-header='false' obligation='normative'>
1370
+ <title>Clause</title>
1371
+ </clause>
1372
+ <clause id='_' inline-header='false' obligation='normative'>
1373
+ <title>Clause 1</title>
1374
+ <p id='_'>X</p>
1375
+ </clause>
1376
+ <clause id='_' inline-header='false' obligation='normative'>
1377
+ <title>Clause 2</title>
1378
+ <p id='_'>X</p>
1379
+ </clause>
1380
+ <clause id='_' inline-header='false' obligation='normative'>
1381
+ <title>Clause 3</title>
1382
+ <p id='_'>X</p>
1383
+ </clause>
1384
+ <clause id='_' inline-header='false' obligation='normative'>
1385
+ <title>Clause 4</title>
1386
+ <p id='_'>X</p>
1387
+ </clause>
1388
+ </sections>
1389
+ </standard-document>
1390
+ OUTPUT
1391
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
1392
+ .to be_equivalent_to xmlpp(output)
1393
+ end
1394
+
1395
+
1305
1396
  describe "term inline macros" do
1306
1397
  subject(:convert) do
1307
1398
  xmlpp(
@@ -1431,6 +1522,67 @@ RSpec.describe Asciidoctor::Standoc do
1431
1522
  end
1432
1523
  end
1433
1524
 
1525
+ context "terms with index terms" do
1526
+ let(:input) do
1527
+ <<~XML
1528
+ #{ASCIIDOC_BLANK_HDR}
1529
+
1530
+ == Terms and Definitions
1531
+
1532
+ === name(((name)))
1533
+
1534
+ == Main
1535
+
1536
+ term:[name] is a term
1537
+
1538
+ {{name}} is a term
1539
+ XML
1540
+ end
1541
+ let(:output) do
1542
+ <<~XML
1543
+ #{BLANK_HDR}
1544
+ <sections>
1545
+ <terms id='_' obligation='normative'>
1546
+ <title>Terms and definitions</title>
1547
+ <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
1548
+ <term id='term-name'>
1549
+ <preferred><expression><name>name
1550
+ <index>
1551
+ <primary>name</primary>
1552
+ </index>
1553
+ </name>
1554
+ </expression></preferred>
1555
+ </term>
1556
+ </terms>
1557
+ <clause id='_' inline-header='false' obligation='normative'>
1558
+ <title>Main</title>
1559
+ <p id='_'>
1560
+ <concept>
1561
+ <refterm>name</refterm>
1562
+ <renderterm>name</renderterm>
1563
+ <xref target='term-name'/>
1564
+ </concept>
1565
+ is a term
1566
+ </p>
1567
+ <p id='_'>
1568
+ <concept>
1569
+ <refterm>name</refterm>
1570
+ <renderterm>name</renderterm>
1571
+ <xref target='term-name'/>
1572
+ </concept>
1573
+ is a term
1574
+ </p>
1575
+ </clause>
1576
+ </sections>
1577
+ </standard-document>
1578
+ XML
1579
+ end
1580
+
1581
+ it "strips index terms in terms anchors" do
1582
+ expect(convert).to(be_equivalent_to(xmlpp(output)))
1583
+ end
1584
+ end
1585
+
1434
1586
  context "multiply exising ids in document" do
1435
1587
  let(:input) do
1436
1588
  <<~XML