metanorma-standoc 1.9.0 → 1.10.0
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.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +3 -13
- data/.hound.yml +3 -1
- data/.rubocop.yml +4 -8
- data/lib/asciidoctor/standoc/base.rb +31 -35
- data/lib/asciidoctor/standoc/biblio.rng +1 -0
- data/lib/asciidoctor/standoc/blocks.rb +25 -9
- data/lib/asciidoctor/standoc/blocks_notes.rb +41 -24
- data/lib/asciidoctor/standoc/cleanup.rb +59 -84
- data/lib/asciidoctor/standoc/cleanup_block.rb +63 -85
- data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +28 -15
- data/lib/asciidoctor/standoc/cleanup_footnotes.rb +1 -0
- data/lib/asciidoctor/standoc/cleanup_image.rb +71 -0
- data/lib/asciidoctor/standoc/cleanup_inline.rb +117 -77
- data/lib/asciidoctor/standoc/cleanup_maths.rb +36 -27
- data/lib/asciidoctor/standoc/cleanup_ref.rb +31 -15
- data/lib/asciidoctor/standoc/cleanup_ref_dl.rb +1 -1
- data/lib/asciidoctor/standoc/cleanup_reqt.rb +47 -0
- data/lib/asciidoctor/standoc/cleanup_section.rb +77 -135
- data/lib/asciidoctor/standoc/cleanup_section_names.rb +75 -0
- data/lib/asciidoctor/standoc/cleanup_terms.rb +19 -18
- data/lib/asciidoctor/standoc/converter.rb +7 -2
- data/lib/asciidoctor/standoc/datamodel/plantuml_renderer.rb +67 -66
- data/lib/asciidoctor/standoc/front.rb +35 -18
- data/lib/asciidoctor/standoc/front_contributor.rb +70 -45
- data/lib/asciidoctor/standoc/inline.rb +45 -34
- data/lib/asciidoctor/standoc/isodoc.rng +209 -4
- data/lib/asciidoctor/standoc/lists.rb +4 -2
- data/lib/asciidoctor/standoc/macros.rb +11 -11
- data/lib/asciidoctor/standoc/macros_form.rb +63 -0
- data/lib/asciidoctor/standoc/macros_plantuml.rb +19 -21
- data/lib/asciidoctor/standoc/macros_terms.rb +33 -23
- data/lib/asciidoctor/standoc/ref.rb +87 -112
- data/lib/asciidoctor/standoc/ref_date_id.rb +62 -0
- data/lib/asciidoctor/standoc/ref_sect.rb +20 -17
- data/lib/asciidoctor/standoc/section.rb +3 -1
- data/lib/asciidoctor/standoc/term_lookup_cleanup.rb +40 -27
- data/lib/asciidoctor/standoc/terms.rb +25 -18
- data/lib/asciidoctor/standoc/utils.rb +35 -9
- data/lib/asciidoctor/standoc/validate.rb +48 -33
- data/lib/metanorma-standoc.rb +0 -1
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +4 -4
- data/spec/asciidoctor/base_spec.rb +701 -508
- data/spec/asciidoctor/blocks_spec.rb +831 -738
- data/spec/asciidoctor/cleanup_sections_spec.rb +51 -14
- data/spec/asciidoctor/cleanup_spec.rb +889 -682
- data/spec/asciidoctor/inline_spec.rb +62 -14
- data/spec/asciidoctor/isobib_cache_spec.rb +404 -358
- data/spec/asciidoctor/lists_spec.rb +149 -137
- data/spec/asciidoctor/macros_plantuml_spec.rb +8 -8
- data/spec/asciidoctor/macros_spec.rb +923 -503
- data/spec/asciidoctor/macros_yaml2text_spec.rb +1 -1
- data/spec/asciidoctor/refs_dl_spec.rb +4 -4
- data/spec/asciidoctor/refs_spec.rb +1528 -1533
- data/spec/asciidoctor/section_spec.rb +405 -299
- data/spec/asciidoctor/table_spec.rb +6 -6
- data/spec/asciidoctor/validate_spec.rb +342 -304
- data/spec/spec_helper.rb +13 -9
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +54 -54
- data/spec/vcr_cassettes/isobib_get_123.yml +13 -13
- data/spec/vcr_cassettes/isobib_get_123_1.yml +25 -25
- data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +37 -37
- data/spec/vcr_cassettes/isobib_get_123_2001.yml +12 -12
- data/spec/vcr_cassettes/isobib_get_124.yml +13 -13
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +14 -14
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +46 -46
- metadata +16 -15
- data/lib/liquid/custom_blocks/key_iterator.rb +0 -21
- data/lib/liquid/custom_blocks/with_json_nested_context.rb +0 -18
- data/lib/liquid/custom_blocks/with_yaml_nested_context.rb +0 -19
- data/lib/liquid/custom_filters/values.rb +0 -7
@@ -4,7 +4,7 @@ require "fileutils"
|
|
4
4
|
|
5
5
|
RSpec.describe Asciidoctor::Standoc do
|
6
6
|
it "appends any initial user-supplied text to boilerplate in terms and definitions" do
|
7
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
7
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
8
8
|
#{ASCIIDOC_BLANK_HDR}
|
9
9
|
== Terms and Definitions
|
10
10
|
|
@@ -36,7 +36,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it "removes initial extraneous material from Normative References" do
|
39
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
39
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
40
40
|
#{ASCIIDOC_BLANK_HDR}
|
41
41
|
[bibliography]
|
42
42
|
== Normative References
|
@@ -69,8 +69,45 @@ RSpec.describe Asciidoctor::Standoc do
|
|
69
69
|
OUTPUT
|
70
70
|
end
|
71
71
|
|
72
|
-
|
73
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
72
|
+
it "preserves user-supplied boilerplate in Normative References" do
|
73
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
74
|
+
#{ASCIIDOC_BLANK_HDR}
|
75
|
+
[bibliography]
|
76
|
+
== Normative References
|
77
|
+
|
78
|
+
[NOTE,type=boilerplate]
|
79
|
+
--
|
80
|
+
This is extraneous information
|
81
|
+
--
|
82
|
+
|
83
|
+
* [[[iso216,ISO 216]]], _Reference_
|
84
|
+
|
85
|
+
This is also extraneous information
|
86
|
+
INPUT
|
87
|
+
#{BLANK_HDR}
|
88
|
+
<sections></sections>
|
89
|
+
<bibliography><references id="_" obligation="informative" normative="true"><title>Normative references</title>
|
90
|
+
<p id='_'>This is extraneous information</p>
|
91
|
+
<bibitem id="iso216" type="standard">
|
92
|
+
<title format="text/plain">Reference</title>
|
93
|
+
<docidentifier>ISO 216</docidentifier>
|
94
|
+
<docnumber>216</docnumber>
|
95
|
+
<contributor>
|
96
|
+
<role type="publisher"/>
|
97
|
+
<organization>
|
98
|
+
<name>ISO</name>
|
99
|
+
</organization>
|
100
|
+
</contributor>
|
101
|
+
</bibitem>
|
102
|
+
<p id='_'>This is also extraneous information</p>
|
103
|
+
</references>
|
104
|
+
</bibliography>
|
105
|
+
</standard-document>
|
106
|
+
OUTPUT
|
107
|
+
end
|
108
|
+
|
109
|
+
it "sorts references with their notes in Bibliography" do
|
110
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
74
111
|
#{ASCIIDOC_BLANK_HDR}
|
75
112
|
[bibliography]
|
76
113
|
== Bibliography
|
@@ -144,7 +181,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
144
181
|
end
|
145
182
|
|
146
183
|
it "defaults section obligations" do
|
147
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
184
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
148
185
|
#{ASCIIDOC_BLANK_HDR}
|
149
186
|
|
150
187
|
== Clause
|
@@ -169,7 +206,7 @@ end
|
|
169
206
|
end
|
170
207
|
|
171
208
|
it "extends clause levels past 5" do
|
172
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
209
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
173
210
|
#{ASCIIDOC_BLANK_HDR}
|
174
211
|
|
175
212
|
== Clause1
|
@@ -232,7 +269,7 @@ end
|
|
232
269
|
end
|
233
270
|
|
234
271
|
it "inserts boilerplate before empty Normative References" do
|
235
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
272
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
236
273
|
#{ASCIIDOC_BLANK_HDR}
|
237
274
|
|
238
275
|
[bibliography]
|
@@ -250,7 +287,7 @@ end
|
|
250
287
|
end
|
251
288
|
|
252
289
|
it "inserts boilerplate before non-empty Normative References" do
|
253
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
290
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
254
291
|
#{ASCIIDOC_BLANK_HDR}
|
255
292
|
|
256
293
|
[bibliography]
|
@@ -274,7 +311,7 @@ end
|
|
274
311
|
end
|
275
312
|
|
276
313
|
it "inserts boilerplate before empty Normative References in French" do
|
277
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
314
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
278
315
|
= Document title
|
279
316
|
Author
|
280
317
|
:docfile: test.adoc
|
@@ -298,7 +335,7 @@ it "inserts boilerplate before empty Normative References in French" do
|
|
298
335
|
end
|
299
336
|
|
300
337
|
it "processes section names, with footnotes" do
|
301
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
338
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
302
339
|
#{ASCIIDOC_BLANK_HDR}
|
303
340
|
.Foreword.footnote:[A]
|
304
341
|
|
@@ -590,7 +627,7 @@ OUTPUT
|
|
590
627
|
end
|
591
628
|
|
592
629
|
it "processes section names, default to English" do
|
593
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
630
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
594
631
|
#{ASCIIDOC_BLANK_HDR.sub(/:nodoc:/, ":language: tlh\n:script: Latn\n:nodoc:")}
|
595
632
|
.Foreword
|
596
633
|
|
@@ -821,7 +858,7 @@ OUTPUT
|
|
821
858
|
end
|
822
859
|
|
823
860
|
it "processes section names, French" do
|
824
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
861
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
825
862
|
#{ASCIIDOC_BLANK_HDR.sub(/:nodoc:/, ":language: fr\n:script: Latn\n:nodoc:")}
|
826
863
|
.Foreword
|
827
864
|
|
@@ -1055,7 +1092,7 @@ OUTPUT
|
|
1055
1092
|
end
|
1056
1093
|
|
1057
1094
|
it "processes section names, Simplified Chinese" do
|
1058
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
1095
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1059
1096
|
#{ASCIIDOC_BLANK_HDR.sub(/:nodoc:/, ":language: zh\n:script: Hans\n:nodoc:")}
|
1060
1097
|
.Foreword
|
1061
1098
|
|
@@ -1286,7 +1323,7 @@ OUTPUT
|
|
1286
1323
|
end
|
1287
1324
|
|
1288
1325
|
it "processes section names, internationalisation file" do
|
1289
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT",
|
1326
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1290
1327
|
#{ASCIIDOC_BLANK_HDR.sub(/:nodoc:/, ":i18nyaml: spec/assets/i18n.yaml")}
|
1291
1328
|
.Foreword
|
1292
1329
|
|
@@ -4,37 +4,40 @@ require "fileutils"
|
|
4
4
|
|
5
5
|
RSpec.describe Asciidoctor::Standoc do
|
6
6
|
it "processes svgmap" do
|
7
|
-
FileUtils.cp "spec/fixtures/action_schemaexpg1.svg",
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
7
|
+
FileUtils.cp "spec/fixtures/action_schemaexpg1.svg",
|
8
|
+
"action_schemaexpg1.svg"
|
9
|
+
FileUtils.cp "spec/fixtures/action_schemaexpg1.svg",
|
10
|
+
"action_schemaexpg2.svg"
|
11
|
+
input = <<~INPUT
|
12
|
+
#{ASCIIDOC_BLANK_HDR}
|
13
|
+
|
14
|
+
[svgmap%unnumbered,number=8,subsequence=A,keep-with-next=true,keep-lines-together=true]
|
15
|
+
====
|
16
|
+
* <<ref1,Computer>>; http://www.example.com
|
17
|
+
====
|
18
|
+
|
19
|
+
[[ref1]]
|
20
|
+
.SVG title
|
21
|
+
[.svgmap]
|
22
|
+
====
|
23
|
+
image::action_schemaexpg1.svg[]
|
24
|
+
|
25
|
+
* <<ref1,Computer>>; mn://action_schema
|
26
|
+
* http://www.example.com[Phone]; http://www.example.com
|
27
|
+
====
|
28
|
+
|
29
|
+
[[ref2]]
|
30
|
+
[svgmap%unnumbered,number=8,subsequence=A,keep-with-next=true,keep-lines-together=true]
|
31
|
+
====
|
32
|
+
[alt=Workmap]
|
33
|
+
image::action_schemaexpg2.svg[]
|
34
|
+
|
35
|
+
* <<ref1,Computer>>; mn://action_schema
|
36
|
+
* http://www.example.com[Phone]; mn://basic_attribute_schema
|
37
|
+
* <<express:action_schema:action_schema.basic,Coffee>>; mn://support_resource_schema
|
38
|
+
====
|
37
39
|
INPUT
|
40
|
+
output = <<~OUTPUT
|
38
41
|
#{BLANK_HDR}
|
39
42
|
<sections>
|
40
43
|
<svgmap unnumbered='true' number='8' subsequence='A' keep-with-next='true' keep-lines-together='true'>
|
@@ -44,9 +47,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
44
47
|
</svgmap>
|
45
48
|
<figure id='ref1'>
|
46
49
|
<name>SVG title</name>
|
47
|
-
|
48
|
-
<!-- Generator: Adobe Illustrator 25.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
49
|
-
<svg xmlns='http://www.w3.org/2000/svg' version='1.1' id='Layer_1' x='0px' y='0px' viewbox='0 0 595.28 841.89' style='enable-background:new 0 0 595.28 841.89;' xml:space='preserve' xmlns:xlink='http://www.w3.org/1999/xlink'>
|
50
|
+
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='Layer_1_000000001' x='0px' y='0px' viewBox='0 0 595.28 841.89' style='enable-background:new 0 0 595.28 841.89;' xml:space='preserve'>
|
50
51
|
<style/>
|
51
52
|
<image/>
|
52
53
|
<a xlink:href='#ref1'>
|
@@ -62,9 +63,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
62
63
|
</figure>
|
63
64
|
<svgmap>
|
64
65
|
<figure id='ref2' unnumbered='true' number='8' subsequence='A' keep-with-next='true' keep-lines-together='true'>
|
65
|
-
|
66
|
-
<!-- Generator: Adobe Illustrator 25.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
67
|
-
<svg xmlns='http://www.w3.org/2000/svg' version='1.1' id='Layer_1' x='0px' y='0px' viewbox='0 0 595.28 841.89' style='enable-background:new 0 0 595.28 841.89;' xml:space='preserve' xmlns:xlink='http://www.w3.org/1999/xlink'>
|
66
|
+
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='Layer_1_000000002' x='0px' y='0px' viewBox='0 0 595.28 841.89' style='enable-background:new 0 0 595.28 841.89;' xml:space='preserve'>
|
68
67
|
<style/>
|
69
68
|
<image/>
|
70
69
|
<a xlink:href='#ref1'>
|
@@ -99,25 +98,30 @@ RSpec.describe Asciidoctor::Standoc do
|
|
99
98
|
</bibliography>
|
100
99
|
</standard-document>
|
101
100
|
OUTPUT
|
101
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS)))
|
102
|
+
.gsub(%r{<image.*?</image>}m, "<image/>")
|
103
|
+
.gsub(%r{<style.*?</style>}m, "<style/>"))
|
104
|
+
.to be_equivalent_to xmlpp(output)
|
102
105
|
end
|
103
106
|
|
104
107
|
it "processes markup in sourcecode" do
|
105
|
-
|
106
|
-
|
108
|
+
input = <<~INPUT
|
109
|
+
#{ASCIIDOC_BLANK_HDR}
|
107
110
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
111
|
+
[source]
|
112
|
+
----
|
113
|
+
<tag/>
|
114
|
+
----
|
112
115
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
116
|
+
[[A]]
|
117
|
+
[source]
|
118
|
+
----
|
119
|
+
var {{{*x*}}} : {{{<<A,recursive>>}}} <tag/>
|
120
|
+
----
|
118
121
|
|
119
122
|
|
120
123
|
INPUT
|
124
|
+
output = <<~OUTPUT
|
121
125
|
#{BLANK_HDR}
|
122
126
|
<sections>
|
123
127
|
<sourcecode id='_'><tag/></sourcecode>
|
@@ -131,10 +135,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
131
135
|
</sections>
|
132
136
|
</standard-document>
|
133
137
|
OUTPUT
|
138
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
139
|
+
.to be_equivalent_to xmlpp(output)
|
134
140
|
end
|
135
141
|
|
136
142
|
it "processes markup in sourcecode with custom delimiters" do
|
137
|
-
|
143
|
+
input = <<~INPUT
|
138
144
|
= Document title
|
139
145
|
Author
|
140
146
|
:docfile: test.adoc
|
@@ -152,6 +158,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
152
158
|
|
153
159
|
|
154
160
|
INPUT
|
161
|
+
output = <<~OUTPUT
|
155
162
|
#{BLANK_HDR}
|
156
163
|
<sections>
|
157
164
|
<sourcecode id='A'>
|
@@ -163,15 +170,18 @@ RSpec.describe Asciidoctor::Standoc do
|
|
163
170
|
</sections>
|
164
171
|
</standard-document>
|
165
172
|
OUTPUT
|
173
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
174
|
+
.to be_equivalent_to xmlpp(output)
|
166
175
|
end
|
167
176
|
|
168
177
|
it "applies smartquotes by default" do
|
169
|
-
|
178
|
+
input = <<~INPUT
|
170
179
|
#{ASCIIDOC_BLANK_HDR}
|
171
180
|
== "Quotation" A's
|
172
181
|
|
173
182
|
'24:00:00'.
|
174
183
|
INPUT
|
184
|
+
output = <<~OUTPUT
|
175
185
|
#{BLANK_HDR}
|
176
186
|
<sections>
|
177
187
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -181,10 +191,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
181
191
|
</sections>
|
182
192
|
</standard-document>
|
183
193
|
OUTPUT
|
194
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
195
|
+
.to be_equivalent_to xmlpp(output)
|
184
196
|
end
|
185
197
|
|
186
198
|
it "applies smartquotes when requested" do
|
187
|
-
|
199
|
+
input = <<~INPUT
|
188
200
|
= Document title
|
189
201
|
Author
|
190
202
|
:docfile: test.adoc
|
@@ -195,6 +207,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
195
207
|
|
196
208
|
== "Quotation" A's
|
197
209
|
INPUT
|
210
|
+
output = <<~OUTPUT
|
198
211
|
#{BLANK_HDR}
|
199
212
|
<sections>
|
200
213
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -203,10 +216,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
203
216
|
</sections>
|
204
217
|
</standard-document>
|
205
218
|
OUTPUT
|
219
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
220
|
+
.to be_equivalent_to xmlpp(output)
|
206
221
|
end
|
207
222
|
|
208
223
|
it "does not apply smartquotes when requested not to" do
|
209
|
-
|
224
|
+
input = <<~INPUT
|
210
225
|
= Document title
|
211
226
|
Author
|
212
227
|
:docfile: test.adoc
|
@@ -219,6 +234,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
219
234
|
|
220
235
|
`"quote" A's`
|
221
236
|
INPUT
|
237
|
+
output = <<~OUTPUT
|
222
238
|
#{BLANK_HDR}
|
223
239
|
<sections>
|
224
240
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -230,10 +246,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
230
246
|
</sections>
|
231
247
|
</standard-document>
|
232
248
|
OUTPUT
|
249
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
250
|
+
.to be_equivalent_to xmlpp(output)
|
233
251
|
end
|
234
252
|
|
235
253
|
it "does not apply smartquotes to sourcecode, tt, pre, pseudocode" do
|
236
|
-
|
254
|
+
input = <<~INPUT
|
237
255
|
= Document title
|
238
256
|
Author
|
239
257
|
:docfile: test.adoc
|
@@ -259,6 +277,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
259
277
|
====
|
260
278
|
|
261
279
|
INPUT
|
280
|
+
output = <<~OUTPUT
|
262
281
|
#{BLANK_HDR}
|
263
282
|
<sections>
|
264
283
|
<clause id="_" inline-header="false" obligation="normative"><title>“Quotation” A’s</title><p id="_">“Quotation” A’s</p>
|
@@ -273,15 +292,18 @@ RSpec.describe Asciidoctor::Standoc do
|
|
273
292
|
</sections>
|
274
293
|
</standard-document>
|
275
294
|
OUTPUT
|
295
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
296
|
+
.to be_equivalent_to xmlpp(output)
|
276
297
|
end
|
277
298
|
|
278
299
|
it "handles < > & in Asciidoctor correctly" do
|
279
|
-
|
300
|
+
input = <<~INPUT
|
280
301
|
#{ASCIIDOC_BLANK_HDR}
|
281
302
|
== {blank}
|
282
303
|
|
283
304
|
<&>
|
284
305
|
INPUT
|
306
|
+
output = <<~OUTPUT
|
285
307
|
#{BLANK_HDR}
|
286
308
|
<sections>
|
287
309
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -290,13 +312,16 @@ RSpec.describe Asciidoctor::Standoc do
|
|
290
312
|
</sections>
|
291
313
|
</standard-document>
|
292
314
|
OUTPUT
|
315
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
316
|
+
.to be_equivalent_to xmlpp(output)
|
293
317
|
end
|
294
318
|
|
295
319
|
it "removes empty text elements" do
|
296
|
-
|
320
|
+
input = <<~INPUT
|
297
321
|
#{ASCIIDOC_BLANK_HDR}
|
298
322
|
== {blank}
|
299
323
|
INPUT
|
324
|
+
output = <<~OUTPUT
|
300
325
|
#{BLANK_HDR}
|
301
326
|
<sections>
|
302
327
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -305,10 +330,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
305
330
|
</sections>
|
306
331
|
</standard-document>
|
307
332
|
OUTPUT
|
333
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
334
|
+
.to be_equivalent_to xmlpp(output)
|
308
335
|
end
|
309
336
|
|
310
337
|
it "processes stem-only terms as admitted" do
|
311
|
-
|
338
|
+
input = <<~INPUT
|
312
339
|
#{ASCIIDOC_BLANK_HDR}
|
313
340
|
== Terms and Definitions
|
314
341
|
|
@@ -318,6 +345,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
318
345
|
|
319
346
|
Time
|
320
347
|
INPUT
|
348
|
+
output = <<~OUTPUT
|
321
349
|
#{BLANK_HDR}
|
322
350
|
<sections>
|
323
351
|
<terms id="_" obligation="normative">
|
@@ -343,10 +371,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
343
371
|
</sections>
|
344
372
|
</standard-document>
|
345
373
|
OUTPUT
|
374
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
375
|
+
.to be_equivalent_to xmlpp(output)
|
346
376
|
end
|
347
377
|
|
348
378
|
it "moves term domains out of the term definition paragraph" do
|
349
|
-
|
379
|
+
input = <<~INPUT
|
350
380
|
#{ASCIIDOC_BLANK_HDR}
|
351
381
|
== Terms and Definitions
|
352
382
|
|
@@ -360,6 +390,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
360
390
|
|
361
391
|
domain:[relativity2]
|
362
392
|
INPUT
|
393
|
+
output = <<~OUTPUT
|
363
394
|
#{BLANK_HDR}
|
364
395
|
<sections>
|
365
396
|
<terms id="_" obligation="normative">
|
@@ -381,10 +412,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
381
412
|
</sections>
|
382
413
|
</standard-document>
|
383
414
|
OUTPUT
|
415
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
416
|
+
.to be_equivalent_to xmlpp(output)
|
384
417
|
end
|
385
418
|
|
386
419
|
it "permits multiple blocks in term definition paragraph" do
|
387
|
-
|
420
|
+
input = <<~INPUT
|
388
421
|
= Document title
|
389
422
|
Author
|
390
423
|
:docfile: test.adoc
|
@@ -403,6 +436,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
403
436
|
|
404
437
|
This paragraph is extraneous
|
405
438
|
INPUT
|
439
|
+
output = <<~OUTPUT
|
406
440
|
#{BLANK_HDR}
|
407
441
|
<sections>
|
408
442
|
<terms id="_" obligation="normative">
|
@@ -431,35 +465,40 @@ RSpec.describe Asciidoctor::Standoc do
|
|
431
465
|
</sections>
|
432
466
|
</standard-document>
|
433
467
|
OUTPUT
|
468
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
469
|
+
.to be_equivalent_to xmlpp(output)
|
434
470
|
end
|
435
471
|
|
436
472
|
it "moves notes inside preceding blocks, if they are not at clause end, and the blocks are not delimited" do
|
437
|
-
|
438
|
-
|
473
|
+
input = <<~INPUT
|
474
|
+
#{ASCIIDOC_BLANK_HDR}
|
439
475
|
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
476
|
+
[stem]
|
477
|
+
++++
|
478
|
+
r = 1 %
|
479
|
+
r = 1 %
|
480
|
+
++++
|
445
481
|
|
446
|
-
|
482
|
+
NOTE: That formula does not do much
|
447
483
|
|
448
|
-
|
484
|
+
Indeed.
|
449
485
|
INPUT
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
486
|
+
output = <<~OUTPUT
|
487
|
+
#{BLANK_HDR}
|
488
|
+
<sections><formula id="_">
|
489
|
+
<stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>r</mi><mo>=</mo><mn>1</mn><mi>%</mi><mi>r</mi><mo>=</mo><mn>1</mn><mi>%</mi></math></stem>
|
490
|
+
<note id="_">
|
491
|
+
<p id="_">That formula does not do much</p>
|
492
|
+
</note></formula>
|
493
|
+
<p id="_">Indeed.</p></sections>
|
494
|
+
</standard-document>
|
458
495
|
OUTPUT
|
496
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
497
|
+
.to be_equivalent_to xmlpp(output)
|
459
498
|
end
|
460
499
|
|
461
500
|
it "does not move notes inside preceding blocks, if they are marked as keep-separate" do
|
462
|
-
|
501
|
+
input = <<~INPUT
|
463
502
|
#{ASCIIDOC_BLANK_HDR}
|
464
503
|
|
465
504
|
[stem]
|
@@ -475,19 +514,22 @@ RSpec.describe Asciidoctor::Standoc do
|
|
475
514
|
|
476
515
|
Indeed.
|
477
516
|
INPUT
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
517
|
+
output = <<~OUTPUT
|
518
|
+
#{BLANK_HDR}
|
519
|
+
<sections><formula id="_">
|
520
|
+
<stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>r</mi><mo>=</mo><mn>1</mn><mi>%</mi><mi>r</mi><mo>=</mo><mn>1</mn><mi>%</mi></math></stem></formula>
|
521
|
+
<note id="_">
|
522
|
+
<p id="_">That formula does not do much</p>
|
523
|
+
</note>
|
524
|
+
<p id="_">Indeed.</p></sections>
|
525
|
+
</standard-document>
|
486
526
|
OUTPUT
|
527
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
528
|
+
.to be_equivalent_to xmlpp(output)
|
487
529
|
end
|
488
530
|
|
489
531
|
it "does not move notes inside preceding blocks, if they are at clause end" do
|
490
|
-
|
532
|
+
input = <<~INPUT
|
491
533
|
#{ASCIIDOC_BLANK_HDR}
|
492
534
|
[source,ruby]
|
493
535
|
[1...x].each do |y|
|
@@ -496,6 +538,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
496
538
|
|
497
539
|
NOTE: That loop does not do much
|
498
540
|
INPUT
|
541
|
+
output = <<~OUTPUT
|
499
542
|
#{BLANK_HDR}
|
500
543
|
<sections><sourcecode id="_" lang="ruby">[1...x].each do |y|
|
501
544
|
puts y
|
@@ -505,10 +548,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
505
548
|
</note></sections>
|
506
549
|
</standard-document>
|
507
550
|
OUTPUT
|
551
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
552
|
+
.to be_equivalent_to xmlpp(output)
|
508
553
|
end
|
509
554
|
|
510
555
|
it "converts xrefs to references into erefs" do
|
511
|
-
|
556
|
+
input = <<~INPUT
|
512
557
|
#{ASCIIDOC_BLANK_HDR}
|
513
558
|
<<iso216>>
|
514
559
|
<<iso216,droploc%capital%>>
|
@@ -517,6 +562,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
517
562
|
== Normative References
|
518
563
|
* [[[iso216,ISO 216:2001]]], _Reference_
|
519
564
|
INPUT
|
565
|
+
output = <<~OUTPUT
|
520
566
|
#{BLANK_HDR}
|
521
567
|
<preface><foreword id="_" obligation="informative">
|
522
568
|
<title>Foreword</title>
|
@@ -546,10 +592,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
546
592
|
</bibliography>
|
547
593
|
</standard-document>
|
548
594
|
OUTPUT
|
595
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
596
|
+
.to be_equivalent_to xmlpp(output)
|
549
597
|
end
|
550
598
|
|
551
599
|
it "extracts localities from erefs" do
|
552
|
-
|
600
|
+
input = <<~INPUT
|
553
601
|
#{ASCIIDOC_BLANK_HDR}
|
554
602
|
<<iso216,whole,clause=3,example=9-11,locality:prelude="33 a",locality:entirety:the reference,xyz>>
|
555
603
|
<<iso216,whole,clause=3,example=9-11,locality:prelude=33,locality:entirety="the reference";whole,clause=3,example=9-11,locality:prelude=33,locality:entirety:the reference,xyz>>
|
@@ -562,6 +610,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
562
610
|
== Normative References
|
563
611
|
* [[[iso216,ISO 216]]], _Reference_
|
564
612
|
INPUT
|
613
|
+
output = <<~OUTPUT
|
565
614
|
#{BLANK_HDR}
|
566
615
|
<preface><foreword id="_" obligation="informative">
|
567
616
|
<title>Foreword</title>
|
@@ -654,10 +703,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
654
703
|
</bibliography>
|
655
704
|
</standard-document>
|
656
705
|
OUTPUT
|
706
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
707
|
+
.to be_equivalent_to xmlpp(output)
|
657
708
|
end
|
658
709
|
|
659
710
|
it "strips type from xrefs" do
|
660
|
-
|
711
|
+
input = <<~INPUT
|
661
712
|
#{ASCIIDOC_BLANK_HDR}
|
662
713
|
<<iso216>>
|
663
714
|
|
@@ -665,6 +716,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
665
716
|
== Clause
|
666
717
|
* [[[iso216,ISO 216]]], _Reference_
|
667
718
|
INPUT
|
719
|
+
output = <<~OUTPUT
|
668
720
|
#{BLANK_HDR}
|
669
721
|
<preface>
|
670
722
|
<foreword id="_" obligation="informative">
|
@@ -689,10 +741,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
689
741
|
</references></bibliography>
|
690
742
|
</standard-document>
|
691
743
|
OUTPUT
|
744
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
745
|
+
.to be_equivalent_to xmlpp(output)
|
692
746
|
end
|
693
747
|
|
694
748
|
it "processes localities in term sources" do
|
695
|
-
|
749
|
+
input = <<~INPUT
|
696
750
|
#{ASCIIDOC_BLANK_HDR}
|
697
751
|
== Terms and Definitions
|
698
752
|
|
@@ -701,6 +755,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
701
755
|
[.source]
|
702
756
|
<<ISO2191,section=1>>
|
703
757
|
INPUT
|
758
|
+
output = <<~OUTPUT
|
704
759
|
#{BLANK_HDR}
|
705
760
|
<sections>
|
706
761
|
<terms id="_" obligation="normative">
|
@@ -720,29 +775,35 @@ RSpec.describe Asciidoctor::Standoc do
|
|
720
775
|
</sections>
|
721
776
|
</standard-document>
|
722
777
|
OUTPUT
|
778
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
779
|
+
.to be_equivalent_to xmlpp(output)
|
723
780
|
end
|
724
781
|
|
725
782
|
it "inserts IDs into paragraphs" do
|
726
|
-
|
783
|
+
input = <<~INPUT
|
727
784
|
#{ASCIIDOC_BLANK_HDR}
|
728
785
|
Paragraph
|
729
786
|
INPUT
|
787
|
+
output = <<~OUTPUT
|
730
788
|
#{BLANK_HDR}
|
731
789
|
<sections>
|
732
790
|
<p id="_">Paragraph</p>
|
733
791
|
</sections>
|
734
792
|
</standard-document>
|
735
793
|
OUTPUT
|
794
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
795
|
+
.to be_equivalent_to xmlpp(output)
|
736
796
|
end
|
737
797
|
|
738
798
|
it "inserts IDs into notes" do
|
739
|
-
|
799
|
+
input = <<~INPUT
|
740
800
|
#{ASCIIDOC_BLANK_HDR}
|
741
801
|
[example]
|
742
802
|
====
|
743
803
|
NOTE: This note has no ID
|
744
804
|
====
|
745
805
|
INPUT
|
806
|
+
output = <<~OUTPUT
|
746
807
|
#{BLANK_HDR}
|
747
808
|
<sections>
|
748
809
|
<example id="_">
|
@@ -753,10 +814,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
753
814
|
</sections>
|
754
815
|
</standard-document>
|
755
816
|
OUTPUT
|
817
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
818
|
+
.to be_equivalent_to xmlpp(output)
|
756
819
|
end
|
757
820
|
|
758
821
|
it "moves table key inside table" do
|
759
|
-
|
822
|
+
input = <<~INPUT
|
760
823
|
#{ASCIIDOC_BLANK_HDR}
|
761
824
|
|===
|
762
825
|
|a |b |c
|
@@ -779,6 +842,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
779
842
|
|
780
843
|
a:: b
|
781
844
|
INPUT
|
845
|
+
output = <<~OUTPUT
|
782
846
|
#{BLANK_HDR}
|
783
847
|
<sections>
|
784
848
|
<table id='_'>
|
@@ -829,10 +893,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
829
893
|
</sections>
|
830
894
|
</standard-document>
|
831
895
|
OUTPUT
|
896
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
897
|
+
.to be_equivalent_to xmlpp(output)
|
832
898
|
end
|
833
899
|
|
834
900
|
it "processes headerrows attribute for table without header rows" do
|
835
|
-
|
901
|
+
input = <<~INPUT
|
836
902
|
#{ASCIIDOC_BLANK_HDR}
|
837
903
|
[headerrows=3]
|
838
904
|
|===
|
@@ -842,6 +908,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
842
908
|
|a |b |c
|
843
909
|
|===
|
844
910
|
INPUT
|
911
|
+
output = <<~OUTPUT
|
845
912
|
#{BLANK_HDR}
|
846
913
|
<sections>
|
847
914
|
<table id="_"><thead><tr>
|
@@ -868,10 +935,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
868
935
|
</sections>
|
869
936
|
</standard-document>
|
870
937
|
OUTPUT
|
938
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
939
|
+
.to be_equivalent_to xmlpp(output)
|
871
940
|
end
|
872
941
|
|
873
942
|
it "processes headerrows attribute for table with header rows" do
|
874
|
-
|
943
|
+
input = <<~INPUT
|
875
944
|
#{ASCIIDOC_BLANK_HDR}
|
876
945
|
[headerrows=3]
|
877
946
|
|===
|
@@ -882,6 +951,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
882
951
|
|a |b |c
|
883
952
|
|===
|
884
953
|
INPUT
|
954
|
+
output = <<~OUTPUT
|
885
955
|
#{BLANK_HDR}
|
886
956
|
<sections>
|
887
957
|
<table id="_">
|
@@ -913,10 +983,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
913
983
|
</sections>
|
914
984
|
</standard-document>
|
915
985
|
OUTPUT
|
986
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
987
|
+
.to be_equivalent_to xmlpp(output)
|
916
988
|
end
|
917
989
|
|
918
990
|
it "moves table notes inside table" do
|
919
|
-
|
991
|
+
input = <<~INPUT
|
920
992
|
#{ASCIIDOC_BLANK_HDR}
|
921
993
|
|===
|
922
994
|
|a |b |c
|
@@ -926,6 +998,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
926
998
|
|
927
999
|
NOTE: Note 2
|
928
1000
|
INPUT
|
1001
|
+
output = <<~OUTPUT
|
929
1002
|
#{BLANK_HDR}
|
930
1003
|
<sections><table id="_">
|
931
1004
|
<tbody>
|
@@ -944,10 +1017,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
944
1017
|
</sections>
|
945
1018
|
</standard-document>
|
946
1019
|
OUTPUT
|
1020
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1021
|
+
.to be_equivalent_to xmlpp(output)
|
947
1022
|
end
|
948
1023
|
|
949
1024
|
it "moves formula key inside formula" do
|
950
|
-
|
1025
|
+
input = <<~INPUT
|
951
1026
|
#{ASCIIDOC_BLANK_HDR}
|
952
1027
|
[stem]
|
953
1028
|
++++
|
@@ -973,6 +1048,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
973
1048
|
|
974
1049
|
a:: b
|
975
1050
|
INPUT
|
1051
|
+
output = <<~OUTPUT
|
976
1052
|
#{BLANK_HDR}
|
977
1053
|
<sections>
|
978
1054
|
<formula id='_'>
|
@@ -1029,10 +1105,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1029
1105
|
</sections>
|
1030
1106
|
</standard-document>
|
1031
1107
|
OUTPUT
|
1108
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1109
|
+
.to be_equivalent_to xmlpp(output)
|
1032
1110
|
end
|
1033
1111
|
|
1034
1112
|
it "moves footnotes inside figures" do
|
1035
|
-
|
1113
|
+
input = <<~INPUT
|
1036
1114
|
#{ASCIIDOC_BLANK_HDR}
|
1037
1115
|
.Figuretitle.footnote:[xyz]
|
1038
1116
|
image::spec/examples/rice_images/rice_image1.png[]
|
@@ -1043,33 +1121,36 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1043
1121
|
|
1044
1122
|
A footnote:[This is a third footnote]
|
1045
1123
|
INPUT
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1124
|
+
output = <<~OUTPUT
|
1125
|
+
#{BLANK_HDR}
|
1126
|
+
<sections><figure id="_">
|
1127
|
+
<name>
|
1128
|
+
Figuretitle.
|
1129
|
+
<fn reference='1'>
|
1130
|
+
<p id='_'>xyz</p>
|
1131
|
+
</fn>
|
1132
|
+
</name>
|
1133
|
+
<image src="spec/examples/rice_images/rice_image1.png" id="_" mimetype="image/png" height="auto" width="auto"/>
|
1134
|
+
<fn reference="a">
|
1135
|
+
<p id="_">This is a footnote to a figure</p>
|
1136
|
+
</fn><fn reference="b">
|
1137
|
+
<p id="_">This is another footnote to a figure</p>
|
1138
|
+
</fn></figure>
|
1139
|
+
<p id='_'>
|
1140
|
+
A
|
1141
|
+
<fn reference='2'>
|
1142
|
+
<p id='_'>This is a third footnote</p>
|
1143
|
+
</fn>
|
1144
|
+
</p>
|
1145
|
+
</sections>
|
1146
|
+
</standard-document>
|
1068
1147
|
OUTPUT
|
1148
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1149
|
+
.to be_equivalent_to xmlpp(output)
|
1069
1150
|
end
|
1070
1151
|
|
1071
1152
|
it "moves figure key inside figure" do
|
1072
|
-
|
1153
|
+
input = <<~INPUT
|
1073
1154
|
#{ASCIIDOC_BLANK_HDR}
|
1074
1155
|
image::spec/examples/rice_images/rice_image1.png[]
|
1075
1156
|
|
@@ -1086,6 +1167,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1086
1167
|
|
1087
1168
|
a:: b
|
1088
1169
|
INPUT
|
1170
|
+
output = <<~OUTPUT
|
1089
1171
|
#{BLANK_HDR}
|
1090
1172
|
<sections>
|
1091
1173
|
<figure id='_'>
|
@@ -1118,10 +1200,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1118
1200
|
</sections>
|
1119
1201
|
</standard-document>
|
1120
1202
|
OUTPUT
|
1203
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1204
|
+
.to be_equivalent_to xmlpp(output)
|
1121
1205
|
end
|
1122
1206
|
|
1123
1207
|
it "processes subfigures" do
|
1124
|
-
|
1208
|
+
input = <<~INPUT
|
1125
1209
|
#{ASCIIDOC_BLANK_HDR}
|
1126
1210
|
[[figureC-2]]
|
1127
1211
|
.Stages of gelatinization
|
@@ -1136,6 +1220,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1136
1220
|
image::spec/examples/rice_images/rice_image3_3.png[]
|
1137
1221
|
====
|
1138
1222
|
INPUT
|
1223
|
+
output = <<~OUTPUT
|
1139
1224
|
#{BLANK_HDR}
|
1140
1225
|
<sections>
|
1141
1226
|
<figure id="figureC-2"><name>Stages of gelatinization</name><figure id="_">
|
@@ -1153,10 +1238,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1153
1238
|
</sections>
|
1154
1239
|
</standard-document>
|
1155
1240
|
OUTPUT
|
1241
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1242
|
+
.to be_equivalent_to xmlpp(output)
|
1156
1243
|
end
|
1157
1244
|
|
1158
1245
|
it "numbers bibliographic notes and footnotes sequentially" do
|
1159
|
-
|
1246
|
+
input = <<~INPUT
|
1160
1247
|
#{ASCIIDOC_BLANK_HDR}
|
1161
1248
|
footnote:[Footnote]
|
1162
1249
|
|
@@ -1168,6 +1255,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1168
1255
|
== Clause
|
1169
1256
|
footnote:[Footnote2]
|
1170
1257
|
INPUT
|
1258
|
+
output = <<~OUTPUT
|
1171
1259
|
#{BLANK_HDR}
|
1172
1260
|
<preface><foreword id="_" obligation="informative">
|
1173
1261
|
<title>Foreword</title>
|
@@ -1205,10 +1293,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1205
1293
|
</bibliography>
|
1206
1294
|
</standard-document>
|
1207
1295
|
OUTPUT
|
1296
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1297
|
+
.to be_equivalent_to xmlpp(output)
|
1208
1298
|
end
|
1209
1299
|
|
1210
1300
|
it "rearranges term note, term example, term source" do
|
1211
|
-
|
1301
|
+
input = <<~INPUT
|
1212
1302
|
#{ASCIIDOC_BLANK_HDR}
|
1213
1303
|
|
1214
1304
|
== Terms and definitions
|
@@ -1228,6 +1318,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1228
1318
|
[example]
|
1229
1319
|
Example 2
|
1230
1320
|
INPUT
|
1321
|
+
output = <<~OUTPUT
|
1231
1322
|
#{BLANK_HDR}
|
1232
1323
|
<sections>
|
1233
1324
|
<terms id="_" obligation="normative">
|
@@ -1256,20 +1347,24 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1256
1347
|
</sections>
|
1257
1348
|
</standard-document>
|
1258
1349
|
OUTPUT
|
1350
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1351
|
+
.to be_equivalent_to xmlpp(output)
|
1259
1352
|
end
|
1260
1353
|
|
1261
1354
|
it "separates IEV citations by top-level clause" do
|
1262
1355
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
1263
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
1356
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
1357
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
1264
1358
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
1265
|
-
FileUtils.mv File.expand_path("~/.iev.pstore"),
|
1359
|
+
FileUtils.mv File.expand_path("~/.iev.pstore"),
|
1360
|
+
File.expand_path("~/.iev.pstore1"), force: true
|
1266
1361
|
FileUtils.rm_rf "relaton/cache"
|
1267
1362
|
FileUtils.rm_rf "test.iev.pstore"
|
1268
1363
|
# mock_iecbib_get_iec60050_102_01
|
1269
1364
|
# mock_iecbib_get_iec60050_103_01
|
1270
1365
|
# mock_iev
|
1271
1366
|
VCR.use_cassette "separates_iev_citations_by_top_level_clause" do
|
1272
|
-
|
1367
|
+
input = <<~INPUT
|
1273
1368
|
#{CACHED_ISOBIB_BLANK_HDR}
|
1274
1369
|
|
1275
1370
|
[bibliography]
|
@@ -1292,166 +1387,174 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1292
1387
|
[.source]
|
1293
1388
|
<<iev,clause="103-01-02">>
|
1294
1389
|
INPUT
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
1340
|
-
|
1341
|
-
|
1342
|
-
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1346
|
-
|
1347
|
-
|
1348
|
-
|
1349
|
-
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
1372
|
-
|
1373
|
-
|
1374
|
-
|
1375
|
-
|
1376
|
-
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
|
1394
|
-
|
1395
|
-
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1390
|
+
output = <<~OUTPUT
|
1391
|
+
#{BLANK_HDR}
|
1392
|
+
<sections>
|
1393
|
+
<terms id="_" obligation="normative"><title>Terms and definitions</title>
|
1394
|
+
<p id="_">For the purposes of this document, the following terms and definitions apply.</p>
|
1395
|
+
<term id="term-automation1">
|
1396
|
+
<preferred>Automation1</preferred>
|
1397
|
+
<termsource status="identical">
|
1398
|
+
<origin bibitemid="IEC60050-103" type="inline" citeas="IEC 60050-103:2009">
|
1399
|
+
<localityStack>
|
1400
|
+
<locality type="clause"><referenceFrom>103-01-02</referenceFrom></locality>
|
1401
|
+
</localityStack>
|
1402
|
+
</origin>
|
1403
|
+
</termsource>
|
1404
|
+
</term>
|
1405
|
+
<term id="term-automation2">
|
1406
|
+
<preferred>Automation2</preferred>
|
1407
|
+
<termsource status="identical">
|
1408
|
+
<origin bibitemid="IEC60050-102" type="inline" citeas="IEC 60050-102:2007">
|
1409
|
+
<localityStack>
|
1410
|
+
<locality type="clause"><referenceFrom>102-01-02</referenceFrom></locality>
|
1411
|
+
</localityStack>
|
1412
|
+
</origin>
|
1413
|
+
</termsource>
|
1414
|
+
</term>
|
1415
|
+
<term id="term-automation3">
|
1416
|
+
<preferred>Automation3</preferred>
|
1417
|
+
<termsource status="identical">
|
1418
|
+
<origin bibitemid="IEC60050-103" type="inline" citeas="IEC 60050-103:2009">
|
1419
|
+
<localityStack>
|
1420
|
+
<locality type="clause"><referenceFrom>103-01-02</referenceFrom></locality>
|
1421
|
+
</localityStack>
|
1422
|
+
</origin>
|
1423
|
+
</termsource>
|
1424
|
+
</term></terms></sections><bibliography><references id="_" obligation="informative" normative="true">
|
1425
|
+
<title>Normative references</title>
|
1426
|
+
#{NORM_REF_BOILERPLATE}
|
1427
|
+
<bibitem type="standard" id="IEC60050-102">
|
1428
|
+
<fetched>#{Date.today}</fetched>
|
1429
|
+
<title type="title-main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV)</title>
|
1430
|
+
<title type="title-part" format="text/plain" language="en" script="Latn">Part 102: Mathematics — General concepts and linear algebra</title>
|
1431
|
+
<title type='main' format='text/plain' language='en' script='Latn'>International Electrotechnical Vocabulary (IEV) — Part 102: Mathematics — General concepts and linear algebra</title>
|
1432
|
+
<uri type="src">https://webstore.iec.ch/publication/160</uri>
|
1433
|
+
<uri type="obp">/preview/info_iec60050-102%7Bed1.0%7Db.pdf</uri>
|
1434
|
+
<docidentifier type="IEC">IEC 60050-102:2007</docidentifier>
|
1435
|
+
<docidentifier type='URN'>urn:iec:std:iec:60050-102:2007:::en</docidentifier>
|
1436
|
+
<date type="published">
|
1437
|
+
<on>2007-08-27</on>
|
1438
|
+
</date>
|
1439
|
+
<contributor>
|
1440
|
+
<role type="publisher"/>
|
1441
|
+
<organization>
|
1442
|
+
<name>International Electrotechnical Commission</name>
|
1443
|
+
<abbreviation>IEC</abbreviation>
|
1444
|
+
<uri>www.iec.ch</uri>
|
1445
|
+
</organization>
|
1446
|
+
</contributor>
|
1447
|
+
<edition>1.0</edition>
|
1448
|
+
<language>en</language>
|
1449
|
+
<script>Latn</script>
|
1450
|
+
<abstract format="text/plain" language="en" script="Latn">This part of IEC 60050 gives the general mathematical terminology used in the fields of electricity, electronics and telecommunications, together with basic concepts in linear algebra. It maintains a clear distinction between mathematical concepts and physical concepts, even if some terms are used in both cases. Another part will deal with functions. It has the status of a horizontal standard in accordance with IEC Guide 108.</abstract>
|
1451
|
+
<status>
|
1452
|
+
<stage>60</stage>
|
1453
|
+
<substage>60</substage>
|
1454
|
+
</status>
|
1455
|
+
<copyright>
|
1456
|
+
<from>2007</from>
|
1457
|
+
<owner>
|
1458
|
+
<organization>
|
1459
|
+
<name>International Electrotechnical Commission</name>
|
1460
|
+
<abbreviation>IEC</abbreviation>
|
1461
|
+
<uri>www.iec.ch</uri>
|
1462
|
+
</organization>
|
1463
|
+
</owner>
|
1464
|
+
</copyright>
|
1465
|
+
<place>Geneva</place>
|
1466
|
+
</bibitem><bibitem type="standard" id="IEC60050-103">
|
1467
|
+
<fetched>#{Date.today}</fetched>
|
1468
|
+
<title type="title-main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV)</title>
|
1469
|
+
<title type="title-part" format="text/plain" language="en" script="Latn">Part 103: Mathematics — Functions</title>
|
1470
|
+
<title type="main" format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary (IEV) — Part 103: Mathematics — Functions</title>
|
1471
|
+
<uri type="src">https://webstore.iec.ch/publication/161</uri>
|
1472
|
+
<uri type="obp">/preview/info_iec60050-103%7Bed1.0%7Db.pdf</uri>
|
1473
|
+
<docidentifier type="IEC">IEC 60050-103:2009</docidentifier>
|
1474
|
+
<docidentifier type='URN'>urn:iec:std:iec:60050-103:2009:::en</docidentifier>
|
1475
|
+
<date type="published">
|
1476
|
+
<on>2009-12-14</on>
|
1477
|
+
</date>
|
1478
|
+
<contributor>
|
1479
|
+
<role type="publisher"/>
|
1480
|
+
<organization>
|
1481
|
+
<name>International Electrotechnical Commission</name>
|
1482
|
+
<abbreviation>IEC</abbreviation>
|
1483
|
+
<uri>www.iec.ch</uri>
|
1484
|
+
</organization>
|
1485
|
+
</contributor>
|
1486
|
+
<edition>1.0</edition>
|
1487
|
+
<language>en</language>
|
1488
|
+
<script>Latn</script>
|
1489
|
+
<abstract format="text/plain" language="en" script="Latn">IEC 60050-103:2009 gives the terminology relative to functions of one or more variables. Together with IEC 60050-102, it covers the mathematical terminology used in the fields of electricity, electronics and telecommunications. It maintains a clear distinction between mathematical concepts and physical concepts, even if some terms are used in both cases. Mathematical symbols are generally in accordance with IEC 60027-1 and ISO 80000-2. This standard cancels and replaces Sections 101-13, 101-14 and 101-15 of International Standard IEC 60050-101:1998. It has the status of a horizontal standard in accordance with IEC Guide 108.</abstract>
|
1490
|
+
<status>
|
1491
|
+
<stage>60</stage>
|
1492
|
+
<substage>60</substage>
|
1493
|
+
</status>
|
1494
|
+
<copyright>
|
1495
|
+
<from>2009</from>
|
1496
|
+
<owner>
|
1497
|
+
<organization>
|
1498
|
+
<name>International Electrotechnical Commission</name>
|
1499
|
+
<abbreviation>IEC</abbreviation>
|
1500
|
+
<uri>www.iec.ch</uri>
|
1501
|
+
</organization>
|
1502
|
+
</owner>
|
1503
|
+
</copyright>
|
1504
|
+
<place>Geneva</place>
|
1505
|
+
</bibitem>
|
1506
|
+
</references></bibliography>
|
1507
|
+
</standard-document>
|
1412
1508
|
OUTPUT
|
1509
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1510
|
+
.to be_equivalent_to xmlpp(output)
|
1413
1511
|
end
|
1414
1512
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
1415
|
-
FileUtils.mv File.expand_path("~/.iev.pstore1"),
|
1513
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"),
|
1514
|
+
File.expand_path("~/.iev.pstore"), force: true
|
1416
1515
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
1417
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
1516
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"),
|
1517
|
+
File.expand_path("~/.relaton/cache"), force: true
|
1418
1518
|
end
|
1419
1519
|
|
1420
1520
|
it "counts footnotes with link-only content as separate footnotes" do
|
1421
|
-
|
1422
|
-
|
1521
|
+
input = <<~INPUT
|
1522
|
+
#{ASCIIDOC_BLANK_HDR}
|
1423
1523
|
|
1424
|
-
|
1524
|
+
footnote:[http://www.example.com]
|
1425
1525
|
|
1426
|
-
|
1526
|
+
footnote:[http://www.example.com]
|
1427
1527
|
|
1428
|
-
|
1528
|
+
footnote:[http://www.example1.com]
|
1429
1529
|
INPUT
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
1449
|
-
|
1530
|
+
output = <<~OUTPUT
|
1531
|
+
#{BLANK_HDR}
|
1532
|
+
<sections><p id="_"><fn reference="1">
|
1533
|
+
<p id="_">
|
1534
|
+
<link target="http://www.example.com"/>
|
1535
|
+
</p>
|
1536
|
+
</fn>
|
1537
|
+
</p>
|
1538
|
+
<p id="_"><fn reference="1">
|
1539
|
+
<p id="_">
|
1540
|
+
<link target="http://www.example.com"/>
|
1541
|
+
</p>
|
1542
|
+
</fn>
|
1543
|
+
</p>
|
1544
|
+
<p id="_"><fn reference="2">
|
1545
|
+
<p id="_">
|
1546
|
+
<link target="http://www.example1.com"/>
|
1547
|
+
</p>
|
1548
|
+
</fn>
|
1549
|
+
</p></sections>
|
1550
|
+
</standard-document>
|
1450
1551
|
OUTPUT
|
1552
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1553
|
+
.to be_equivalent_to xmlpp(output)
|
1451
1554
|
end
|
1452
1555
|
|
1453
1556
|
it "retains AsciiMath on request" do
|
1454
|
-
|
1557
|
+
input = <<~INPUT
|
1455
1558
|
= Document title
|
1456
1559
|
Author
|
1457
1560
|
:docfile: test.adoc
|
@@ -1462,18 +1565,21 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1462
1565
|
|
1463
1566
|
stem:[1/r]
|
1464
1567
|
INPUT
|
1465
|
-
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1568
|
+
output = <<~OUTPUT
|
1569
|
+
#{BLANK_HDR}
|
1570
|
+
<sections>
|
1571
|
+
<p id="_">
|
1572
|
+
<stem type="AsciiMath">1/r</stem>
|
1573
|
+
</p>
|
1574
|
+
</sections>
|
1575
|
+
</standard-document>
|
1472
1576
|
OUTPUT
|
1577
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1578
|
+
.to be_equivalent_to xmlpp(output)
|
1473
1579
|
end
|
1474
1580
|
|
1475
1581
|
it "converts AsciiMath to MathML by default" do
|
1476
|
-
|
1582
|
+
input = <<~INPUT
|
1477
1583
|
= Document title
|
1478
1584
|
Author
|
1479
1585
|
:docfile: test.adoc
|
@@ -1483,6 +1589,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1483
1589
|
|
1484
1590
|
stem:[1/r]
|
1485
1591
|
INPUT
|
1592
|
+
output = <<~OUTPUT
|
1486
1593
|
#{BLANK_HDR}
|
1487
1594
|
<sections>
|
1488
1595
|
<p id="_">
|
@@ -1498,26 +1605,63 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1498
1605
|
</sections>
|
1499
1606
|
</standard-document>
|
1500
1607
|
OUTPUT
|
1608
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1609
|
+
.to be_equivalent_to xmlpp(output)
|
1501
1610
|
end
|
1502
1611
|
|
1503
1612
|
it "cleans up text MathML" do
|
1504
|
-
|
1613
|
+
input = <<~INPUT
|
1505
1614
|
#{BLANK_HDR}
|
1506
1615
|
<sections>
|
1507
1616
|
<stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac><mn>1</mn><mi>r</mi></mfrac></math></stem>
|
1508
1617
|
</sections>
|
1509
1618
|
</standard-document>
|
1510
1619
|
INPUT
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
1514
|
-
|
1515
|
-
|
1620
|
+
output = <<~OUTPUT
|
1621
|
+
#{BLANK_HDR}
|
1622
|
+
<sections>
|
1623
|
+
<stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac><mn>1</mn><mi>r</mi></mfrac></math></stem>
|
1624
|
+
</sections>
|
1625
|
+
</standard-document>
|
1626
|
+
OUTPUT
|
1627
|
+
expect(Asciidoctor::Standoc::Converter.new(nil, *OPTIONS)
|
1628
|
+
.cleanup(Nokogiri::XML(input)).to_xml)
|
1629
|
+
.to be_equivalent_to xmlpp(output)
|
1630
|
+
end
|
1631
|
+
|
1632
|
+
it "removes nested bibitem IDs" do
|
1633
|
+
input = <<~INPUT
|
1634
|
+
#{BLANK_HDR}
|
1635
|
+
<bibliography>
|
1636
|
+
<references normative="true"><title>Normative</title>
|
1637
|
+
<bibitem id="A">
|
1638
|
+
<relation type="includes">
|
1639
|
+
<bibitem id="B"/>
|
1640
|
+
</relation>
|
1641
|
+
</bibitem>
|
1642
|
+
</bibliography>
|
1643
|
+
</standard-document>
|
1644
|
+
INPUT
|
1645
|
+
output = <<~OUTPUT
|
1646
|
+
#{BLANK_HDR}
|
1647
|
+
<bibliography>
|
1648
|
+
<references normative="true"><title>Normative</title>
|
1649
|
+
<bibitem id="A">
|
1650
|
+
<relation type="includes">
|
1651
|
+
<bibitem id="B"/>
|
1652
|
+
</relation>
|
1653
|
+
</bibitem>
|
1654
|
+
</references>
|
1655
|
+
</bibliography>
|
1656
|
+
</standard-document>
|
1516
1657
|
OUTPUT
|
1658
|
+
expect(Asciidoctor::Standoc::Converter.new(nil, *OPTIONS)
|
1659
|
+
.cleanup(Nokogiri::XML(input)).to_xml)
|
1660
|
+
.to be_equivalent_to xmlpp(output)
|
1517
1661
|
end
|
1518
1662
|
|
1519
1663
|
it "renumbers numeric references in Bibliography sequentially" do
|
1520
|
-
|
1664
|
+
input = <<~INPUT
|
1521
1665
|
#{ASCIIDOC_BLANK_HDR}
|
1522
1666
|
|
1523
1667
|
== Clause
|
@@ -1530,6 +1674,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1530
1674
|
* [[[iso124,ISO 124]]] _Standard 124_
|
1531
1675
|
* [[[iso123,1]]] _Standard 123_
|
1532
1676
|
INPUT
|
1677
|
+
output = <<~OUTPUT
|
1533
1678
|
#{BLANK_HDR}
|
1534
1679
|
<sections><clause id="_" inline-header="false" obligation="normative">
|
1535
1680
|
<title>Clause</title>
|
@@ -1558,10 +1703,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1558
1703
|
</references></bibliography>
|
1559
1704
|
</standard-document>
|
1560
1705
|
OUTPUT
|
1706
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1707
|
+
.to be_equivalent_to xmlpp(output)
|
1561
1708
|
end
|
1562
1709
|
|
1563
1710
|
it "renumbers numeric references in Bibliography subclauses sequentially" do
|
1564
|
-
|
1711
|
+
input = <<~INPUT
|
1565
1712
|
#{ASCIIDOC_BLANK_HDR}
|
1566
1713
|
|
1567
1714
|
== Clause
|
@@ -1592,6 +1739,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1592
1739
|
* [[[iso128,1]]] _Standard 123_
|
1593
1740
|
|
1594
1741
|
INPUT
|
1742
|
+
output = <<~OUTPUT
|
1595
1743
|
#{BLANK_HDR}
|
1596
1744
|
<sections><clause id="_" inline-header="false" obligation="normative">
|
1597
1745
|
<title>Clause</title>
|
@@ -1664,10 +1812,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1664
1812
|
</references></clause></bibliography>
|
1665
1813
|
</standard-document>
|
1666
1814
|
OUTPUT
|
1815
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1816
|
+
.to be_equivalent_to xmlpp(output)
|
1667
1817
|
end
|
1668
1818
|
|
1669
1819
|
it "removes bibdata bibitem IDs" do
|
1670
|
-
|
1820
|
+
input = <<~INPUT
|
1671
1821
|
= Document title
|
1672
1822
|
Author
|
1673
1823
|
:docfile: test.adoc
|
@@ -1680,6 +1830,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1680
1830
|
== Normative References
|
1681
1831
|
|
1682
1832
|
INPUT
|
1833
|
+
output = <<~OUTPUT
|
1683
1834
|
<?xml version='1.0' encoding='UTF-8'?>
|
1684
1835
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
1685
1836
|
<bibdata type='standard'>
|
@@ -1711,10 +1862,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1711
1862
|
</bibliography>
|
1712
1863
|
</standard-document>
|
1713
1864
|
OUTPUT
|
1865
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1866
|
+
.to be_equivalent_to xmlpp(output)
|
1714
1867
|
end
|
1715
1868
|
|
1716
1869
|
it "imports boilerplate file" do
|
1717
|
-
|
1870
|
+
input = <<~INPUT
|
1718
1871
|
= Document title
|
1719
1872
|
Author
|
1720
1873
|
:docfile: test.adoc
|
@@ -1727,6 +1880,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1727
1880
|
== Clause 1
|
1728
1881
|
|
1729
1882
|
INPUT
|
1883
|
+
output = <<~OUTPUT
|
1730
1884
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
1731
1885
|
<bibdata type='standard'>
|
1732
1886
|
<title language='en' format='text/plain'>Document title</title>
|
@@ -1752,23 +1906,26 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1752
1906
|
</sections>
|
1753
1907
|
</standard-document>
|
1754
1908
|
OUTPUT
|
1909
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1910
|
+
.to be_equivalent_to xmlpp(output)
|
1755
1911
|
end
|
1756
1912
|
|
1757
|
-
it "sorts symbols lists" do
|
1758
|
-
|
1759
|
-
|
1913
|
+
it "sorts symbols lists #1" do
|
1914
|
+
input = <<~INPUT
|
1915
|
+
#{ASCIIDOC_BLANK_HDR}
|
1760
1916
|
|
1761
|
-
|
1762
|
-
|
1917
|
+
[[L]]
|
1918
|
+
== Symbols and abbreviated terms
|
1763
1919
|
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1770
|
-
|
1920
|
+
α:: Definition 1
|
1921
|
+
Xa:: Definition 2
|
1922
|
+
x_1_:: Definition 3
|
1923
|
+
x_m_:: Definition 4
|
1924
|
+
x:: Definition 5
|
1925
|
+
stem:[n]:: Definition 6
|
1926
|
+
m:: Definition 7
|
1771
1927
|
INPUT
|
1928
|
+
output = <<~OUTPUT
|
1772
1929
|
#{BLANK_HDR}
|
1773
1930
|
<sections>
|
1774
1931
|
<definitions id='L' obligation="normative">
|
@@ -1813,21 +1970,24 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1813
1970
|
</sections>
|
1814
1971
|
</standard-document>
|
1815
1972
|
OUTPUT
|
1973
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1974
|
+
.to be_equivalent_to xmlpp(output)
|
1816
1975
|
end
|
1817
1976
|
|
1818
|
-
it "sorts symbols lists" do
|
1819
|
-
|
1820
|
-
|
1977
|
+
it "sorts symbols lists #2" do
|
1978
|
+
input = <<~INPUT
|
1979
|
+
#{ASCIIDOC_BLANK_HDR}
|
1821
1980
|
|
1822
|
-
|
1823
|
-
|
1981
|
+
[[L]]
|
1982
|
+
== Symbols and abbreviated terms
|
1824
1983
|
|
1825
|
-
|
1826
|
-
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1984
|
+
stem:[alpha]:: Definition 1
|
1985
|
+
xa:: Definition 2
|
1986
|
+
stem:[x_1]:: Definition 3
|
1987
|
+
stem:[x_m]:: Definition 4
|
1988
|
+
x:: Definition 5
|
1830
1989
|
INPUT
|
1990
|
+
output = <<~OUTPUT
|
1831
1991
|
#{BLANK_HDR}
|
1832
1992
|
<sections>
|
1833
1993
|
<definitions id='L' obligation="normative">
|
@@ -1886,10 +2046,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1886
2046
|
</sections>
|
1887
2047
|
</standard-document>
|
1888
2048
|
OUTPUT
|
2049
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2050
|
+
.to be_equivalent_to xmlpp(output)
|
1889
2051
|
end
|
1890
2052
|
|
1891
2053
|
it "moves inherit macros to correct location" do
|
1892
|
-
|
2054
|
+
input = <<~INPUT
|
1893
2055
|
#{ASCIIDOC_BLANK_HDR}
|
1894
2056
|
|
1895
2057
|
== Clause
|
@@ -1924,6 +2086,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1924
2086
|
|
1925
2087
|
|
1926
2088
|
INPUT
|
2089
|
+
output = <<~OUTPUT
|
1927
2090
|
#{BLANK_HDR}
|
1928
2091
|
<sections>
|
1929
2092
|
<clause id='_' inline-header='false' obligation='normative'>
|
@@ -1966,74 +2129,79 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1966
2129
|
</sections>
|
1967
2130
|
</standard-document>
|
1968
2131
|
OUTPUT
|
2132
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2133
|
+
.to be_equivalent_to xmlpp(output)
|
1969
2134
|
end
|
1970
2135
|
|
1971
2136
|
it "moves %beforeclause admonitions to right position" do
|
1972
|
-
|
1973
|
-
|
2137
|
+
input = <<~INPUT
|
2138
|
+
#{ASCIIDOC_BLANK_HDR}
|
1974
2139
|
|
1975
|
-
|
1976
|
-
|
2140
|
+
.Foreword
|
2141
|
+
Foreword
|
1977
2142
|
|
1978
|
-
|
1979
|
-
|
1980
|
-
|
1981
|
-
|
2143
|
+
[NOTE,beforeclauses=true]
|
2144
|
+
====
|
2145
|
+
Note which is very important
|
2146
|
+
====
|
1982
2147
|
|
1983
|
-
|
1984
|
-
|
2148
|
+
== Introduction
|
2149
|
+
Introduction
|
1985
2150
|
|
1986
|
-
|
1987
|
-
|
2151
|
+
== Scope
|
2152
|
+
Scope statement
|
1988
2153
|
|
1989
|
-
|
1990
|
-
|
1991
|
-
|
1992
|
-
|
2154
|
+
[IMPORTANT,beforeclauses=true]
|
2155
|
+
====
|
2156
|
+
Notice which is very important
|
2157
|
+
====
|
1993
2158
|
INPUT
|
1994
|
-
|
1995
|
-
|
1996
|
-
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2003
|
-
|
2004
|
-
|
2005
|
-
|
2006
|
-
|
2007
|
-
|
2008
|
-
|
2009
|
-
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2013
|
-
|
2014
|
-
|
2015
|
-
|
2016
|
-
|
2017
|
-
|
2159
|
+
output = <<~OUTPUT
|
2160
|
+
#{BLANK_HDR}
|
2161
|
+
<preface>
|
2162
|
+
<note id='_'>
|
2163
|
+
<p id='_'>Note which is very important</p>
|
2164
|
+
</note>
|
2165
|
+
<foreword id='_' obligation='informative'>
|
2166
|
+
<title>Foreword</title>
|
2167
|
+
<p id='_'>Foreword</p>
|
2168
|
+
</foreword>
|
2169
|
+
<introduction id='_' obligation='informative'>
|
2170
|
+
<title>Introduction</title>
|
2171
|
+
<p id='_'>Introduction</p>
|
2172
|
+
</introduction>
|
2173
|
+
</preface>
|
2174
|
+
<sections>
|
2175
|
+
<admonition id='_' type='important'>
|
2176
|
+
<p id='_'>Notice which is very important</p>
|
2177
|
+
</admonition>
|
2178
|
+
<clause id='_' inline-header='false' obligation='normative' type="scope">
|
2179
|
+
<title>Scope</title>
|
2180
|
+
<p id='_'>Scope statement</p>
|
2181
|
+
</clause>
|
2182
|
+
</sections>
|
2183
|
+
</standard-document>
|
2018
2184
|
OUTPUT
|
2185
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2186
|
+
.to be_equivalent_to xmlpp(output)
|
2019
2187
|
end
|
2020
2188
|
|
2021
2189
|
it "fixes illegal anchors" do
|
2022
2190
|
input = <<~INPUT
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
2026
|
-
|
2027
|
-
|
2028
|
-
|
2029
|
-
|
2030
|
-
|
2031
|
-
|
2032
|
-
|
2033
|
-
|
2034
|
-
|
2191
|
+
#{ASCIIDOC_BLANK_HDR}
|
2192
|
+
|
2193
|
+
[[a:b]]
|
2194
|
+
== A
|
2195
|
+
<</:ab>>
|
2196
|
+
<<:>>
|
2197
|
+
<<1>>
|
2198
|
+
<<1:>>
|
2199
|
+
<<1#b>>
|
2200
|
+
<<:a#b:>>
|
2201
|
+
<</%ab>>
|
2202
|
+
<<1!>>
|
2035
2203
|
INPUT
|
2036
|
-
|
2204
|
+
output = <<~OUTPUT
|
2037
2205
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
2038
2206
|
<bibdata type='standard'>
|
2039
2207
|
<title language='en' format='text/plain'>Document title</title>
|
@@ -2071,25 +2239,40 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2071
2239
|
</bibliography>
|
2072
2240
|
</standard-document>
|
2073
2241
|
OUTPUT
|
2074
|
-
expect
|
2075
|
-
|
2076
|
-
|
2077
|
-
expect { Asciidoctor.convert(input,
|
2078
|
-
|
2079
|
-
|
2242
|
+
expect(xmlpp(Asciidoctor.convert(input, *OPTIONS)
|
2243
|
+
.gsub(/<p id="_[^"]+">/, "").gsub("</p>", "")))
|
2244
|
+
.to be_equivalent_to(output)
|
2245
|
+
expect { Asciidoctor.convert(input, *OPTIONS) }
|
2246
|
+
.to output(%r{normalised identifier in <clause id="a_b" inline-header="false" obligation="normative"/> from a:b})
|
2247
|
+
.to_stderr
|
2248
|
+
expect { Asciidoctor.convert(input, *OPTIONS) }
|
2249
|
+
.to output(%r{normalised identifier in <eref bibitemid="__ab" citeas=""/> from /_ab})
|
2250
|
+
.to_stderr
|
2251
|
+
expect { Asciidoctor.convert(input, *OPTIONS) }
|
2252
|
+
.to output(%r{normalised identifier in <xref target="_"/> from :})
|
2253
|
+
.to_stderr
|
2254
|
+
expect { Asciidoctor.convert(input, *OPTIONS) }
|
2255
|
+
.to output(%r{normalised identifier in <xref target="_1"/> from 1})
|
2256
|
+
.to_stderr
|
2257
|
+
expect { Asciidoctor.convert(input, *OPTIONS) }
|
2258
|
+
.to output(%r{normalised identifier in <xref target="_1_"/> from 1:})
|
2259
|
+
.to_stderr
|
2260
|
+
expect { Asciidoctor.convert(input, *OPTIONS) }
|
2261
|
+
.to output(%r{normalised identifier in <xref target="_a#b_"/> from :a#b:})
|
2262
|
+
.to_stderr
|
2080
2263
|
end
|
2081
2264
|
|
2082
2265
|
it "moves title footnotes to bibdata" do
|
2083
2266
|
input = <<~INPUT
|
2084
|
-
|
2085
|
-
|
2086
|
-
|
2087
|
-
|
2088
|
-
|
2089
|
-
|
2267
|
+
= Document title footnote:[ABC] footnote:[DEF]
|
2268
|
+
Author
|
2269
|
+
:docfile: test.adoc
|
2270
|
+
:nodoc:
|
2271
|
+
:novalid:
|
2272
|
+
:no-isobib:
|
2090
2273
|
|
2091
2274
|
INPUT
|
2092
|
-
|
2275
|
+
output = <<~OUTPUT
|
2093
2276
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
2094
2277
|
<bibdata type='standard'>
|
2095
2278
|
<title language='en' format='text/plain'>Document title</title>
|
@@ -2114,289 +2297,304 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2114
2297
|
<sections> </sections>
|
2115
2298
|
</standard-document>
|
2116
2299
|
OUTPUT
|
2300
|
+
expect(xmlpp(Asciidoctor.convert(input, *OPTIONS)))
|
2301
|
+
.to be_equivalent_to xmlpp(output)
|
2117
2302
|
end
|
2118
2303
|
|
2119
2304
|
it "converts UnitsML to MathML" do
|
2120
|
-
|
2121
|
-
|
2122
|
-
|
2123
|
-
|
2124
|
-
|
2125
|
-
|
2126
|
-
|
2127
|
-
|
2128
|
-
|
2129
|
-
|
2130
|
-
|
2131
|
-
|
2132
|
-
|
2133
|
-
|
2134
|
-
|
2135
|
-
|
2136
|
-
|
2305
|
+
input = <<~INPUT
|
2306
|
+
= Document title
|
2307
|
+
Author
|
2308
|
+
:stem:
|
2309
|
+
|
2310
|
+
[stem]
|
2311
|
+
++++
|
2312
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2313
|
+
<mrow>
|
2314
|
+
<mn>7</mn>
|
2315
|
+
<mtext>unitsml(m*kg^-2)</mtext>
|
2316
|
+
<mo>+</mo>
|
2317
|
+
<mn>8</mn>
|
2318
|
+
<mtext>unitsml(m*kg^-2)</mtext>
|
2319
|
+
</mrow>
|
2320
|
+
</math>
|
2321
|
+
++++
|
2137
2322
|
INPUT
|
2323
|
+
output = <<~OUTPUT
|
2138
2324
|
#{BLANK_HDR}
|
2139
2325
|
<misc-container>
|
2140
|
-
|
2141
|
-
|
2142
|
-
|
2143
|
-
|
2144
|
-
|
2145
|
-
|
2146
|
-
|
2147
|
-
|
2148
|
-
|
2149
|
-
|
2150
|
-
|
2151
|
-
|
2152
|
-
|
2153
|
-
|
2154
|
-
|
2155
|
-
|
2156
|
-
|
2157
|
-
</mrow>
|
2158
|
-
<mrow>
|
2159
|
-
<mo>−</mo>
|
2160
|
-
<mn>2</mn>
|
2161
|
-
</mrow>
|
2162
|
-
</msup>
|
2163
|
-
</mrow>
|
2164
|
-
</math>
|
2165
|
-
</UnitSymbol>
|
2166
|
-
<RootUnits>
|
2167
|
-
<EnumeratedRootUnit unit='meter'/>
|
2168
|
-
<EnumeratedRootUnit unit='gram' prefix='k' powerNumerator='-2'/>
|
2169
|
-
</RootUnits>
|
2170
|
-
</Unit>
|
2171
|
-
</UnitSet>
|
2172
|
-
<DimensionSet>
|
2173
|
-
<Dimension xml:id='D_LM-2'>
|
2174
|
-
<Length symbol='L' powerNumerator='1'/>
|
2175
|
-
<Mass symbol='M' powerNumerator='-2'/>
|
2176
|
-
</Dimension>
|
2177
|
-
</DimensionSet>
|
2178
|
-
<PrefixSet>
|
2179
|
-
<Prefix prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
2180
|
-
<PrefixName xml:lang='en'>kilo</PrefixName>
|
2181
|
-
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
2182
|
-
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
2183
|
-
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
2184
|
-
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
2185
|
-
</Prefix>
|
2186
|
-
</PrefixSet>
|
2187
|
-
</UnitsML>
|
2188
|
-
</misc-container>
|
2189
|
-
<sections>
|
2190
|
-
<formula id='_'>
|
2191
|
-
<stem type='MathML'>
|
2192
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2193
|
-
<mrow>
|
2194
|
-
<mn>7</mn>
|
2195
|
-
<mo rspace='thickmathspace'>⁢</mo>
|
2196
|
-
<mrow xref='U_m.kg-2'>
|
2197
|
-
<mi mathvariant='normal'>m</mi>
|
2198
|
-
<mo rspace='thickmathspace'>⁢</mo>
|
2199
|
-
<msup>
|
2200
|
-
<mrow>
|
2201
|
-
<mi mathvariant='normal'>kg</mi>
|
2202
|
-
</mrow>
|
2203
|
-
<mrow>
|
2204
|
-
<mo>−</mo>
|
2205
|
-
<mn>2</mn>
|
2206
|
-
</mrow>
|
2207
|
-
</msup>
|
2326
|
+
<UnitsML xmlns='https://schema.unitsml.org/unitsml/1.0'>
|
2327
|
+
<UnitSet>
|
2328
|
+
<Unit xml:id='U_m.kg-2' dimensionURL='#D_LM-2'>
|
2329
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
2330
|
+
<UnitName xml:lang='en'>m*kg^-2</UnitName>
|
2331
|
+
<UnitSymbol type='HTML'>
|
2332
|
+
m kg
|
2333
|
+
<sup>−2</sup>
|
2334
|
+
</UnitSymbol>
|
2335
|
+
<UnitSymbol type='MathML'>
|
2336
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2337
|
+
<mrow>
|
2338
|
+
<mi mathvariant='normal'>m</mi>
|
2339
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
2340
|
+
<msup>
|
2341
|
+
<mrow>
|
2342
|
+
<mi mathvariant='normal'>kg</mi>
|
2208
2343
|
</mrow>
|
2209
|
-
<
|
2210
|
-
|
2211
|
-
|
2212
|
-
<mrow xref='U_m.kg-2'>
|
2213
|
-
<mi mathvariant='normal'>m</mi>
|
2214
|
-
<mo rspace='thickmathspace'>⁢</mo>
|
2215
|
-
<msup>
|
2216
|
-
<mrow>
|
2217
|
-
<mi mathvariant='normal'>kg</mi>
|
2218
|
-
</mrow>
|
2219
|
-
<mrow>
|
2220
|
-
<mo>−</mo>
|
2221
|
-
<mn>2</mn>
|
2222
|
-
</mrow>
|
2223
|
-
</msup>
|
2344
|
+
<mrow>
|
2345
|
+
<mo>−</mo>
|
2346
|
+
<mn>2</mn>
|
2224
2347
|
</mrow>
|
2348
|
+
</msup>
|
2349
|
+
</mrow>
|
2350
|
+
</math>
|
2351
|
+
</UnitSymbol>
|
2352
|
+
<RootUnits>
|
2353
|
+
<EnumeratedRootUnit unit='meter'/>
|
2354
|
+
<EnumeratedRootUnit unit='gram' prefix='k' powerNumerator='-2'/>
|
2355
|
+
</RootUnits>
|
2356
|
+
</Unit>
|
2357
|
+
</UnitSet>
|
2358
|
+
<DimensionSet>
|
2359
|
+
<Dimension xml:id='D_LM-2'>
|
2360
|
+
<Length symbol='L' powerNumerator='1'/>
|
2361
|
+
<Mass symbol='M' powerNumerator='-2'/>
|
2362
|
+
</Dimension>
|
2363
|
+
</DimensionSet>
|
2364
|
+
<PrefixSet>
|
2365
|
+
<Prefix prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
2366
|
+
<PrefixName xml:lang='en'>kilo</PrefixName>
|
2367
|
+
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
2368
|
+
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
2369
|
+
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
2370
|
+
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
2371
|
+
</Prefix>
|
2372
|
+
</PrefixSet>
|
2373
|
+
</UnitsML>
|
2374
|
+
</misc-container>
|
2375
|
+
<sections>
|
2376
|
+
<formula id='_'>
|
2377
|
+
<stem type='MathML'>
|
2378
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2379
|
+
<mrow>
|
2380
|
+
<mn>7</mn>
|
2381
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
2382
|
+
<mrow xref='U_m.kg-2'>
|
2383
|
+
<mi mathvariant='normal'>m</mi>
|
2384
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
2385
|
+
<msup>
|
2386
|
+
<mrow>
|
2387
|
+
<mi mathvariant='normal'>kg</mi>
|
2225
2388
|
</mrow>
|
2226
|
-
|
2227
|
-
|
2228
|
-
|
2229
|
-
|
2230
|
-
|
2389
|
+
<mrow>
|
2390
|
+
<mo>−</mo>
|
2391
|
+
<mn>2</mn>
|
2392
|
+
</mrow>
|
2393
|
+
</msup>
|
2394
|
+
</mrow>
|
2395
|
+
<mo>+</mo>
|
2396
|
+
<mn>8</mn>
|
2397
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
2398
|
+
<mrow xref='U_m.kg-2'>
|
2399
|
+
<mi mathvariant='normal'>m</mi>
|
2400
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
2401
|
+
<msup>
|
2402
|
+
<mrow>
|
2403
|
+
<mi mathvariant='normal'>kg</mi>
|
2404
|
+
</mrow>
|
2405
|
+
<mrow>
|
2406
|
+
<mo>−</mo>
|
2407
|
+
<mn>2</mn>
|
2408
|
+
</mrow>
|
2409
|
+
</msup>
|
2410
|
+
</mrow>
|
2411
|
+
</mrow>
|
2412
|
+
</math>
|
2413
|
+
</stem>
|
2414
|
+
</formula>
|
2415
|
+
</sections>
|
2416
|
+
</standard-document>
|
2231
2417
|
OUTPUT
|
2418
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2419
|
+
.to be_equivalent_to xmlpp(output)
|
2232
2420
|
end
|
2233
2421
|
|
2234
2422
|
it "customises italicisation of MathML" do
|
2235
2423
|
input = <<~INPUT
|
2236
|
-
|
2237
|
-
|
2238
|
-
|
2239
|
-
|
2240
|
-
[stem]
|
2241
|
-
++++
|
2242
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2243
|
-
<mi>A</mi>
|
2244
|
-
<mo>+</mo>
|
2245
|
-
<mi>a</mi>
|
2246
|
-
<mo>+</mo>
|
2247
|
-
<mi>Α</mi>
|
2248
|
-
<mo>+</mo>
|
2249
|
-
<mi>α</mi>
|
2250
|
-
<mo>+</mo>
|
2251
|
-
<mi>AB</mi>
|
2252
|
-
<mstyle mathvariant="italic">
|
2253
|
-
<mrow>
|
2254
|
-
<mi>Α</mi>
|
2255
|
-
</mrow>
|
2256
|
-
</mstyle>
|
2257
|
-
</math>
|
2258
|
-
++++
|
2259
|
-
INPUT
|
2424
|
+
= Document title
|
2425
|
+
Author
|
2426
|
+
:stem:
|
2260
2427
|
|
2261
|
-
|
2262
|
-
|
2263
|
-
|
2264
|
-
|
2265
|
-
|
2266
|
-
|
2267
|
-
|
2268
|
-
|
2269
|
-
|
2270
|
-
|
2271
|
-
|
2272
|
-
|
2273
|
-
|
2274
|
-
<mo>+</mo>
|
2275
|
-
<mi>AB</mi>
|
2276
|
-
<mstyle mathvariant='italic'>
|
2277
|
-
<mrow>
|
2278
|
-
<mi>Α</mi>
|
2279
|
-
</mrow>
|
2280
|
-
</mstyle>
|
2281
|
-
</math>
|
2282
|
-
</stem>
|
2283
|
-
</formula>
|
2284
|
-
</sections>
|
2285
|
-
</standard-document>
|
2286
|
-
OUTPUT
|
2287
|
-
mock_mathml_italicise({ uppergreek: false, upperroman: true, lowergreek: true, lowerroman: true })
|
2288
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2289
|
-
#{BLANK_HDR}
|
2290
|
-
<sections>
|
2291
|
-
<formula id='_'>
|
2292
|
-
<stem type='MathML'>
|
2293
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2294
|
-
<mi>A</mi>
|
2295
|
-
<mo>+</mo>
|
2296
|
-
<mi>a</mi>
|
2297
|
-
<mo>+</mo>
|
2298
|
-
<mi mathvariant="normal">Α</mi>
|
2299
|
-
<mo>+</mo>
|
2300
|
-
<mi>α</mi>
|
2301
|
-
<mo>+</mo>
|
2302
|
-
<mi>AB</mi>
|
2303
|
-
<mstyle mathvariant='italic'>
|
2304
|
-
<mrow>
|
2305
|
-
<mi>Α</mi>
|
2306
|
-
</mrow>
|
2307
|
-
</mstyle>
|
2308
|
-
</math>
|
2309
|
-
</stem>
|
2310
|
-
</formula>
|
2311
|
-
</sections>
|
2312
|
-
</standard-document>
|
2313
|
-
OUTPUT
|
2314
|
-
mock_mathml_italicise({ uppergreek: true, upperroman: false, lowergreek: true, lowerroman: true })
|
2315
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2316
|
-
#{BLANK_HDR}
|
2317
|
-
<sections>
|
2318
|
-
<formula id='_'>
|
2319
|
-
<stem type='MathML'>
|
2320
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2321
|
-
<mi mathvariant="normal">A</mi>
|
2322
|
-
<mo>+</mo>
|
2323
|
-
<mi>a</mi>
|
2324
|
-
<mo>+</mo>
|
2325
|
-
<mi>Α</mi>
|
2326
|
-
<mo>+</mo>
|
2327
|
-
<mi>α</mi>
|
2328
|
-
<mo>+</mo>
|
2329
|
-
<mi>AB</mi>
|
2330
|
-
<mstyle mathvariant='italic'>
|
2331
|
-
<mrow>
|
2332
|
-
<mi>Α</mi>
|
2333
|
-
</mrow>
|
2334
|
-
</mstyle>
|
2335
|
-
</math>
|
2336
|
-
</stem>
|
2337
|
-
</formula>
|
2338
|
-
</sections>
|
2339
|
-
</standard-document>
|
2340
|
-
OUTPUT
|
2341
|
-
mock_mathml_italicise({ uppergreek: true, upperroman: true, lowergreek: false, lowerroman: true })
|
2342
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2343
|
-
#{BLANK_HDR}
|
2344
|
-
<sections>
|
2345
|
-
<formula id='_'>
|
2346
|
-
<stem type='MathML'>
|
2347
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2348
|
-
<mi>A</mi>
|
2349
|
-
<mo>+</mo>
|
2350
|
-
<mi>a</mi>
|
2351
|
-
<mo>+</mo>
|
2352
|
-
<mi>Α</mi>
|
2353
|
-
<mo>+</mo>
|
2354
|
-
<mi mathvariant="normal">α</mi>
|
2355
|
-
<mo>+</mo>
|
2356
|
-
<mi>AB</mi>
|
2357
|
-
<mstyle mathvariant='italic'>
|
2358
|
-
<mrow>
|
2359
|
-
<mi>Α</mi>
|
2360
|
-
</mrow>
|
2361
|
-
</mstyle>
|
2362
|
-
</math>
|
2363
|
-
</stem>
|
2364
|
-
</formula>
|
2365
|
-
</sections>
|
2366
|
-
</standard-document>
|
2367
|
-
OUTPUT
|
2368
|
-
mock_mathml_italicise({ uppergreek: true, upperroman: true, lowergreek: true, lowerroman: false })
|
2369
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2370
|
-
#{BLANK_HDR}
|
2371
|
-
<sections>
|
2372
|
-
<formula id='_'>
|
2373
|
-
<stem type='MathML'>
|
2374
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2375
|
-
<mi>A</mi>
|
2376
|
-
<mo>+</mo>
|
2377
|
-
<mi mathvariant="normal">a</mi>
|
2378
|
-
<mo>+</mo>
|
2379
|
-
<mi>Α</mi>
|
2380
|
-
<mo>+</mo>
|
2381
|
-
<mi>α</mi>
|
2382
|
-
<mo>+</mo>
|
2383
|
-
<mi>AB</mi>
|
2384
|
-
<mstyle mathvariant='italic'>
|
2428
|
+
[stem]
|
2429
|
+
++++
|
2430
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2431
|
+
<mi>A</mi>
|
2432
|
+
<mo>+</mo>
|
2433
|
+
<mi>a</mi>
|
2434
|
+
<mo>+</mo>
|
2435
|
+
<mi>Α</mi>
|
2436
|
+
<mo>+</mo>
|
2437
|
+
<mi>α</mi>
|
2438
|
+
<mo>+</mo>
|
2439
|
+
<mi>AB</mi>
|
2440
|
+
<mstyle mathvariant="italic">
|
2385
2441
|
<mrow>
|
2386
|
-
|
2442
|
+
<mi>Α</mi>
|
2387
2443
|
</mrow>
|
2388
|
-
|
2389
|
-
|
2390
|
-
|
2391
|
-
|
2392
|
-
|
2393
|
-
|
2394
|
-
|
2395
|
-
|
2444
|
+
</mstyle>
|
2445
|
+
</math>
|
2446
|
+
++++
|
2447
|
+
INPUT
|
2448
|
+
|
2449
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2450
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2451
|
+
#{BLANK_HDR}
|
2452
|
+
<sections>
|
2453
|
+
<formula id='_'>
|
2454
|
+
<stem type='MathML'>
|
2455
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2456
|
+
<mi>A</mi>
|
2457
|
+
<mo>+</mo>
|
2458
|
+
<mi>a</mi>
|
2459
|
+
<mo>+</mo>
|
2460
|
+
<mi>Α</mi>
|
2461
|
+
<mo>+</mo>
|
2462
|
+
<mi>α</mi>
|
2463
|
+
<mo>+</mo>
|
2464
|
+
<mi>AB</mi>
|
2465
|
+
<mstyle mathvariant='italic'>
|
2466
|
+
<mrow>
|
2467
|
+
<mi>Α</mi>
|
2468
|
+
</mrow>
|
2469
|
+
</mstyle>
|
2470
|
+
</math>
|
2471
|
+
</stem>
|
2472
|
+
</formula>
|
2473
|
+
</sections>
|
2474
|
+
</standard-document>
|
2475
|
+
OUTPUT
|
2476
|
+
mock_mathml_italicise({ uppergreek: false, upperroman: true,
|
2477
|
+
lowergreek: true, lowerroman: true })
|
2478
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2479
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2480
|
+
#{BLANK_HDR}
|
2481
|
+
<sections>
|
2482
|
+
<formula id='_'>
|
2483
|
+
<stem type='MathML'>
|
2484
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2485
|
+
<mi>A</mi>
|
2486
|
+
<mo>+</mo>
|
2487
|
+
<mi>a</mi>
|
2488
|
+
<mo>+</mo>
|
2489
|
+
<mi mathvariant="normal">Α</mi>
|
2490
|
+
<mo>+</mo>
|
2491
|
+
<mi>α</mi>
|
2492
|
+
<mo>+</mo>
|
2493
|
+
<mi>AB</mi>
|
2494
|
+
<mstyle mathvariant='italic'>
|
2495
|
+
<mrow>
|
2496
|
+
<mi>Α</mi>
|
2497
|
+
</mrow>
|
2498
|
+
</mstyle>
|
2499
|
+
</math>
|
2500
|
+
</stem>
|
2501
|
+
</formula>
|
2502
|
+
</sections>
|
2503
|
+
</standard-document>
|
2504
|
+
OUTPUT
|
2505
|
+
mock_mathml_italicise({ uppergreek: true, upperroman: false,
|
2506
|
+
lowergreek: true, lowerroman: true })
|
2507
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2508
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2509
|
+
#{BLANK_HDR}
|
2510
|
+
<sections>
|
2511
|
+
<formula id='_'>
|
2512
|
+
<stem type='MathML'>
|
2513
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2514
|
+
<mi mathvariant="normal">A</mi>
|
2515
|
+
<mo>+</mo>
|
2516
|
+
<mi>a</mi>
|
2517
|
+
<mo>+</mo>
|
2518
|
+
<mi>Α</mi>
|
2519
|
+
<mo>+</mo>
|
2520
|
+
<mi>α</mi>
|
2521
|
+
<mo>+</mo>
|
2522
|
+
<mi>AB</mi>
|
2523
|
+
<mstyle mathvariant='italic'>
|
2524
|
+
<mrow>
|
2525
|
+
<mi>Α</mi>
|
2526
|
+
</mrow>
|
2527
|
+
</mstyle>
|
2528
|
+
</math>
|
2529
|
+
</stem>
|
2530
|
+
</formula>
|
2531
|
+
</sections>
|
2532
|
+
</standard-document>
|
2533
|
+
OUTPUT
|
2534
|
+
mock_mathml_italicise({ uppergreek: true, upperroman: true,
|
2535
|
+
lowergreek: false, lowerroman: true })
|
2536
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2537
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2538
|
+
#{BLANK_HDR}
|
2539
|
+
<sections>
|
2540
|
+
<formula id='_'>
|
2541
|
+
<stem type='MathML'>
|
2542
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2543
|
+
<mi>A</mi>
|
2544
|
+
<mo>+</mo>
|
2545
|
+
<mi>a</mi>
|
2546
|
+
<mo>+</mo>
|
2547
|
+
<mi>Α</mi>
|
2548
|
+
<mo>+</mo>
|
2549
|
+
<mi mathvariant="normal">α</mi>
|
2550
|
+
<mo>+</mo>
|
2551
|
+
<mi>AB</mi>
|
2552
|
+
<mstyle mathvariant='italic'>
|
2553
|
+
<mrow>
|
2554
|
+
<mi>Α</mi>
|
2555
|
+
</mrow>
|
2556
|
+
</mstyle>
|
2557
|
+
</math>
|
2558
|
+
</stem>
|
2559
|
+
</formula>
|
2560
|
+
</sections>
|
2561
|
+
</standard-document>
|
2562
|
+
OUTPUT
|
2563
|
+
mock_mathml_italicise({ uppergreek: true, upperroman: true,
|
2564
|
+
lowergreek: true, lowerroman: false })
|
2565
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2566
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2567
|
+
#{BLANK_HDR}
|
2568
|
+
<sections>
|
2569
|
+
<formula id='_'>
|
2570
|
+
<stem type='MathML'>
|
2571
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2572
|
+
<mi>A</mi>
|
2573
|
+
<mo>+</mo>
|
2574
|
+
<mi mathvariant="normal">a</mi>
|
2575
|
+
<mo>+</mo>
|
2576
|
+
<mi>Α</mi>
|
2577
|
+
<mo>+</mo>
|
2578
|
+
<mi>α</mi>
|
2579
|
+
<mo>+</mo>
|
2580
|
+
<mi>AB</mi>
|
2581
|
+
<mstyle mathvariant='italic'>
|
2582
|
+
<mrow>
|
2583
|
+
<mi>Α</mi>
|
2584
|
+
</mrow>
|
2585
|
+
</mstyle>
|
2586
|
+
</math>
|
2587
|
+
</stem>
|
2588
|
+
</formula>
|
2589
|
+
</sections>
|
2590
|
+
</standard-document>
|
2591
|
+
OUTPUT
|
2592
|
+
mock_mathml_italicise({ uppergreek: true, upperroman: true,
|
2593
|
+
lowergreek: true, lowerroman: true })
|
2396
2594
|
end
|
2397
2595
|
|
2398
2596
|
it "process express_ref macro with existing bibliography" do
|
2399
|
-
|
2597
|
+
input = <<~INPUT
|
2400
2598
|
#{ASCIIDOC_BLANK_HDR}
|
2401
2599
|
== Clause
|
2402
2600
|
|
@@ -2416,49 +2614,52 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2416
2614
|
== Bibliography
|
2417
2615
|
* [[[D,E]]] F
|
2418
2616
|
INPUT
|
2419
|
-
|
2420
|
-
|
2421
|
-
|
2422
|
-
|
2423
|
-
|
2424
|
-
|
2425
|
-
|
2426
|
-
|
2427
|
-
|
2428
|
-
|
2429
|
-
|
2430
|
-
|
2431
|
-
|
2432
|
-
|
2433
|
-
|
2434
|
-
|
2435
|
-
|
2436
|
-
|
2437
|
-
|
2438
|
-
|
2439
|
-
|
2440
|
-
|
2441
|
-
|
2442
|
-
|
2443
|
-
|
2444
|
-
|
2445
|
-
|
2446
|
-
|
2447
|
-
|
2448
|
-
|
2449
|
-
|
2450
|
-
|
2451
|
-
|
2452
|
-
|
2453
|
-
|
2454
|
-
|
2455
|
-
|
2617
|
+
output = <<~OUTPUT
|
2618
|
+
#{BLANK_HDR}
|
2619
|
+
<sections>
|
2620
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
2621
|
+
<title>Clause</title>
|
2622
|
+
<p id='_'>
|
2623
|
+
<eref bibitemid='uml_A' citeas="">
|
2624
|
+
<localityStack>
|
2625
|
+
<locality type='anchor'><referenceFrom>A.B.C</referenceFrom></locality>
|
2626
|
+
</localityStack>
|
2627
|
+
C
|
2628
|
+
</eref>
|
2629
|
+
<eref bibitemid='uml_A' citeas=""/>
|
2630
|
+
<xref target='action.AA'>AA</xref>
|
2631
|
+
<xref target='action'>** Missing target action.AB</xref>
|
2632
|
+
</p>
|
2633
|
+
</clause>
|
2634
|
+
<clause id='action' type='express-schema' inline-header='false' obligation='normative'>
|
2635
|
+
<title>Action</title>
|
2636
|
+
<clause id='action.AA' inline-header='false' obligation='normative'>
|
2637
|
+
<title>AA</title>
|
2638
|
+
</clause>
|
2639
|
+
</clause>
|
2640
|
+
</sections>
|
2641
|
+
<bibliography>
|
2642
|
+
<references id='_' normative='false' obligation='informative'>
|
2643
|
+
<title>Bibliography</title>
|
2644
|
+
<bibitem id='D'>
|
2645
|
+
<formattedref format='application/x-isodoc+xml'>F</formattedref>
|
2646
|
+
<docidentifier>E</docidentifier>
|
2647
|
+
</bibitem>
|
2648
|
+
</references>
|
2649
|
+
<references hidden='true' normative='false'>
|
2650
|
+
<bibitem id='uml_A' type='internal'>
|
2651
|
+
<docidentifier type='repository'>uml/A</docidentifier>
|
2652
|
+
</bibitem>
|
2653
|
+
</references>
|
2654
|
+
</bibliography>
|
2456
2655
|
</standard-document>
|
2457
2656
|
OUTPUT
|
2657
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2658
|
+
.to be_equivalent_to xmlpp(output)
|
2458
2659
|
end
|
2459
2660
|
|
2460
2661
|
it "process express_ref macro with no existing bibliography" do
|
2461
|
-
|
2662
|
+
input = <<~INPUT
|
2462
2663
|
#{ASCIIDOC_BLANK_HDR}
|
2463
2664
|
[[B]]
|
2464
2665
|
[type="express-schema"]
|
@@ -2472,6 +2673,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2472
2673
|
<<express-schema:B>>
|
2473
2674
|
<<express-schema:B1>>
|
2474
2675
|
INPUT
|
2676
|
+
output = <<~OUTPUT
|
2475
2677
|
#{BLANK_HDR}
|
2476
2678
|
<sections>
|
2477
2679
|
<clause id='B' type='express-schema' inline-header='false' obligation='normative'>
|
@@ -2503,16 +2705,20 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2503
2705
|
</bibliography>
|
2504
2706
|
</standard-document>
|
2505
2707
|
OUTPUT
|
2708
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2709
|
+
.to be_equivalent_to xmlpp(output)
|
2506
2710
|
end
|
2507
2711
|
|
2508
2712
|
private
|
2509
2713
|
|
2510
|
-
def mock_mathml_italicise(
|
2511
|
-
allow_any_instance_of(::Asciidoctor::Standoc::Cleanup)
|
2714
|
+
def mock_mathml_italicise(string)
|
2715
|
+
allow_any_instance_of(::Asciidoctor::Standoc::Cleanup)
|
2716
|
+
.to receive(:mathml_mi_italics).and_return(string)
|
2512
2717
|
end
|
2513
2718
|
|
2514
2719
|
def mock_iecbib_get_iec60050_103_01
|
2515
|
-
expect(Iecbib::IecBibliography).to receive(:get)
|
2720
|
+
expect(Iecbib::IecBibliography).to receive(:get)
|
2721
|
+
.with("IEC 60050-103", nil, { keep_year: true }) do
|
2516
2722
|
IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
|
2517
2723
|
<bibitem type="standard" id="IEC60050-103">
|
2518
2724
|
<title format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary</title>
|
@@ -2550,7 +2756,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2550
2756
|
end
|
2551
2757
|
|
2552
2758
|
def mock_iecbib_get_iec60050_102_01
|
2553
|
-
expect(Iecbib::IecBibliography).to receive(:get)
|
2759
|
+
expect(Iecbib::IecBibliography).to receive(:get)
|
2760
|
+
.with("IEC 60050-102", nil, { keep_year: true }) do
|
2554
2761
|
IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
|
2555
2762
|
<bibitem type="standard" id="IEC60050-102">
|
2556
2763
|
<title format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary</title>
|