metanorma-standoc 1.10.5 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +19 -23
  3. data/Rakefile +1 -1
  4. data/lib/asciidoctor/standoc/base.rb +14 -17
  5. data/lib/asciidoctor/standoc/basicdoc.rng +21 -4
  6. data/lib/asciidoctor/standoc/blocks.rb +26 -23
  7. data/lib/asciidoctor/standoc/blocks_notes.rb +17 -22
  8. data/lib/asciidoctor/standoc/cleanup.rb +46 -12
  9. data/lib/asciidoctor/standoc/cleanup_block.rb +5 -70
  10. data/lib/asciidoctor/standoc/cleanup_image.rb +6 -7
  11. data/lib/asciidoctor/standoc/cleanup_inline.rb +44 -102
  12. data/lib/asciidoctor/standoc/cleanup_maths.rb +5 -6
  13. data/lib/asciidoctor/standoc/cleanup_ref.rb +5 -0
  14. data/lib/asciidoctor/standoc/cleanup_reqt.rb +51 -33
  15. data/lib/asciidoctor/standoc/cleanup_section_names.rb +5 -5
  16. data/lib/asciidoctor/standoc/cleanup_symbols.rb +48 -0
  17. data/lib/asciidoctor/standoc/cleanup_table.rb +68 -0
  18. data/lib/asciidoctor/standoc/cleanup_terms.rb +38 -78
  19. data/lib/asciidoctor/standoc/cleanup_terms_designations.rb +162 -0
  20. data/lib/asciidoctor/standoc/cleanup_text.rb +5 -2
  21. data/lib/asciidoctor/standoc/cleanup_xref.rb +107 -0
  22. data/lib/asciidoctor/standoc/converter.rb +15 -0
  23. data/lib/asciidoctor/standoc/inline.rb +7 -5
  24. data/lib/asciidoctor/standoc/isodoc.rng +435 -78
  25. data/lib/asciidoctor/standoc/lists.rb +15 -15
  26. data/lib/asciidoctor/standoc/macros.rb +14 -43
  27. data/lib/asciidoctor/standoc/macros_note.rb +45 -0
  28. data/lib/asciidoctor/standoc/macros_plantuml.rb +29 -14
  29. data/lib/asciidoctor/standoc/macros_terms.rb +82 -20
  30. data/lib/asciidoctor/standoc/ref_sect.rb +24 -17
  31. data/lib/asciidoctor/standoc/reqt.rb +2 -2
  32. data/lib/asciidoctor/standoc/reqt.rng +23 -2
  33. data/lib/asciidoctor/standoc/term_lookup_cleanup.rb +50 -11
  34. data/lib/asciidoctor/standoc/terms.rb +21 -3
  35. data/lib/asciidoctor/standoc/utils.rb +36 -23
  36. data/lib/asciidoctor/standoc/validate.rb +45 -27
  37. data/lib/asciidoctor/standoc/validate_section.rb +5 -2
  38. data/lib/metanorma/standoc/version.rb +1 -1
  39. data/metanorma-standoc.gemspec +1 -1
  40. data/spec/asciidoctor/base_spec.rb +4 -36
  41. data/spec/asciidoctor/blank_spec.rb +37 -0
  42. data/spec/asciidoctor/blocks_spec.rb +296 -47
  43. data/spec/asciidoctor/cleanup_blocks_spec.rb +1018 -0
  44. data/spec/asciidoctor/cleanup_sections_spec.rb +153 -12
  45. data/spec/asciidoctor/cleanup_spec.rb +179 -1265
  46. data/spec/asciidoctor/cleanup_terms_spec.rb +990 -0
  47. data/spec/asciidoctor/inline_spec.rb +38 -2
  48. data/spec/asciidoctor/lists_spec.rb +6 -6
  49. data/spec/asciidoctor/macros_plantuml_spec.rb +37 -2
  50. data/spec/asciidoctor/macros_spec.rb +226 -138
  51. data/spec/asciidoctor/refs_spec.rb +4 -26
  52. data/spec/asciidoctor/section_spec.rb +18 -18
  53. data/spec/asciidoctor/validate_spec.rb +109 -1
  54. data/spec/assets/xref_error.adoc +1 -0
  55. data/spec/fixtures/datamodel_description_sections_tree.xml +327 -326
  56. data/spec/spec_helper.rb +6 -7
  57. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +51 -51
  58. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +13 -13
  59. data/spec/vcr_cassettes/isobib_get_123.yml +13 -13
  60. data/spec/vcr_cassettes/isobib_get_123_1.yml +26 -26
  61. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +34 -34
  62. data/spec/vcr_cassettes/isobib_get_123_2001.yml +12 -12
  63. data/spec/vcr_cassettes/isobib_get_124.yml +13 -13
  64. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +16 -16
  65. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +51 -49
  66. metadata +13 -5
@@ -73,8 +73,8 @@ RSpec.describe Asciidoctor::Standoc do
73
73
  sub<sub><em>scr</em>ipt</sub>
74
74
  <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub> <mrow> <mrow> <mi mathvariant="bold-italic">F</mi> </mrow> </mrow> <mrow> <mrow> <mi mathvariant="bold-italic">Α</mi> </mrow> </mrow> </msub> </math></stem>
75
75
  mark
76
- <admitted>alt</admitted>
77
- <deprecates>deprecated</deprecates>
76
+ <admitted><expression><name>alt</name></expression></admitted>
77
+ <deprecates><expression><name>deprecated</name></expression></deprecates>
78
78
  <domain>domain</domain>
79
79
  <strike>strike</strike>
80
80
  <underline>underline</underline>
@@ -480,4 +480,40 @@ RSpec.describe Asciidoctor::Standoc do
480
480
  expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
481
481
  .to be_equivalent_to(output)
482
482
  end
483
+
484
+ it "processes format-specific inline pass" do
485
+ input = <<~INPUT
486
+ #{ASCIIDOC_BLANK_HDR}
487
+
488
+ pass-format:rfc,html[<abc>X &gt; Y</abc>]
489
+ INPUT
490
+ output = <<~OUTPUT
491
+ #{BLANK_HDR}
492
+ <sections>
493
+ <p id='_'>
494
+ <passthrough formats='rfc,html'>&lt;abc&gt;X &gt; Y&lt;/abc&gt;</passthrough>
495
+ </p>
496
+ </sections>
497
+ </standard-document>
498
+ OUTPUT
499
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
500
+ .to be_equivalent_to xmlpp(output)
501
+ end
502
+
503
+ it "processes Metanorma XML inline pass" do
504
+ input = <<~INPUT
505
+ #{ASCIIDOC_BLANK_HDR}
506
+
507
+ +<abc>X &gt;+ +++Y+++ pass:c[</abc>]
508
+ INPUT
509
+ output = <<~OUTPUT
510
+ #{BLANK_HDR}
511
+ <sections>
512
+ <p id='_'>&lt;abc&gt;X &gt; Y &lt;/abc&gt;</p>
513
+ </sections>
514
+ </standard-document>
515
+ OUTPUT
516
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
517
+ .to be_equivalent_to xmlpp(output)
518
+ end
483
519
  end
@@ -73,7 +73,7 @@ RSpec.describe Asciidoctor::Standoc do
73
73
  output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
74
74
  #{ASCIIDOC_BLANK_HDR}
75
75
  [[id]]
76
- [keep-with-next=true,keep-lines-together=true]
76
+ [keep-with-next=true,keep-lines-together=true,tag=X,multilingual-rendering=common]
77
77
  * First
78
78
  * Second
79
79
  +
@@ -84,7 +84,7 @@ RSpec.describe Asciidoctor::Standoc do
84
84
  --
85
85
 
86
86
  [[id1]]
87
- [keep-with-next=true,keep-lines-together=true]
87
+ [keep-with-next=true,keep-lines-together=true,tag=X,multilingual-rendering=common]
88
88
  [loweralpha]
89
89
  . First
90
90
  . Second
@@ -103,7 +103,7 @@ RSpec.describe Asciidoctor::Standoc do
103
103
  [arabic]
104
104
  ... E
105
105
  ... F
106
- [keep-with-next=true,keep-lines-together=true]
106
+ [keep-with-next=true,keep-lines-together=true,tag=X,multilingual-rendering=common]
107
107
  Notes1::
108
108
  Notes:: Note 1.
109
109
  +
@@ -117,14 +117,14 @@ RSpec.describe Asciidoctor::Standoc do
117
117
  INPUT
118
118
  expect(xmlpp(strip_guid(output))).to be_equivalent_to xmlpp(<<~"OUTPUT")
119
119
  #{BLANK_HDR}
120
- <sections><ul id="id" keep-with-next="true" keep-lines-together="true">
120
+ <sections><ul id="id" keep-with-next="true" keep-lines-together="true" tag='X' multilingual-rendering='common' >
121
121
  <li>
122
122
  <p id="_">First</p>
123
123
  </li>
124
124
  <li><p id="_">Second</p><p id="_">entry1</p>
125
125
  <p id="_">entry2</p></li>
126
126
  </ul>
127
- <ol id="id1" type="alphabet" keep-with-next="true" keep-lines-together="true">
127
+ <ol id="id1" type="alphabet" keep-with-next="true" keep-lines-together="true" tag='X' multilingual-rendering='common' >
128
128
  <li>
129
129
  <p id="_">First</p>
130
130
  </li>
@@ -164,7 +164,7 @@ RSpec.describe Asciidoctor::Standoc do
164
164
  </li>
165
165
  <li>
166
166
  <p id="_">F</p>
167
- <dl id="_" keep-with-next="true" keep-lines-together="true">
167
+ <dl id="_" keep-with-next="true" keep-lines-together="true" tag='X' multilingual-rendering='common'>
168
168
  <dt>Notes1</dt>
169
169
  <dd/>
170
170
  <dt>Notes</dt>
@@ -64,6 +64,7 @@ RSpec.describe Asciidoctor::Standoc do
64
64
  :novalid:
65
65
  :no-isobib:
66
66
  :imagesdir: spec/assets
67
+ :data-uri-image: false
67
68
 
68
69
  [plantuml]
69
70
  ....
@@ -100,6 +101,7 @@ RSpec.describe Asciidoctor::Standoc do
100
101
  :novalid:
101
102
  :no-isobib:
102
103
  :imagesdir: spec/assets
104
+ :data-uri-image: false
103
105
 
104
106
  [lutaml_diagram]
105
107
  ....
@@ -135,7 +137,7 @@ RSpec.describe Asciidoctor::Standoc do
135
137
  end
136
138
 
137
139
  context "when inline macro, path supplied as the second arg" do
138
- let(:example_file) { fixtures_path('diagram_definitions.lutaml') }
140
+ let(:example_file) { fixtures_path("diagram_definitions.lutaml") }
139
141
  let(:input) do
140
142
  <<~TEXT
141
143
  = Document title
@@ -145,6 +147,7 @@ RSpec.describe Asciidoctor::Standoc do
145
147
  :novalid:
146
148
  :no-isobib:
147
149
  :imagesdir: spec/assets
150
+ :data-uri-image: false
148
151
 
149
152
  lutaml_diagram::#{example_file}[]
150
153
 
@@ -201,7 +204,7 @@ RSpec.describe Asciidoctor::Standoc do
201
204
  <tr>
202
205
  <th valign='top' align='left'>Name</th>
203
206
  <th valign='top' align='left'>Definition</th>
204
- <th valign='top' align='left'>Mandatory/ Optional/ Conditional</th>
207
+ <th valign='top' align='left'>Mandatory / Optional / Conditional</th>
205
208
  <th valign='top' align='left'>Max Occur</th>
206
209
  <th valign='top' align='left'>Data Type</th>
207
210
  </tr>
@@ -345,6 +348,38 @@ RSpec.describe Asciidoctor::Standoc do
345
348
  .to be_equivalent_to xmlpp(output)
346
349
  end
347
350
 
351
+ it "processes the PlantUML macro with mismatched delimiters" do
352
+ input = <<~INPUT
353
+ #{ASCIIDOC_BLANK_HDR}
354
+
355
+ [plantuml]
356
+ ....
357
+ @startuml
358
+ Alice -> Bob: Authentication Request
359
+ Bob --> Alice: Authentication Response
360
+
361
+ Alice -> Bob: Another authentication Request
362
+ Alice <-- Bob: another authentication Response
363
+ ....
364
+ INPUT
365
+ expect { Asciidoctor.convert(input, *OPTIONS) }
366
+ .to output(%r{@startuml without matching @enduml in PlantUML!}).to_stderr
367
+ output = <<~OUTPUT
368
+ #{BLANK_HDR}
369
+ <sections>
370
+ <sourcecode id="_" lang="plantuml">@startuml
371
+ Alice -&gt; Bob: Authentication Request
372
+ Bob --&gt; Alice: Authentication Response
373
+
374
+ Alice -&gt; Bob: Another authentication Request
375
+ Alice &lt;-- Bob: another authentication Response</sourcecode>
376
+ </sections>
377
+ </standard-document>
378
+ OUTPUT
379
+ expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
380
+ .to be_equivalent_to xmlpp(output)
381
+ end
382
+
348
383
  private
349
384
 
350
385
  def mock_plantuml_disabled