metanorma-standoc 1.9.3 → 1.10.2
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 -6
- data/lib/asciidoctor/standoc/base.rb +3 -1
- data/lib/asciidoctor/standoc/blocks.rb +1 -1
- data/lib/asciidoctor/standoc/cleanup.rb +1 -2
- data/lib/asciidoctor/standoc/cleanup_block.rb +0 -1
- data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +2 -2
- data/lib/asciidoctor/standoc/cleanup_footnotes.rb +0 -1
- data/lib/asciidoctor/standoc/cleanup_inline.rb +117 -77
- data/lib/asciidoctor/standoc/cleanup_maths.rb +0 -1
- data/lib/asciidoctor/standoc/cleanup_ref.rb +7 -0
- data/lib/asciidoctor/standoc/cleanup_section.rb +13 -81
- 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 +1 -0
- data/lib/asciidoctor/standoc/front.rb +0 -1
- data/lib/asciidoctor/standoc/front_contributor.rb +66 -42
- data/lib/asciidoctor/standoc/inline.rb +45 -34
- data/lib/asciidoctor/standoc/isodoc.rng +65 -7
- data/lib/asciidoctor/standoc/macros.rb +7 -5
- data/lib/asciidoctor/standoc/macros_plantuml.rb +21 -23
- data/lib/asciidoctor/standoc/macros_terms.rb +60 -23
- data/lib/asciidoctor/standoc/section.rb +19 -12
- data/lib/asciidoctor/standoc/term_lookup_cleanup.rb +69 -30
- data/lib/asciidoctor/standoc/terms.rb +1 -1
- data/lib/asciidoctor/standoc/utils.rb +0 -1
- data/lib/asciidoctor/standoc/validate.rb +22 -8
- data/lib/isodoc/html/html_titlepage.html +81 -0
- data/lib/isodoc/html/htmlstyle.css +983 -0
- data/lib/isodoc/html/htmlstyle.scss +714 -0
- data/lib/isodoc/html/scripts.html +71 -0
- data/lib/metanorma/standoc/processor.rb +16 -7
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +2 -2
- data/spec/asciidoctor/base_spec.rb +693 -553
- data/spec/asciidoctor/blocks_spec.rb +6 -6
- data/spec/asciidoctor/cleanup_spec.rb +899 -688
- data/spec/asciidoctor/inline_spec.rb +62 -14
- data/spec/asciidoctor/isobib_cache_spec.rb +4 -6
- data/spec/asciidoctor/lists_spec.rb +147 -135
- data/spec/asciidoctor/macros_json2text_spec.rb +1 -1
- data/spec/asciidoctor/macros_spec.rb +714 -168
- data/spec/asciidoctor/refs_spec.rb +1527 -1532
- data/spec/asciidoctor/validate_spec.rb +352 -304
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +51 -51
- data/spec/vcr_cassettes/isobib_get_123.yml +14 -14
- data/spec/vcr_cassettes/isobib_get_123_1.yml +27 -27
- data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +36 -36
- 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 +10 -5
@@ -1051,13 +1051,13 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1051
1051
|
Definition
|
1052
1052
|
|
1053
1053
|
[.source]
|
1054
|
-
{{IEV:xyz}}
|
1054
|
+
{{<<IEV:xyz>>}}
|
1055
1055
|
|
1056
1056
|
[.source]
|
1057
|
-
{{IEV:xyz
|
1057
|
+
{{<<IEV:xyz>>,t1}}
|
1058
1058
|
|
1059
1059
|
[.source]
|
1060
|
-
{{IEV:xyz
|
1060
|
+
{{<<IEV:xyz>>,t1,t2}}
|
1061
1061
|
INPUT
|
1062
1062
|
output = <<~OUTPUT
|
1063
1063
|
#{BLANK_HDR}
|
@@ -1094,12 +1094,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1094
1094
|
</termsource>
|
1095
1095
|
<termsource status='identical'>
|
1096
1096
|
<origin citeas=''>
|
1097
|
-
<termref base='IEV' target='xyz'
|
1097
|
+
<termref base='IEV' target='xyz'/>
|
1098
1098
|
</origin>
|
1099
1099
|
</termsource>
|
1100
1100
|
<termsource status='identical'>
|
1101
1101
|
<origin citeas=''>
|
1102
|
-
<termref base='IEV' target='xyz'
|
1102
|
+
<termref base='IEV' target='xyz'/>
|
1103
1103
|
</origin>
|
1104
1104
|
</termsource>
|
1105
1105
|
</term>
|
@@ -1126,7 +1126,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1126
1126
|
Definition
|
1127
1127
|
|
1128
1128
|
[.source]
|
1129
|
-
{{IEV:xyz}}, with adjustments
|
1129
|
+
{{<<IEV:xyz>>}}, with adjustments
|
1130
1130
|
INPUT
|
1131
1131
|
output = <<~OUTPUT
|
1132
1132
|
#{BLANK_HDR}
|
@@ -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'>
|
@@ -95,25 +98,30 @@ RSpec.describe Asciidoctor::Standoc do
|
|
95
98
|
</bibliography>
|
96
99
|
</standard-document>
|
97
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)
|
98
105
|
end
|
99
106
|
|
100
107
|
it "processes markup in sourcecode" do
|
101
|
-
|
102
|
-
|
108
|
+
input = <<~INPUT
|
109
|
+
#{ASCIIDOC_BLANK_HDR}
|
103
110
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
111
|
+
[source]
|
112
|
+
----
|
113
|
+
<tag/>
|
114
|
+
----
|
108
115
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
116
|
+
[[A]]
|
117
|
+
[source]
|
118
|
+
----
|
119
|
+
var {{{*x*}}} : {{{<<A,recursive>>}}} <tag/>
|
120
|
+
----
|
114
121
|
|
115
122
|
|
116
123
|
INPUT
|
124
|
+
output = <<~OUTPUT
|
117
125
|
#{BLANK_HDR}
|
118
126
|
<sections>
|
119
127
|
<sourcecode id='_'><tag/></sourcecode>
|
@@ -127,10 +135,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
127
135
|
</sections>
|
128
136
|
</standard-document>
|
129
137
|
OUTPUT
|
138
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
139
|
+
.to be_equivalent_to xmlpp(output)
|
130
140
|
end
|
131
141
|
|
132
142
|
it "processes markup in sourcecode with custom delimiters" do
|
133
|
-
|
143
|
+
input = <<~INPUT
|
134
144
|
= Document title
|
135
145
|
Author
|
136
146
|
:docfile: test.adoc
|
@@ -148,6 +158,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
148
158
|
|
149
159
|
|
150
160
|
INPUT
|
161
|
+
output = <<~OUTPUT
|
151
162
|
#{BLANK_HDR}
|
152
163
|
<sections>
|
153
164
|
<sourcecode id='A'>
|
@@ -159,15 +170,18 @@ RSpec.describe Asciidoctor::Standoc do
|
|
159
170
|
</sections>
|
160
171
|
</standard-document>
|
161
172
|
OUTPUT
|
173
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
174
|
+
.to be_equivalent_to xmlpp(output)
|
162
175
|
end
|
163
176
|
|
164
177
|
it "applies smartquotes by default" do
|
165
|
-
|
178
|
+
input = <<~INPUT
|
166
179
|
#{ASCIIDOC_BLANK_HDR}
|
167
180
|
== "Quotation" A's
|
168
181
|
|
169
182
|
'24:00:00'.
|
170
183
|
INPUT
|
184
|
+
output = <<~OUTPUT
|
171
185
|
#{BLANK_HDR}
|
172
186
|
<sections>
|
173
187
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -177,10 +191,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
177
191
|
</sections>
|
178
192
|
</standard-document>
|
179
193
|
OUTPUT
|
194
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
195
|
+
.to be_equivalent_to xmlpp(output)
|
180
196
|
end
|
181
197
|
|
182
198
|
it "applies smartquotes when requested" do
|
183
|
-
|
199
|
+
input = <<~INPUT
|
184
200
|
= Document title
|
185
201
|
Author
|
186
202
|
:docfile: test.adoc
|
@@ -191,6 +207,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
191
207
|
|
192
208
|
== "Quotation" A's
|
193
209
|
INPUT
|
210
|
+
output = <<~OUTPUT
|
194
211
|
#{BLANK_HDR}
|
195
212
|
<sections>
|
196
213
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -199,10 +216,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
199
216
|
</sections>
|
200
217
|
</standard-document>
|
201
218
|
OUTPUT
|
219
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
220
|
+
.to be_equivalent_to xmlpp(output)
|
202
221
|
end
|
203
222
|
|
204
223
|
it "does not apply smartquotes when requested not to" do
|
205
|
-
|
224
|
+
input = <<~INPUT
|
206
225
|
= Document title
|
207
226
|
Author
|
208
227
|
:docfile: test.adoc
|
@@ -215,6 +234,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
215
234
|
|
216
235
|
`"quote" A's`
|
217
236
|
INPUT
|
237
|
+
output = <<~OUTPUT
|
218
238
|
#{BLANK_HDR}
|
219
239
|
<sections>
|
220
240
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -226,10 +246,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
226
246
|
</sections>
|
227
247
|
</standard-document>
|
228
248
|
OUTPUT
|
249
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
250
|
+
.to be_equivalent_to xmlpp(output)
|
229
251
|
end
|
230
252
|
|
231
253
|
it "does not apply smartquotes to sourcecode, tt, pre, pseudocode" do
|
232
|
-
|
254
|
+
input = <<~INPUT
|
233
255
|
= Document title
|
234
256
|
Author
|
235
257
|
:docfile: test.adoc
|
@@ -255,6 +277,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
255
277
|
====
|
256
278
|
|
257
279
|
INPUT
|
280
|
+
output = <<~OUTPUT
|
258
281
|
#{BLANK_HDR}
|
259
282
|
<sections>
|
260
283
|
<clause id="_" inline-header="false" obligation="normative"><title>“Quotation” A’s</title><p id="_">“Quotation” A’s</p>
|
@@ -269,15 +292,18 @@ RSpec.describe Asciidoctor::Standoc do
|
|
269
292
|
</sections>
|
270
293
|
</standard-document>
|
271
294
|
OUTPUT
|
295
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
296
|
+
.to be_equivalent_to xmlpp(output)
|
272
297
|
end
|
273
298
|
|
274
299
|
it "handles < > & in Asciidoctor correctly" do
|
275
|
-
|
300
|
+
input = <<~INPUT
|
276
301
|
#{ASCIIDOC_BLANK_HDR}
|
277
302
|
== {blank}
|
278
303
|
|
279
304
|
<&>
|
280
305
|
INPUT
|
306
|
+
output = <<~OUTPUT
|
281
307
|
#{BLANK_HDR}
|
282
308
|
<sections>
|
283
309
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -286,13 +312,16 @@ RSpec.describe Asciidoctor::Standoc do
|
|
286
312
|
</sections>
|
287
313
|
</standard-document>
|
288
314
|
OUTPUT
|
315
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
316
|
+
.to be_equivalent_to xmlpp(output)
|
289
317
|
end
|
290
318
|
|
291
319
|
it "removes empty text elements" do
|
292
|
-
|
320
|
+
input = <<~INPUT
|
293
321
|
#{ASCIIDOC_BLANK_HDR}
|
294
322
|
== {blank}
|
295
323
|
INPUT
|
324
|
+
output = <<~OUTPUT
|
296
325
|
#{BLANK_HDR}
|
297
326
|
<sections>
|
298
327
|
<clause id="_" inline-header="false" obligation="normative">
|
@@ -301,10 +330,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
301
330
|
</sections>
|
302
331
|
</standard-document>
|
303
332
|
OUTPUT
|
333
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
334
|
+
.to be_equivalent_to xmlpp(output)
|
304
335
|
end
|
305
336
|
|
306
337
|
it "processes stem-only terms as admitted" do
|
307
|
-
|
338
|
+
input = <<~INPUT
|
308
339
|
#{ASCIIDOC_BLANK_HDR}
|
309
340
|
== Terms and Definitions
|
310
341
|
|
@@ -314,6 +345,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
314
345
|
|
315
346
|
Time
|
316
347
|
INPUT
|
348
|
+
output = <<~OUTPUT
|
317
349
|
#{BLANK_HDR}
|
318
350
|
<sections>
|
319
351
|
<terms id="_" obligation="normative">
|
@@ -339,10 +371,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
339
371
|
</sections>
|
340
372
|
</standard-document>
|
341
373
|
OUTPUT
|
374
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
375
|
+
.to be_equivalent_to xmlpp(output)
|
342
376
|
end
|
343
377
|
|
344
378
|
it "moves term domains out of the term definition paragraph" do
|
345
|
-
|
379
|
+
input = <<~INPUT
|
346
380
|
#{ASCIIDOC_BLANK_HDR}
|
347
381
|
== Terms and Definitions
|
348
382
|
|
@@ -356,6 +390,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
356
390
|
|
357
391
|
domain:[relativity2]
|
358
392
|
INPUT
|
393
|
+
output = <<~OUTPUT
|
359
394
|
#{BLANK_HDR}
|
360
395
|
<sections>
|
361
396
|
<terms id="_" obligation="normative">
|
@@ -377,10 +412,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
377
412
|
</sections>
|
378
413
|
</standard-document>
|
379
414
|
OUTPUT
|
415
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
416
|
+
.to be_equivalent_to xmlpp(output)
|
380
417
|
end
|
381
418
|
|
382
419
|
it "permits multiple blocks in term definition paragraph" do
|
383
|
-
|
420
|
+
input = <<~INPUT
|
384
421
|
= Document title
|
385
422
|
Author
|
386
423
|
:docfile: test.adoc
|
@@ -399,6 +436,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
399
436
|
|
400
437
|
This paragraph is extraneous
|
401
438
|
INPUT
|
439
|
+
output = <<~OUTPUT
|
402
440
|
#{BLANK_HDR}
|
403
441
|
<sections>
|
404
442
|
<terms id="_" obligation="normative">
|
@@ -427,35 +465,40 @@ RSpec.describe Asciidoctor::Standoc do
|
|
427
465
|
</sections>
|
428
466
|
</standard-document>
|
429
467
|
OUTPUT
|
468
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
469
|
+
.to be_equivalent_to xmlpp(output)
|
430
470
|
end
|
431
471
|
|
432
472
|
it "moves notes inside preceding blocks, if they are not at clause end, and the blocks are not delimited" do
|
433
|
-
|
434
|
-
|
473
|
+
input = <<~INPUT
|
474
|
+
#{ASCIIDOC_BLANK_HDR}
|
435
475
|
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
476
|
+
[stem]
|
477
|
+
++++
|
478
|
+
r = 1 %
|
479
|
+
r = 1 %
|
480
|
+
++++
|
441
481
|
|
442
|
-
|
482
|
+
NOTE: That formula does not do much
|
443
483
|
|
444
|
-
|
484
|
+
Indeed.
|
445
485
|
INPUT
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
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>
|
454
495
|
OUTPUT
|
496
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
497
|
+
.to be_equivalent_to xmlpp(output)
|
455
498
|
end
|
456
499
|
|
457
500
|
it "does not move notes inside preceding blocks, if they are marked as keep-separate" do
|
458
|
-
|
501
|
+
input = <<~INPUT
|
459
502
|
#{ASCIIDOC_BLANK_HDR}
|
460
503
|
|
461
504
|
[stem]
|
@@ -471,19 +514,22 @@ RSpec.describe Asciidoctor::Standoc do
|
|
471
514
|
|
472
515
|
Indeed.
|
473
516
|
INPUT
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
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>
|
482
526
|
OUTPUT
|
527
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
528
|
+
.to be_equivalent_to xmlpp(output)
|
483
529
|
end
|
484
530
|
|
485
531
|
it "does not move notes inside preceding blocks, if they are at clause end" do
|
486
|
-
|
532
|
+
input = <<~INPUT
|
487
533
|
#{ASCIIDOC_BLANK_HDR}
|
488
534
|
[source,ruby]
|
489
535
|
[1...x].each do |y|
|
@@ -492,6 +538,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
492
538
|
|
493
539
|
NOTE: That loop does not do much
|
494
540
|
INPUT
|
541
|
+
output = <<~OUTPUT
|
495
542
|
#{BLANK_HDR}
|
496
543
|
<sections><sourcecode id="_" lang="ruby">[1...x].each do |y|
|
497
544
|
puts y
|
@@ -501,10 +548,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
501
548
|
</note></sections>
|
502
549
|
</standard-document>
|
503
550
|
OUTPUT
|
551
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
552
|
+
.to be_equivalent_to xmlpp(output)
|
504
553
|
end
|
505
554
|
|
506
555
|
it "converts xrefs to references into erefs" do
|
507
|
-
|
556
|
+
input = <<~INPUT
|
508
557
|
#{ASCIIDOC_BLANK_HDR}
|
509
558
|
<<iso216>>
|
510
559
|
<<iso216,droploc%capital%>>
|
@@ -513,6 +562,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
513
562
|
== Normative References
|
514
563
|
* [[[iso216,ISO 216:2001]]], _Reference_
|
515
564
|
INPUT
|
565
|
+
output = <<~OUTPUT
|
516
566
|
#{BLANK_HDR}
|
517
567
|
<preface><foreword id="_" obligation="informative">
|
518
568
|
<title>Foreword</title>
|
@@ -542,10 +592,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
542
592
|
</bibliography>
|
543
593
|
</standard-document>
|
544
594
|
OUTPUT
|
595
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
596
|
+
.to be_equivalent_to xmlpp(output)
|
545
597
|
end
|
546
598
|
|
547
599
|
it "extracts localities from erefs" do
|
548
|
-
|
600
|
+
input = <<~INPUT
|
549
601
|
#{ASCIIDOC_BLANK_HDR}
|
550
602
|
<<iso216,whole,clause=3,example=9-11,locality:prelude="33 a",locality:entirety:the reference,xyz>>
|
551
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>>
|
@@ -558,6 +610,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
558
610
|
== Normative References
|
559
611
|
* [[[iso216,ISO 216]]], _Reference_
|
560
612
|
INPUT
|
613
|
+
output = <<~OUTPUT
|
561
614
|
#{BLANK_HDR}
|
562
615
|
<preface><foreword id="_" obligation="informative">
|
563
616
|
<title>Foreword</title>
|
@@ -650,10 +703,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
650
703
|
</bibliography>
|
651
704
|
</standard-document>
|
652
705
|
OUTPUT
|
706
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
707
|
+
.to be_equivalent_to xmlpp(output)
|
653
708
|
end
|
654
709
|
|
655
710
|
it "strips type from xrefs" do
|
656
|
-
|
711
|
+
input = <<~INPUT
|
657
712
|
#{ASCIIDOC_BLANK_HDR}
|
658
713
|
<<iso216>>
|
659
714
|
|
@@ -661,6 +716,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
661
716
|
== Clause
|
662
717
|
* [[[iso216,ISO 216]]], _Reference_
|
663
718
|
INPUT
|
719
|
+
output = <<~OUTPUT
|
664
720
|
#{BLANK_HDR}
|
665
721
|
<preface>
|
666
722
|
<foreword id="_" obligation="informative">
|
@@ -685,10 +741,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
685
741
|
</references></bibliography>
|
686
742
|
</standard-document>
|
687
743
|
OUTPUT
|
744
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
745
|
+
.to be_equivalent_to xmlpp(output)
|
688
746
|
end
|
689
747
|
|
690
748
|
it "processes localities in term sources" do
|
691
|
-
|
749
|
+
input = <<~INPUT
|
692
750
|
#{ASCIIDOC_BLANK_HDR}
|
693
751
|
== Terms and Definitions
|
694
752
|
|
@@ -697,6 +755,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
697
755
|
[.source]
|
698
756
|
<<ISO2191,section=1>>
|
699
757
|
INPUT
|
758
|
+
output = <<~OUTPUT
|
700
759
|
#{BLANK_HDR}
|
701
760
|
<sections>
|
702
761
|
<terms id="_" obligation="normative">
|
@@ -716,29 +775,35 @@ RSpec.describe Asciidoctor::Standoc do
|
|
716
775
|
</sections>
|
717
776
|
</standard-document>
|
718
777
|
OUTPUT
|
778
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
779
|
+
.to be_equivalent_to xmlpp(output)
|
719
780
|
end
|
720
781
|
|
721
782
|
it "inserts IDs into paragraphs" do
|
722
|
-
|
783
|
+
input = <<~INPUT
|
723
784
|
#{ASCIIDOC_BLANK_HDR}
|
724
785
|
Paragraph
|
725
786
|
INPUT
|
787
|
+
output = <<~OUTPUT
|
726
788
|
#{BLANK_HDR}
|
727
789
|
<sections>
|
728
790
|
<p id="_">Paragraph</p>
|
729
791
|
</sections>
|
730
792
|
</standard-document>
|
731
793
|
OUTPUT
|
794
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
795
|
+
.to be_equivalent_to xmlpp(output)
|
732
796
|
end
|
733
797
|
|
734
798
|
it "inserts IDs into notes" do
|
735
|
-
|
799
|
+
input = <<~INPUT
|
736
800
|
#{ASCIIDOC_BLANK_HDR}
|
737
801
|
[example]
|
738
802
|
====
|
739
803
|
NOTE: This note has no ID
|
740
804
|
====
|
741
805
|
INPUT
|
806
|
+
output = <<~OUTPUT
|
742
807
|
#{BLANK_HDR}
|
743
808
|
<sections>
|
744
809
|
<example id="_">
|
@@ -749,10 +814,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
749
814
|
</sections>
|
750
815
|
</standard-document>
|
751
816
|
OUTPUT
|
817
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
818
|
+
.to be_equivalent_to xmlpp(output)
|
752
819
|
end
|
753
820
|
|
754
821
|
it "moves table key inside table" do
|
755
|
-
|
822
|
+
input = <<~INPUT
|
756
823
|
#{ASCIIDOC_BLANK_HDR}
|
757
824
|
|===
|
758
825
|
|a |b |c
|
@@ -775,6 +842,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
775
842
|
|
776
843
|
a:: b
|
777
844
|
INPUT
|
845
|
+
output = <<~OUTPUT
|
778
846
|
#{BLANK_HDR}
|
779
847
|
<sections>
|
780
848
|
<table id='_'>
|
@@ -825,10 +893,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
825
893
|
</sections>
|
826
894
|
</standard-document>
|
827
895
|
OUTPUT
|
896
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
897
|
+
.to be_equivalent_to xmlpp(output)
|
828
898
|
end
|
829
899
|
|
830
900
|
it "processes headerrows attribute for table without header rows" do
|
831
|
-
|
901
|
+
input = <<~INPUT
|
832
902
|
#{ASCIIDOC_BLANK_HDR}
|
833
903
|
[headerrows=3]
|
834
904
|
|===
|
@@ -838,6 +908,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
838
908
|
|a |b |c
|
839
909
|
|===
|
840
910
|
INPUT
|
911
|
+
output = <<~OUTPUT
|
841
912
|
#{BLANK_HDR}
|
842
913
|
<sections>
|
843
914
|
<table id="_"><thead><tr>
|
@@ -864,10 +935,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
864
935
|
</sections>
|
865
936
|
</standard-document>
|
866
937
|
OUTPUT
|
938
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
939
|
+
.to be_equivalent_to xmlpp(output)
|
867
940
|
end
|
868
941
|
|
869
942
|
it "processes headerrows attribute for table with header rows" do
|
870
|
-
|
943
|
+
input = <<~INPUT
|
871
944
|
#{ASCIIDOC_BLANK_HDR}
|
872
945
|
[headerrows=3]
|
873
946
|
|===
|
@@ -878,6 +951,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
878
951
|
|a |b |c
|
879
952
|
|===
|
880
953
|
INPUT
|
954
|
+
output = <<~OUTPUT
|
881
955
|
#{BLANK_HDR}
|
882
956
|
<sections>
|
883
957
|
<table id="_">
|
@@ -909,10 +983,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
909
983
|
</sections>
|
910
984
|
</standard-document>
|
911
985
|
OUTPUT
|
986
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
987
|
+
.to be_equivalent_to xmlpp(output)
|
912
988
|
end
|
913
989
|
|
914
990
|
it "moves table notes inside table" do
|
915
|
-
|
991
|
+
input = <<~INPUT
|
916
992
|
#{ASCIIDOC_BLANK_HDR}
|
917
993
|
|===
|
918
994
|
|a |b |c
|
@@ -922,6 +998,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
922
998
|
|
923
999
|
NOTE: Note 2
|
924
1000
|
INPUT
|
1001
|
+
output = <<~OUTPUT
|
925
1002
|
#{BLANK_HDR}
|
926
1003
|
<sections><table id="_">
|
927
1004
|
<tbody>
|
@@ -940,10 +1017,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
940
1017
|
</sections>
|
941
1018
|
</standard-document>
|
942
1019
|
OUTPUT
|
1020
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1021
|
+
.to be_equivalent_to xmlpp(output)
|
943
1022
|
end
|
944
1023
|
|
945
1024
|
it "moves formula key inside formula" do
|
946
|
-
|
1025
|
+
input = <<~INPUT
|
947
1026
|
#{ASCIIDOC_BLANK_HDR}
|
948
1027
|
[stem]
|
949
1028
|
++++
|
@@ -969,6 +1048,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
969
1048
|
|
970
1049
|
a:: b
|
971
1050
|
INPUT
|
1051
|
+
output = <<~OUTPUT
|
972
1052
|
#{BLANK_HDR}
|
973
1053
|
<sections>
|
974
1054
|
<formula id='_'>
|
@@ -1025,10 +1105,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1025
1105
|
</sections>
|
1026
1106
|
</standard-document>
|
1027
1107
|
OUTPUT
|
1108
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1109
|
+
.to be_equivalent_to xmlpp(output)
|
1028
1110
|
end
|
1029
1111
|
|
1030
1112
|
it "moves footnotes inside figures" do
|
1031
|
-
|
1113
|
+
input = <<~INPUT
|
1032
1114
|
#{ASCIIDOC_BLANK_HDR}
|
1033
1115
|
.Figuretitle.footnote:[xyz]
|
1034
1116
|
image::spec/examples/rice_images/rice_image1.png[]
|
@@ -1039,33 +1121,36 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1039
1121
|
|
1040
1122
|
A footnote:[This is a third footnote]
|
1041
1123
|
INPUT
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
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>
|
1064
1147
|
OUTPUT
|
1148
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1149
|
+
.to be_equivalent_to xmlpp(output)
|
1065
1150
|
end
|
1066
1151
|
|
1067
1152
|
it "moves figure key inside figure" do
|
1068
|
-
|
1153
|
+
input = <<~INPUT
|
1069
1154
|
#{ASCIIDOC_BLANK_HDR}
|
1070
1155
|
image::spec/examples/rice_images/rice_image1.png[]
|
1071
1156
|
|
@@ -1082,6 +1167,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1082
1167
|
|
1083
1168
|
a:: b
|
1084
1169
|
INPUT
|
1170
|
+
output = <<~OUTPUT
|
1085
1171
|
#{BLANK_HDR}
|
1086
1172
|
<sections>
|
1087
1173
|
<figure id='_'>
|
@@ -1114,10 +1200,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1114
1200
|
</sections>
|
1115
1201
|
</standard-document>
|
1116
1202
|
OUTPUT
|
1203
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1204
|
+
.to be_equivalent_to xmlpp(output)
|
1117
1205
|
end
|
1118
1206
|
|
1119
1207
|
it "processes subfigures" do
|
1120
|
-
|
1208
|
+
input = <<~INPUT
|
1121
1209
|
#{ASCIIDOC_BLANK_HDR}
|
1122
1210
|
[[figureC-2]]
|
1123
1211
|
.Stages of gelatinization
|
@@ -1132,6 +1220,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1132
1220
|
image::spec/examples/rice_images/rice_image3_3.png[]
|
1133
1221
|
====
|
1134
1222
|
INPUT
|
1223
|
+
output = <<~OUTPUT
|
1135
1224
|
#{BLANK_HDR}
|
1136
1225
|
<sections>
|
1137
1226
|
<figure id="figureC-2"><name>Stages of gelatinization</name><figure id="_">
|
@@ -1149,10 +1238,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1149
1238
|
</sections>
|
1150
1239
|
</standard-document>
|
1151
1240
|
OUTPUT
|
1241
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1242
|
+
.to be_equivalent_to xmlpp(output)
|
1152
1243
|
end
|
1153
1244
|
|
1154
1245
|
it "numbers bibliographic notes and footnotes sequentially" do
|
1155
|
-
|
1246
|
+
input = <<~INPUT
|
1156
1247
|
#{ASCIIDOC_BLANK_HDR}
|
1157
1248
|
footnote:[Footnote]
|
1158
1249
|
|
@@ -1164,6 +1255,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1164
1255
|
== Clause
|
1165
1256
|
footnote:[Footnote2]
|
1166
1257
|
INPUT
|
1258
|
+
output = <<~OUTPUT
|
1167
1259
|
#{BLANK_HDR}
|
1168
1260
|
<preface><foreword id="_" obligation="informative">
|
1169
1261
|
<title>Foreword</title>
|
@@ -1201,10 +1293,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1201
1293
|
</bibliography>
|
1202
1294
|
</standard-document>
|
1203
1295
|
OUTPUT
|
1296
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1297
|
+
.to be_equivalent_to xmlpp(output)
|
1204
1298
|
end
|
1205
1299
|
|
1206
1300
|
it "rearranges term note, term example, term source" do
|
1207
|
-
|
1301
|
+
input = <<~INPUT
|
1208
1302
|
#{ASCIIDOC_BLANK_HDR}
|
1209
1303
|
|
1210
1304
|
== Terms and definitions
|
@@ -1224,6 +1318,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1224
1318
|
[example]
|
1225
1319
|
Example 2
|
1226
1320
|
INPUT
|
1321
|
+
output = <<~OUTPUT
|
1227
1322
|
#{BLANK_HDR}
|
1228
1323
|
<sections>
|
1229
1324
|
<terms id="_" obligation="normative">
|
@@ -1252,20 +1347,24 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1252
1347
|
</sections>
|
1253
1348
|
</standard-document>
|
1254
1349
|
OUTPUT
|
1350
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1351
|
+
.to be_equivalent_to xmlpp(output)
|
1255
1352
|
end
|
1256
1353
|
|
1257
1354
|
it "separates IEV citations by top-level clause" do
|
1258
1355
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
1259
|
-
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
1356
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"),
|
1357
|
+
File.expand_path("~/.relaton-bib.pstore1"), force: true
|
1260
1358
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
1261
|
-
FileUtils.mv File.expand_path("~/.iev.pstore"),
|
1359
|
+
FileUtils.mv File.expand_path("~/.iev.pstore"),
|
1360
|
+
File.expand_path("~/.iev.pstore1"), force: true
|
1262
1361
|
FileUtils.rm_rf "relaton/cache"
|
1263
1362
|
FileUtils.rm_rf "test.iev.pstore"
|
1264
1363
|
# mock_iecbib_get_iec60050_102_01
|
1265
1364
|
# mock_iecbib_get_iec60050_103_01
|
1266
1365
|
# mock_iev
|
1267
1366
|
VCR.use_cassette "separates_iev_citations_by_top_level_clause" do
|
1268
|
-
|
1367
|
+
input = <<~INPUT
|
1269
1368
|
#{CACHED_ISOBIB_BLANK_HDR}
|
1270
1369
|
|
1271
1370
|
[bibliography]
|
@@ -1288,166 +1387,174 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1288
1387
|
[.source]
|
1289
1388
|
<<iev,clause="103-01-02">>
|
1290
1389
|
INPUT
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
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
|
-
|
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>
|
1408
1508
|
OUTPUT
|
1509
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1510
|
+
.to be_equivalent_to xmlpp(output)
|
1409
1511
|
end
|
1410
1512
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
1411
|
-
FileUtils.mv File.expand_path("~/.iev.pstore1"),
|
1513
|
+
FileUtils.mv File.expand_path("~/.iev.pstore1"),
|
1514
|
+
File.expand_path("~/.iev.pstore"), force: true
|
1412
1515
|
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
1413
|
-
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
|
1414
1518
|
end
|
1415
1519
|
|
1416
1520
|
it "counts footnotes with link-only content as separate footnotes" do
|
1417
|
-
|
1418
|
-
|
1521
|
+
input = <<~INPUT
|
1522
|
+
#{ASCIIDOC_BLANK_HDR}
|
1419
1523
|
|
1420
|
-
|
1524
|
+
footnote:[http://www.example.com]
|
1421
1525
|
|
1422
|
-
|
1526
|
+
footnote:[http://www.example.com]
|
1423
1527
|
|
1424
|
-
|
1528
|
+
footnote:[http://www.example1.com]
|
1425
1529
|
INPUT
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
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>
|
1446
1551
|
OUTPUT
|
1552
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1553
|
+
.to be_equivalent_to xmlpp(output)
|
1447
1554
|
end
|
1448
1555
|
|
1449
1556
|
it "retains AsciiMath on request" do
|
1450
|
-
|
1557
|
+
input = <<~INPUT
|
1451
1558
|
= Document title
|
1452
1559
|
Author
|
1453
1560
|
:docfile: test.adoc
|
@@ -1458,18 +1565,21 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1458
1565
|
|
1459
1566
|
stem:[1/r]
|
1460
1567
|
INPUT
|
1461
|
-
|
1462
|
-
|
1463
|
-
|
1464
|
-
|
1465
|
-
|
1466
|
-
|
1467
|
-
|
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>
|
1468
1576
|
OUTPUT
|
1577
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1578
|
+
.to be_equivalent_to xmlpp(output)
|
1469
1579
|
end
|
1470
1580
|
|
1471
1581
|
it "converts AsciiMath to MathML by default" do
|
1472
|
-
|
1582
|
+
input = <<~INPUT
|
1473
1583
|
= Document title
|
1474
1584
|
Author
|
1475
1585
|
:docfile: test.adoc
|
@@ -1479,6 +1589,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1479
1589
|
|
1480
1590
|
stem:[1/r]
|
1481
1591
|
INPUT
|
1592
|
+
output = <<~OUTPUT
|
1482
1593
|
#{BLANK_HDR}
|
1483
1594
|
<sections>
|
1484
1595
|
<p id="_">
|
@@ -1494,26 +1605,63 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1494
1605
|
</sections>
|
1495
1606
|
</standard-document>
|
1496
1607
|
OUTPUT
|
1608
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1609
|
+
.to be_equivalent_to xmlpp(output)
|
1497
1610
|
end
|
1498
1611
|
|
1499
1612
|
it "cleans up text MathML" do
|
1500
|
-
|
1613
|
+
input = <<~INPUT
|
1501
1614
|
#{BLANK_HDR}
|
1502
1615
|
<sections>
|
1503
1616
|
<stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac><mn>1</mn><mi>r</mi></mfrac></math></stem>
|
1504
1617
|
</sections>
|
1505
1618
|
</standard-document>
|
1506
1619
|
INPUT
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
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>
|
1512
1657
|
OUTPUT
|
1658
|
+
expect(Asciidoctor::Standoc::Converter.new(nil, *OPTIONS)
|
1659
|
+
.cleanup(Nokogiri::XML(input)).to_xml)
|
1660
|
+
.to be_equivalent_to xmlpp(output)
|
1513
1661
|
end
|
1514
1662
|
|
1515
1663
|
it "renumbers numeric references in Bibliography sequentially" do
|
1516
|
-
|
1664
|
+
input = <<~INPUT
|
1517
1665
|
#{ASCIIDOC_BLANK_HDR}
|
1518
1666
|
|
1519
1667
|
== Clause
|
@@ -1526,6 +1674,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1526
1674
|
* [[[iso124,ISO 124]]] _Standard 124_
|
1527
1675
|
* [[[iso123,1]]] _Standard 123_
|
1528
1676
|
INPUT
|
1677
|
+
output = <<~OUTPUT
|
1529
1678
|
#{BLANK_HDR}
|
1530
1679
|
<sections><clause id="_" inline-header="false" obligation="normative">
|
1531
1680
|
<title>Clause</title>
|
@@ -1554,10 +1703,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1554
1703
|
</references></bibliography>
|
1555
1704
|
</standard-document>
|
1556
1705
|
OUTPUT
|
1706
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1707
|
+
.to be_equivalent_to xmlpp(output)
|
1557
1708
|
end
|
1558
1709
|
|
1559
1710
|
it "renumbers numeric references in Bibliography subclauses sequentially" do
|
1560
|
-
|
1711
|
+
input = <<~INPUT
|
1561
1712
|
#{ASCIIDOC_BLANK_HDR}
|
1562
1713
|
|
1563
1714
|
== Clause
|
@@ -1588,6 +1739,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1588
1739
|
* [[[iso128,1]]] _Standard 123_
|
1589
1740
|
|
1590
1741
|
INPUT
|
1742
|
+
output = <<~OUTPUT
|
1591
1743
|
#{BLANK_HDR}
|
1592
1744
|
<sections><clause id="_" inline-header="false" obligation="normative">
|
1593
1745
|
<title>Clause</title>
|
@@ -1660,10 +1812,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1660
1812
|
</references></clause></bibliography>
|
1661
1813
|
</standard-document>
|
1662
1814
|
OUTPUT
|
1815
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1816
|
+
.to be_equivalent_to xmlpp(output)
|
1663
1817
|
end
|
1664
1818
|
|
1665
1819
|
it "removes bibdata bibitem IDs" do
|
1666
|
-
|
1820
|
+
input = <<~INPUT
|
1667
1821
|
= Document title
|
1668
1822
|
Author
|
1669
1823
|
:docfile: test.adoc
|
@@ -1676,6 +1830,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1676
1830
|
== Normative References
|
1677
1831
|
|
1678
1832
|
INPUT
|
1833
|
+
output = <<~OUTPUT
|
1679
1834
|
<?xml version='1.0' encoding='UTF-8'?>
|
1680
1835
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
1681
1836
|
<bibdata type='standard'>
|
@@ -1707,10 +1862,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1707
1862
|
</bibliography>
|
1708
1863
|
</standard-document>
|
1709
1864
|
OUTPUT
|
1865
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1866
|
+
.to be_equivalent_to xmlpp(output)
|
1710
1867
|
end
|
1711
1868
|
|
1712
1869
|
it "imports boilerplate file" do
|
1713
|
-
|
1870
|
+
input = <<~INPUT
|
1714
1871
|
= Document title
|
1715
1872
|
Author
|
1716
1873
|
:docfile: test.adoc
|
@@ -1723,6 +1880,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1723
1880
|
== Clause 1
|
1724
1881
|
|
1725
1882
|
INPUT
|
1883
|
+
output = <<~OUTPUT
|
1726
1884
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
1727
1885
|
<bibdata type='standard'>
|
1728
1886
|
<title language='en' format='text/plain'>Document title</title>
|
@@ -1748,33 +1906,36 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1748
1906
|
</sections>
|
1749
1907
|
</standard-document>
|
1750
1908
|
OUTPUT
|
1909
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1910
|
+
.to be_equivalent_to xmlpp(output)
|
1751
1911
|
end
|
1752
1912
|
|
1753
|
-
it "sorts symbols lists" do
|
1754
|
-
|
1755
|
-
|
1913
|
+
it "sorts symbols lists #1" do
|
1914
|
+
input = <<~INPUT
|
1915
|
+
#{ASCIIDOC_BLANK_HDR}
|
1756
1916
|
|
1757
|
-
|
1758
|
-
|
1917
|
+
[[L]]
|
1918
|
+
== Symbols and abbreviated terms
|
1759
1919
|
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
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
|
1767
1927
|
INPUT
|
1928
|
+
output = <<~OUTPUT
|
1768
1929
|
#{BLANK_HDR}
|
1769
1930
|
<sections>
|
1770
1931
|
<definitions id='L' obligation="normative">
|
1771
1932
|
<title>Symbols and abbreviated terms</title>
|
1772
1933
|
<dl id='_'>
|
1773
|
-
<dt>m</dt>
|
1934
|
+
<dt id="symbol-m">m</dt>
|
1774
1935
|
<dd>
|
1775
1936
|
<p id='_'>Definition 7</p>
|
1776
1937
|
</dd>
|
1777
|
-
<dt>
|
1938
|
+
<dt id="symbol-_-n-">
|
1778
1939
|
<stem type='MathML'>
|
1779
1940
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1780
1941
|
<mi>n</mi>
|
@@ -1784,23 +1945,23 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1784
1945
|
<dd>
|
1785
1946
|
<p id='_'>Definition 6</p>
|
1786
1947
|
</dd>
|
1787
|
-
<dt>x</dt>
|
1948
|
+
<dt id="symbol-x">x</dt>
|
1788
1949
|
<dd>
|
1789
1950
|
<p id='_'>Definition 5</p>
|
1790
1951
|
</dd>
|
1791
|
-
<dt>x_m_</dt>
|
1952
|
+
<dt id='symbol-x_m_'>x_m_</dt>
|
1792
1953
|
<dd>
|
1793
1954
|
<p id='_'>Definition 4</p>
|
1794
1955
|
</dd>
|
1795
|
-
<dt>x_1_</dt>
|
1956
|
+
<dt id='symbol-x_1_'>x_1_</dt>
|
1796
1957
|
<dd>
|
1797
1958
|
<p id='_'>Definition 3</p>
|
1798
1959
|
</dd>
|
1799
|
-
<dt>Xa</dt>
|
1960
|
+
<dt id='symbol-xa'>Xa</dt>
|
1800
1961
|
<dd>
|
1801
1962
|
<p id='_'>Definition 2</p>
|
1802
1963
|
</dd>
|
1803
|
-
<dt>α</dt>
|
1964
|
+
<dt id='symbol-α'>α</dt>
|
1804
1965
|
<dd>
|
1805
1966
|
<p id='_'>Definition 1</p>
|
1806
1967
|
</dd>
|
@@ -1809,31 +1970,34 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1809
1970
|
</sections>
|
1810
1971
|
</standard-document>
|
1811
1972
|
OUTPUT
|
1973
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1974
|
+
.to be_equivalent_to xmlpp(output)
|
1812
1975
|
end
|
1813
1976
|
|
1814
|
-
it "sorts symbols lists" do
|
1815
|
-
|
1816
|
-
|
1977
|
+
it "sorts symbols lists #2" do
|
1978
|
+
input = <<~INPUT
|
1979
|
+
#{ASCIIDOC_BLANK_HDR}
|
1817
1980
|
|
1818
|
-
|
1819
|
-
|
1981
|
+
[[L]]
|
1982
|
+
== Symbols and abbreviated terms
|
1820
1983
|
|
1821
|
-
|
1822
|
-
|
1823
|
-
|
1824
|
-
|
1825
|
-
|
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
|
1826
1989
|
INPUT
|
1990
|
+
output = <<~OUTPUT
|
1827
1991
|
#{BLANK_HDR}
|
1828
1992
|
<sections>
|
1829
1993
|
<definitions id='L' obligation="normative">
|
1830
1994
|
<title>Symbols and abbreviated terms</title>
|
1831
1995
|
<dl id='_'>
|
1832
|
-
<dt>x</dt>
|
1996
|
+
<dt id='symbol-x'>x</dt>
|
1833
1997
|
<dd>
|
1834
1998
|
<p id='_'>Definition 5</p>
|
1835
1999
|
</dd>
|
1836
|
-
<dt><stem type='MathML'>
|
2000
|
+
<dt id='symbol-_-xm-'><stem type='MathML'>
|
1837
2001
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1838
2002
|
<msub>
|
1839
2003
|
<mrow>
|
@@ -1848,7 +2012,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1848
2012
|
<dd>
|
1849
2013
|
<p id='_'>Definition 4</p>
|
1850
2014
|
</dd>
|
1851
|
-
<dt><stem type='MathML'>
|
2015
|
+
<dt id='symbol-_-x1-'><stem type='MathML'>
|
1852
2016
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1853
2017
|
<msub>
|
1854
2018
|
<mrow>
|
@@ -1863,11 +2027,11 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1863
2027
|
<dd>
|
1864
2028
|
<p id='_'>Definition 3</p>
|
1865
2029
|
</dd>
|
1866
|
-
<dt>xa</dt>
|
2030
|
+
<dt id='symbol-xa'>xa</dt>
|
1867
2031
|
<dd>
|
1868
2032
|
<p id='_'>Definition 2</p>
|
1869
2033
|
</dd>
|
1870
|
-
<dt>
|
2034
|
+
<dt id='symbol-_-α-'>
|
1871
2035
|
<stem type='MathML'>
|
1872
2036
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1873
2037
|
<mi>α</mi>
|
@@ -1882,10 +2046,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1882
2046
|
</sections>
|
1883
2047
|
</standard-document>
|
1884
2048
|
OUTPUT
|
2049
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2050
|
+
.to be_equivalent_to xmlpp(output)
|
1885
2051
|
end
|
1886
2052
|
|
1887
2053
|
it "moves inherit macros to correct location" do
|
1888
|
-
|
2054
|
+
input = <<~INPUT
|
1889
2055
|
#{ASCIIDOC_BLANK_HDR}
|
1890
2056
|
|
1891
2057
|
== Clause
|
@@ -1920,6 +2086,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1920
2086
|
|
1921
2087
|
|
1922
2088
|
INPUT
|
2089
|
+
output = <<~OUTPUT
|
1923
2090
|
#{BLANK_HDR}
|
1924
2091
|
<sections>
|
1925
2092
|
<clause id='_' inline-header='false' obligation='normative'>
|
@@ -1962,74 +2129,79 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1962
2129
|
</sections>
|
1963
2130
|
</standard-document>
|
1964
2131
|
OUTPUT
|
2132
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2133
|
+
.to be_equivalent_to xmlpp(output)
|
1965
2134
|
end
|
1966
2135
|
|
1967
2136
|
it "moves %beforeclause admonitions to right position" do
|
1968
|
-
|
1969
|
-
|
2137
|
+
input = <<~INPUT
|
2138
|
+
#{ASCIIDOC_BLANK_HDR}
|
1970
2139
|
|
1971
|
-
|
1972
|
-
|
2140
|
+
.Foreword
|
2141
|
+
Foreword
|
1973
2142
|
|
1974
|
-
|
1975
|
-
|
1976
|
-
|
1977
|
-
|
2143
|
+
[NOTE,beforeclauses=true]
|
2144
|
+
====
|
2145
|
+
Note which is very important
|
2146
|
+
====
|
1978
2147
|
|
1979
|
-
|
1980
|
-
|
2148
|
+
== Introduction
|
2149
|
+
Introduction
|
1981
2150
|
|
1982
|
-
|
1983
|
-
|
2151
|
+
== Scope
|
2152
|
+
Scope statement
|
1984
2153
|
|
1985
|
-
|
1986
|
-
|
1987
|
-
|
1988
|
-
|
2154
|
+
[IMPORTANT,beforeclauses=true]
|
2155
|
+
====
|
2156
|
+
Notice which is very important
|
2157
|
+
====
|
1989
2158
|
INPUT
|
1990
|
-
|
1991
|
-
|
1992
|
-
|
1993
|
-
|
1994
|
-
|
1995
|
-
|
1996
|
-
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2003
|
-
|
2004
|
-
|
2005
|
-
|
2006
|
-
|
2007
|
-
|
2008
|
-
|
2009
|
-
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2013
|
-
|
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>
|
2014
2184
|
OUTPUT
|
2185
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2186
|
+
.to be_equivalent_to xmlpp(output)
|
2015
2187
|
end
|
2016
2188
|
|
2017
2189
|
it "fixes illegal anchors" do
|
2018
2190
|
input = <<~INPUT
|
2019
|
-
|
2020
|
-
|
2021
|
-
|
2022
|
-
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
2026
|
-
|
2027
|
-
|
2028
|
-
|
2029
|
-
|
2030
|
-
|
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!>>
|
2031
2203
|
INPUT
|
2032
|
-
|
2204
|
+
output = <<~OUTPUT
|
2033
2205
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
2034
2206
|
<bibdata type='standard'>
|
2035
2207
|
<title language='en' format='text/plain'>Document title</title>
|
@@ -2067,25 +2239,40 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2067
2239
|
</bibliography>
|
2068
2240
|
</standard-document>
|
2069
2241
|
OUTPUT
|
2070
|
-
expect
|
2071
|
-
|
2072
|
-
|
2073
|
-
expect { Asciidoctor.convert(input, *OPTIONS) }
|
2074
|
-
|
2075
|
-
|
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
|
2076
2263
|
end
|
2077
2264
|
|
2078
2265
|
it "moves title footnotes to bibdata" do
|
2079
2266
|
input = <<~INPUT
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2083
|
-
|
2084
|
-
|
2085
|
-
|
2267
|
+
= Document title footnote:[ABC] footnote:[DEF]
|
2268
|
+
Author
|
2269
|
+
:docfile: test.adoc
|
2270
|
+
:nodoc:
|
2271
|
+
:novalid:
|
2272
|
+
:no-isobib:
|
2086
2273
|
|
2087
2274
|
INPUT
|
2088
|
-
|
2275
|
+
output = <<~OUTPUT
|
2089
2276
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
2090
2277
|
<bibdata type='standard'>
|
2091
2278
|
<title language='en' format='text/plain'>Document title</title>
|
@@ -2110,289 +2297,304 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2110
2297
|
<sections> </sections>
|
2111
2298
|
</standard-document>
|
2112
2299
|
OUTPUT
|
2300
|
+
expect(xmlpp(Asciidoctor.convert(input, *OPTIONS)))
|
2301
|
+
.to be_equivalent_to xmlpp(output)
|
2113
2302
|
end
|
2114
2303
|
|
2115
2304
|
it "converts UnitsML to MathML" do
|
2116
|
-
|
2117
|
-
|
2118
|
-
|
2119
|
-
|
2120
|
-
|
2121
|
-
|
2122
|
-
|
2123
|
-
|
2124
|
-
|
2125
|
-
|
2126
|
-
|
2127
|
-
|
2128
|
-
|
2129
|
-
|
2130
|
-
|
2131
|
-
|
2132
|
-
|
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
|
+
++++
|
2133
2322
|
INPUT
|
2323
|
+
output = <<~OUTPUT
|
2134
2324
|
#{BLANK_HDR}
|
2135
2325
|
<misc-container>
|
2136
|
-
|
2137
|
-
|
2138
|
-
|
2139
|
-
|
2140
|
-
|
2141
|
-
|
2142
|
-
|
2143
|
-
|
2144
|
-
|
2145
|
-
|
2146
|
-
|
2147
|
-
|
2148
|
-
|
2149
|
-
|
2150
|
-
|
2151
|
-
|
2152
|
-
|
2153
|
-
</mrow>
|
2154
|
-
<mrow>
|
2155
|
-
<mo>−</mo>
|
2156
|
-
<mn>2</mn>
|
2157
|
-
</mrow>
|
2158
|
-
</msup>
|
2159
|
-
</mrow>
|
2160
|
-
</math>
|
2161
|
-
</UnitSymbol>
|
2162
|
-
<RootUnits>
|
2163
|
-
<EnumeratedRootUnit unit='meter'/>
|
2164
|
-
<EnumeratedRootUnit unit='gram' prefix='k' powerNumerator='-2'/>
|
2165
|
-
</RootUnits>
|
2166
|
-
</Unit>
|
2167
|
-
</UnitSet>
|
2168
|
-
<DimensionSet>
|
2169
|
-
<Dimension xml:id='D_LM-2'>
|
2170
|
-
<Length symbol='L' powerNumerator='1'/>
|
2171
|
-
<Mass symbol='M' powerNumerator='-2'/>
|
2172
|
-
</Dimension>
|
2173
|
-
</DimensionSet>
|
2174
|
-
<PrefixSet>
|
2175
|
-
<Prefix prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
2176
|
-
<PrefixName xml:lang='en'>kilo</PrefixName>
|
2177
|
-
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
2178
|
-
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
2179
|
-
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
2180
|
-
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
2181
|
-
</Prefix>
|
2182
|
-
</PrefixSet>
|
2183
|
-
</UnitsML>
|
2184
|
-
</misc-container>
|
2185
|
-
<sections>
|
2186
|
-
<formula id='_'>
|
2187
|
-
<stem type='MathML'>
|
2188
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2189
|
-
<mrow>
|
2190
|
-
<mn>7</mn>
|
2191
|
-
<mo rspace='thickmathspace'>⁢</mo>
|
2192
|
-
<mrow xref='U_m.kg-2'>
|
2193
|
-
<mi mathvariant='normal'>m</mi>
|
2194
|
-
<mo rspace='thickmathspace'>⁢</mo>
|
2195
|
-
<msup>
|
2196
|
-
<mrow>
|
2197
|
-
<mi mathvariant='normal'>kg</mi>
|
2198
|
-
</mrow>
|
2199
|
-
<mrow>
|
2200
|
-
<mo>−</mo>
|
2201
|
-
<mn>2</mn>
|
2202
|
-
</mrow>
|
2203
|
-
</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>
|
2204
2343
|
</mrow>
|
2205
|
-
<
|
2206
|
-
|
2207
|
-
|
2208
|
-
<mrow xref='U_m.kg-2'>
|
2209
|
-
<mi mathvariant='normal'>m</mi>
|
2210
|
-
<mo rspace='thickmathspace'>⁢</mo>
|
2211
|
-
<msup>
|
2212
|
-
<mrow>
|
2213
|
-
<mi mathvariant='normal'>kg</mi>
|
2214
|
-
</mrow>
|
2215
|
-
<mrow>
|
2216
|
-
<mo>−</mo>
|
2217
|
-
<mn>2</mn>
|
2218
|
-
</mrow>
|
2219
|
-
</msup>
|
2344
|
+
<mrow>
|
2345
|
+
<mo>−</mo>
|
2346
|
+
<mn>2</mn>
|
2220
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>
|
2221
2388
|
</mrow>
|
2222
|
-
|
2223
|
-
|
2224
|
-
|
2225
|
-
|
2226
|
-
|
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>
|
2227
2417
|
OUTPUT
|
2418
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2419
|
+
.to be_equivalent_to xmlpp(output)
|
2228
2420
|
end
|
2229
2421
|
|
2230
2422
|
it "customises italicisation of MathML" do
|
2231
2423
|
input = <<~INPUT
|
2232
|
-
|
2233
|
-
|
2234
|
-
|
2235
|
-
|
2236
|
-
[stem]
|
2237
|
-
++++
|
2238
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2239
|
-
<mi>A</mi>
|
2240
|
-
<mo>+</mo>
|
2241
|
-
<mi>a</mi>
|
2242
|
-
<mo>+</mo>
|
2243
|
-
<mi>Α</mi>
|
2244
|
-
<mo>+</mo>
|
2245
|
-
<mi>α</mi>
|
2246
|
-
<mo>+</mo>
|
2247
|
-
<mi>AB</mi>
|
2248
|
-
<mstyle mathvariant="italic">
|
2249
|
-
<mrow>
|
2250
|
-
<mi>Α</mi>
|
2251
|
-
</mrow>
|
2252
|
-
</mstyle>
|
2253
|
-
</math>
|
2254
|
-
++++
|
2255
|
-
INPUT
|
2424
|
+
= Document title
|
2425
|
+
Author
|
2426
|
+
:stem:
|
2256
2427
|
|
2257
|
-
|
2258
|
-
|
2259
|
-
|
2260
|
-
|
2261
|
-
|
2262
|
-
|
2263
|
-
|
2264
|
-
|
2265
|
-
|
2266
|
-
|
2267
|
-
|
2268
|
-
|
2269
|
-
|
2270
|
-
<mo>+</mo>
|
2271
|
-
<mi>AB</mi>
|
2272
|
-
<mstyle mathvariant='italic'>
|
2273
|
-
<mrow>
|
2274
|
-
<mi>Α</mi>
|
2275
|
-
</mrow>
|
2276
|
-
</mstyle>
|
2277
|
-
</math>
|
2278
|
-
</stem>
|
2279
|
-
</formula>
|
2280
|
-
</sections>
|
2281
|
-
</standard-document>
|
2282
|
-
OUTPUT
|
2283
|
-
mock_mathml_italicise({ uppergreek: false, upperroman: true, lowergreek: true, lowerroman: true })
|
2284
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2285
|
-
#{BLANK_HDR}
|
2286
|
-
<sections>
|
2287
|
-
<formula id='_'>
|
2288
|
-
<stem type='MathML'>
|
2289
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2290
|
-
<mi>A</mi>
|
2291
|
-
<mo>+</mo>
|
2292
|
-
<mi>a</mi>
|
2293
|
-
<mo>+</mo>
|
2294
|
-
<mi mathvariant="normal">Α</mi>
|
2295
|
-
<mo>+</mo>
|
2296
|
-
<mi>α</mi>
|
2297
|
-
<mo>+</mo>
|
2298
|
-
<mi>AB</mi>
|
2299
|
-
<mstyle mathvariant='italic'>
|
2300
|
-
<mrow>
|
2301
|
-
<mi>Α</mi>
|
2302
|
-
</mrow>
|
2303
|
-
</mstyle>
|
2304
|
-
</math>
|
2305
|
-
</stem>
|
2306
|
-
</formula>
|
2307
|
-
</sections>
|
2308
|
-
</standard-document>
|
2309
|
-
OUTPUT
|
2310
|
-
mock_mathml_italicise({ uppergreek: true, upperroman: false, lowergreek: true, lowerroman: true })
|
2311
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2312
|
-
#{BLANK_HDR}
|
2313
|
-
<sections>
|
2314
|
-
<formula id='_'>
|
2315
|
-
<stem type='MathML'>
|
2316
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2317
|
-
<mi mathvariant="normal">A</mi>
|
2318
|
-
<mo>+</mo>
|
2319
|
-
<mi>a</mi>
|
2320
|
-
<mo>+</mo>
|
2321
|
-
<mi>Α</mi>
|
2322
|
-
<mo>+</mo>
|
2323
|
-
<mi>α</mi>
|
2324
|
-
<mo>+</mo>
|
2325
|
-
<mi>AB</mi>
|
2326
|
-
<mstyle mathvariant='italic'>
|
2327
|
-
<mrow>
|
2328
|
-
<mi>Α</mi>
|
2329
|
-
</mrow>
|
2330
|
-
</mstyle>
|
2331
|
-
</math>
|
2332
|
-
</stem>
|
2333
|
-
</formula>
|
2334
|
-
</sections>
|
2335
|
-
</standard-document>
|
2336
|
-
OUTPUT
|
2337
|
-
mock_mathml_italicise({ uppergreek: true, upperroman: true, lowergreek: false, lowerroman: true })
|
2338
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2339
|
-
#{BLANK_HDR}
|
2340
|
-
<sections>
|
2341
|
-
<formula id='_'>
|
2342
|
-
<stem type='MathML'>
|
2343
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2344
|
-
<mi>A</mi>
|
2345
|
-
<mo>+</mo>
|
2346
|
-
<mi>a</mi>
|
2347
|
-
<mo>+</mo>
|
2348
|
-
<mi>Α</mi>
|
2349
|
-
<mo>+</mo>
|
2350
|
-
<mi mathvariant="normal">α</mi>
|
2351
|
-
<mo>+</mo>
|
2352
|
-
<mi>AB</mi>
|
2353
|
-
<mstyle mathvariant='italic'>
|
2354
|
-
<mrow>
|
2355
|
-
<mi>Α</mi>
|
2356
|
-
</mrow>
|
2357
|
-
</mstyle>
|
2358
|
-
</math>
|
2359
|
-
</stem>
|
2360
|
-
</formula>
|
2361
|
-
</sections>
|
2362
|
-
</standard-document>
|
2363
|
-
OUTPUT
|
2364
|
-
mock_mathml_italicise({ uppergreek: true, upperroman: true, lowergreek: true, lowerroman: false })
|
2365
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2366
|
-
#{BLANK_HDR}
|
2367
|
-
<sections>
|
2368
|
-
<formula id='_'>
|
2369
|
-
<stem type='MathML'>
|
2370
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2371
|
-
<mi>A</mi>
|
2372
|
-
<mo>+</mo>
|
2373
|
-
<mi mathvariant="normal">a</mi>
|
2374
|
-
<mo>+</mo>
|
2375
|
-
<mi>Α</mi>
|
2376
|
-
<mo>+</mo>
|
2377
|
-
<mi>α</mi>
|
2378
|
-
<mo>+</mo>
|
2379
|
-
<mi>AB</mi>
|
2380
|
-
<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">
|
2381
2441
|
<mrow>
|
2382
|
-
|
2442
|
+
<mi>Α</mi>
|
2383
2443
|
</mrow>
|
2384
|
-
|
2385
|
-
|
2386
|
-
|
2387
|
-
|
2388
|
-
|
2389
|
-
|
2390
|
-
|
2391
|
-
|
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 })
|
2392
2594
|
end
|
2393
2595
|
|
2394
2596
|
it "process express_ref macro with existing bibliography" do
|
2395
|
-
|
2597
|
+
input = <<~INPUT
|
2396
2598
|
#{ASCIIDOC_BLANK_HDR}
|
2397
2599
|
== Clause
|
2398
2600
|
|
@@ -2412,49 +2614,52 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2412
2614
|
== Bibliography
|
2413
2615
|
* [[[D,E]]] F
|
2414
2616
|
INPUT
|
2415
|
-
|
2416
|
-
|
2417
|
-
|
2418
|
-
|
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
|
-
|
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>
|
2452
2655
|
</standard-document>
|
2453
2656
|
OUTPUT
|
2657
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2658
|
+
.to be_equivalent_to xmlpp(output)
|
2454
2659
|
end
|
2455
2660
|
|
2456
2661
|
it "process express_ref macro with no existing bibliography" do
|
2457
|
-
|
2662
|
+
input = <<~INPUT
|
2458
2663
|
#{ASCIIDOC_BLANK_HDR}
|
2459
2664
|
[[B]]
|
2460
2665
|
[type="express-schema"]
|
@@ -2468,6 +2673,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2468
2673
|
<<express-schema:B>>
|
2469
2674
|
<<express-schema:B1>>
|
2470
2675
|
INPUT
|
2676
|
+
output = <<~OUTPUT
|
2471
2677
|
#{BLANK_HDR}
|
2472
2678
|
<sections>
|
2473
2679
|
<clause id='B' type='express-schema' inline-header='false' obligation='normative'>
|
@@ -2499,16 +2705,20 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2499
2705
|
</bibliography>
|
2500
2706
|
</standard-document>
|
2501
2707
|
OUTPUT
|
2708
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2709
|
+
.to be_equivalent_to xmlpp(output)
|
2502
2710
|
end
|
2503
2711
|
|
2504
2712
|
private
|
2505
2713
|
|
2506
|
-
def mock_mathml_italicise(
|
2507
|
-
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)
|
2508
2717
|
end
|
2509
2718
|
|
2510
2719
|
def mock_iecbib_get_iec60050_103_01
|
2511
|
-
expect(Iecbib::IecBibliography).to receive(:get)
|
2720
|
+
expect(Iecbib::IecBibliography).to receive(:get)
|
2721
|
+
.with("IEC 60050-103", nil, { keep_year: true }) do
|
2512
2722
|
IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
|
2513
2723
|
<bibitem type="standard" id="IEC60050-103">
|
2514
2724
|
<title format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary</title>
|
@@ -2546,7 +2756,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2546
2756
|
end
|
2547
2757
|
|
2548
2758
|
def mock_iecbib_get_iec60050_102_01
|
2549
|
-
expect(Iecbib::IecBibliography).to receive(:get)
|
2759
|
+
expect(Iecbib::IecBibliography).to receive(:get)
|
2760
|
+
.with("IEC 60050-102", nil, { keep_year: true }) do
|
2550
2761
|
IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
|
2551
2762
|
<bibitem type="standard" id="IEC60050-102">
|
2552
2763
|
<title format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary</title>
|