metanorma-standoc 1.10.5 → 1.10.6
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/lib/asciidoctor/standoc/base.rb +4 -0
- data/lib/asciidoctor/standoc/blocks.rb +3 -0
- data/lib/asciidoctor/standoc/cleanup_block.rb +5 -2
- data/lib/asciidoctor/standoc/cleanup_inline.rb +9 -3
- data/lib/asciidoctor/standoc/cleanup_reqt.rb +53 -16
- data/lib/asciidoctor/standoc/cleanup_terms.rb +1 -1
- data/lib/asciidoctor/standoc/converter.rb +1 -0
- data/lib/asciidoctor/standoc/isodoc.rng +17 -2
- data/lib/asciidoctor/standoc/macros_terms.rb +30 -15
- data/lib/asciidoctor/standoc/reqt.rb +2 -2
- data/lib/asciidoctor/standoc/terms.rb +9 -1
- data/lib/metanorma/standoc/version.rb +1 -1
- data/spec/asciidoctor/blocks_spec.rb +92 -2
- data/spec/asciidoctor/cleanup_blocks_spec.rb +1018 -0
- data/spec/asciidoctor/cleanup_spec.rb +63 -968
- data/spec/asciidoctor/macros_spec.rb +35 -24
- data/spec/asciidoctor/validate_spec.rb +23 -0
- data/spec/assets/xref_error.adoc +1 -0
- data/spec/fixtures/datamodel_description_sections_tree.xml +326 -326
- metadata +3 -2
@@ -3,177 +3,6 @@ require "relaton_iec"
|
|
3
3
|
require "fileutils"
|
4
4
|
|
5
5
|
RSpec.describe Asciidoctor::Standoc do
|
6
|
-
it "processes svgmap" do
|
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
|
-
====
|
39
|
-
INPUT
|
40
|
-
output = <<~OUTPUT
|
41
|
-
#{BLANK_HDR}
|
42
|
-
<sections>
|
43
|
-
<svgmap unnumbered='true' number='8' subsequence='A' keep-with-next='true' keep-lines-together='true'>
|
44
|
-
<target href='http://www.example.com'>
|
45
|
-
<xref target='ref1'>Computer</xref>
|
46
|
-
</target>
|
47
|
-
</svgmap>
|
48
|
-
<figure id='ref1'>
|
49
|
-
<name>SVG title</name>
|
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'>
|
51
|
-
<style/>
|
52
|
-
<image/>
|
53
|
-
<a xlink:href='#ref1'>
|
54
|
-
<rect x='123.28' y='273.93' class='st0' width='88.05' height='41.84'/>
|
55
|
-
</a>
|
56
|
-
<a xlink:href='mn://basic_attribute_schema'>
|
57
|
-
<rect x='324.69' y='450.52' class='st0' width='132.62' height='40.75'/>
|
58
|
-
</a>
|
59
|
-
<a xlink:href='mn://support_resource_schema'>
|
60
|
-
<rect x='324.69' y='528.36' class='st0' width='148.16' height='40.75'/>
|
61
|
-
</a>
|
62
|
-
</svg>
|
63
|
-
</figure>
|
64
|
-
<svgmap>
|
65
|
-
<figure id='ref2' unnumbered='true' number='8' subsequence='A' keep-with-next='true' keep-lines-together='true'>
|
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'>
|
67
|
-
<style/>
|
68
|
-
<image/>
|
69
|
-
<a xlink:href='#ref1'>
|
70
|
-
<rect x='123.28' y='273.93' class='st0' width='88.05' height='41.84'/>
|
71
|
-
</a>
|
72
|
-
<a xlink:href='http://www.example.com'>
|
73
|
-
<rect x='324.69' y='450.52' class='st0' width='132.62' height='40.75'/>
|
74
|
-
</a>
|
75
|
-
<a xlink:href='mn://support_resource_schema'>
|
76
|
-
<rect x='324.69' y='528.36' class='st0' width='148.16' height='40.75'/>
|
77
|
-
</a>
|
78
|
-
</svg>
|
79
|
-
</figure>
|
80
|
-
<target href='mn://support_resource_schema'>
|
81
|
-
<eref bibitemid='express_action_schema' citeas=''>
|
82
|
-
<localityStack>
|
83
|
-
<locality type='anchor'>
|
84
|
-
<referenceFrom>action_schema.basic</referenceFrom>
|
85
|
-
</locality>
|
86
|
-
</localityStack>
|
87
|
-
Coffee
|
88
|
-
</eref>
|
89
|
-
</target>
|
90
|
-
</svgmap>
|
91
|
-
</sections>
|
92
|
-
<bibliography>
|
93
|
-
<references hidden='true' normative='false'>
|
94
|
-
<bibitem id='express_action_schema' type='internal'>
|
95
|
-
<docidentifier type='repository'>express/action_schema</docidentifier>
|
96
|
-
</bibitem>
|
97
|
-
</references>
|
98
|
-
</bibliography>
|
99
|
-
</standard-document>
|
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)
|
105
|
-
end
|
106
|
-
|
107
|
-
it "processes markup in sourcecode" do
|
108
|
-
input = <<~INPUT
|
109
|
-
#{ASCIIDOC_BLANK_HDR}
|
110
|
-
|
111
|
-
[source]
|
112
|
-
----
|
113
|
-
<tag/>
|
114
|
-
----
|
115
|
-
|
116
|
-
[[A]]
|
117
|
-
[source]
|
118
|
-
----
|
119
|
-
var {{{*x*}}} : {{{<<A,recursive>>}}} <tag/>
|
120
|
-
----
|
121
|
-
|
122
|
-
|
123
|
-
INPUT
|
124
|
-
output = <<~OUTPUT
|
125
|
-
#{BLANK_HDR}
|
126
|
-
<sections>
|
127
|
-
<sourcecode id='_'><tag/></sourcecode>
|
128
|
-
<sourcecode id='A'>
|
129
|
-
var
|
130
|
-
<strong>x</strong>
|
131
|
-
:
|
132
|
-
<xref target='A'>recursive</xref>
|
133
|
-
<tag/>
|
134
|
-
</sourcecode>
|
135
|
-
</sections>
|
136
|
-
</standard-document>
|
137
|
-
OUTPUT
|
138
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
139
|
-
.to be_equivalent_to xmlpp(output)
|
140
|
-
end
|
141
|
-
|
142
|
-
it "processes markup in sourcecode with custom delimiters" do
|
143
|
-
input = <<~INPUT
|
144
|
-
= Document title
|
145
|
-
Author
|
146
|
-
:docfile: test.adoc
|
147
|
-
:nodoc:
|
148
|
-
:novalid:
|
149
|
-
:no-isobib:
|
150
|
-
:sourcecode-markup-start: [[[
|
151
|
-
:sourcecode-markup-end: ]]]
|
152
|
-
|
153
|
-
[[A]]
|
154
|
-
[source]
|
155
|
-
----
|
156
|
-
var [[[*x*]]] : [[[<<A,recursive>>]]]
|
157
|
-
----
|
158
|
-
|
159
|
-
|
160
|
-
INPUT
|
161
|
-
output = <<~OUTPUT
|
162
|
-
#{BLANK_HDR}
|
163
|
-
<sections>
|
164
|
-
<sourcecode id='A'>
|
165
|
-
var
|
166
|
-
<strong>x</strong>
|
167
|
-
:
|
168
|
-
<xref target='A'>recursive</xref>
|
169
|
-
</sourcecode>
|
170
|
-
</sections>
|
171
|
-
</standard-document>
|
172
|
-
OUTPUT
|
173
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
174
|
-
.to be_equivalent_to xmlpp(output)
|
175
|
-
end
|
176
|
-
|
177
6
|
it "applies smartquotes by default" do
|
178
7
|
input = <<~INPUT
|
179
8
|
#{ASCIIDOC_BLANK_HDR}
|
@@ -519,89 +348,6 @@ RSpec.describe Asciidoctor::Standoc do
|
|
519
348
|
.to be_equivalent_to xmlpp(output)
|
520
349
|
end
|
521
350
|
|
522
|
-
it "moves notes inside preceding blocks, if they are not at clause end, and the blocks are not delimited" do
|
523
|
-
input = <<~INPUT
|
524
|
-
#{ASCIIDOC_BLANK_HDR}
|
525
|
-
|
526
|
-
[stem]
|
527
|
-
++++
|
528
|
-
r = 1 %
|
529
|
-
r = 1 %
|
530
|
-
++++
|
531
|
-
|
532
|
-
NOTE: That formula does not do much
|
533
|
-
|
534
|
-
Indeed.
|
535
|
-
INPUT
|
536
|
-
output = <<~OUTPUT
|
537
|
-
#{BLANK_HDR}
|
538
|
-
<sections><formula id="_">
|
539
|
-
<stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>r</mi><mo>=</mo><mn>1</mn><mo>%</mo><mi>r</mi><mo>=</mo><mn>1</mn><mo>%</mo></math></stem>
|
540
|
-
<note id="_">
|
541
|
-
<p id="_">That formula does not do much</p>
|
542
|
-
</note></formula>
|
543
|
-
<p id="_">Indeed.</p></sections>
|
544
|
-
</standard-document>
|
545
|
-
OUTPUT
|
546
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
547
|
-
.to be_equivalent_to xmlpp(output)
|
548
|
-
end
|
549
|
-
|
550
|
-
it "does not move notes inside preceding blocks, if they are marked as keep-separate" do
|
551
|
-
input = <<~INPUT
|
552
|
-
#{ASCIIDOC_BLANK_HDR}
|
553
|
-
|
554
|
-
[stem]
|
555
|
-
++++
|
556
|
-
r = 1 %
|
557
|
-
r = 1 %
|
558
|
-
++++
|
559
|
-
|
560
|
-
[NOTE,keep-separate=true]
|
561
|
-
====
|
562
|
-
That formula does not do much
|
563
|
-
====
|
564
|
-
|
565
|
-
Indeed.
|
566
|
-
INPUT
|
567
|
-
output = <<~OUTPUT
|
568
|
-
#{BLANK_HDR}
|
569
|
-
<sections><formula id="_">
|
570
|
-
<stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>r</mi><mo>=</mo><mn>1</mn><mo>%</mo><mi>r</mi><mo>=</mo><mn>1</mn><mo>%</mo></math></stem></formula>
|
571
|
-
<note id="_">
|
572
|
-
<p id="_">That formula does not do much</p>
|
573
|
-
</note>
|
574
|
-
<p id="_">Indeed.</p></sections>
|
575
|
-
</standard-document>
|
576
|
-
OUTPUT
|
577
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
578
|
-
.to be_equivalent_to xmlpp(output)
|
579
|
-
end
|
580
|
-
|
581
|
-
it "does not move notes inside preceding blocks, if they are at clause end" do
|
582
|
-
input = <<~INPUT
|
583
|
-
#{ASCIIDOC_BLANK_HDR}
|
584
|
-
[source,ruby]
|
585
|
-
[1...x].each do |y|
|
586
|
-
puts y
|
587
|
-
end
|
588
|
-
|
589
|
-
NOTE: That loop does not do much
|
590
|
-
INPUT
|
591
|
-
output = <<~OUTPUT
|
592
|
-
#{BLANK_HDR}
|
593
|
-
<sections><sourcecode id="_" lang="ruby">[1...x].each do |y|
|
594
|
-
puts y
|
595
|
-
end</sourcecode>
|
596
|
-
<note id="_">
|
597
|
-
<p id="_">That loop does not do much</p>
|
598
|
-
</note></sections>
|
599
|
-
</standard-document>
|
600
|
-
OUTPUT
|
601
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
602
|
-
.to be_equivalent_to xmlpp(output)
|
603
|
-
end
|
604
|
-
|
605
351
|
it "converts xrefs to references into erefs" do
|
606
352
|
input = <<~INPUT
|
607
353
|
#{ASCIIDOC_BLANK_HDR}
|
@@ -650,7 +396,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
650
396
|
input = <<~INPUT
|
651
397
|
#{ASCIIDOC_BLANK_HDR}
|
652
398
|
<<iso216,whole,clause=3,example=9-11,locality:prelude="33 a",locality:entirety:the reference,xyz>>
|
653
|
-
<<iso216,whole,clause=3,example=9-11,locality:prelude=33,locality:entirety="the reference";whole,clause=3,example=9-11,locality:prelude=33,locality:
|
399
|
+
<<iso216,whole,clause=3,example=9-11,locality:prelude=33,locality:entirety="the reference";whole,clause=3,example=9-11,locality:prelude=33,locality:URL:the reference,xyz>>
|
654
400
|
<<iso216,_whole_>>
|
655
401
|
<<iso216,a _whole_ flagon>>
|
656
402
|
<<iso216,whole,clause=3,a _whole_ flagon>>
|
@@ -699,7 +445,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
699
445
|
<locality type='locality:prelude'>
|
700
446
|
<referenceFrom>33</referenceFrom>
|
701
447
|
</locality>
|
702
|
-
<locality type='locality:
|
448
|
+
<locality type='locality:URL'/>
|
703
449
|
</localityStack>
|
704
450
|
the reference,xyz
|
705
451
|
</eref>
|
@@ -829,469 +575,6 @@ RSpec.describe Asciidoctor::Standoc do
|
|
829
575
|
.to be_equivalent_to xmlpp(output)
|
830
576
|
end
|
831
577
|
|
832
|
-
it "inserts IDs into paragraphs" do
|
833
|
-
input = <<~INPUT
|
834
|
-
#{ASCIIDOC_BLANK_HDR}
|
835
|
-
Paragraph
|
836
|
-
INPUT
|
837
|
-
output = <<~OUTPUT
|
838
|
-
#{BLANK_HDR}
|
839
|
-
<sections>
|
840
|
-
<p id="_">Paragraph</p>
|
841
|
-
</sections>
|
842
|
-
</standard-document>
|
843
|
-
OUTPUT
|
844
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
845
|
-
.to be_equivalent_to xmlpp(output)
|
846
|
-
end
|
847
|
-
|
848
|
-
it "inserts IDs into notes" do
|
849
|
-
input = <<~INPUT
|
850
|
-
#{ASCIIDOC_BLANK_HDR}
|
851
|
-
[example]
|
852
|
-
====
|
853
|
-
NOTE: This note has no ID
|
854
|
-
====
|
855
|
-
INPUT
|
856
|
-
output = <<~OUTPUT
|
857
|
-
#{BLANK_HDR}
|
858
|
-
<sections>
|
859
|
-
<example id="_">
|
860
|
-
<note id="_">
|
861
|
-
<p id="_">This note has no ID</p>
|
862
|
-
</note>
|
863
|
-
</example>
|
864
|
-
</sections>
|
865
|
-
</standard-document>
|
866
|
-
OUTPUT
|
867
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
868
|
-
.to be_equivalent_to xmlpp(output)
|
869
|
-
end
|
870
|
-
|
871
|
-
it "moves table key inside table" do
|
872
|
-
input = <<~INPUT
|
873
|
-
#{ASCIIDOC_BLANK_HDR}
|
874
|
-
|===
|
875
|
-
|a |b |c
|
876
|
-
|===
|
877
|
-
|
878
|
-
Key
|
879
|
-
|
880
|
-
a:: b
|
881
|
-
|
882
|
-
|===
|
883
|
-
|a |b |c
|
884
|
-
|===
|
885
|
-
|
886
|
-
[%key]
|
887
|
-
a:: b
|
888
|
-
|
889
|
-
|===
|
890
|
-
|a |b |c
|
891
|
-
|===
|
892
|
-
|
893
|
-
a:: b
|
894
|
-
INPUT
|
895
|
-
output = <<~OUTPUT
|
896
|
-
#{BLANK_HDR}
|
897
|
-
<sections>
|
898
|
-
<table id='_'>
|
899
|
-
<tbody>
|
900
|
-
<tr>
|
901
|
-
<td valign='top' align='left'>a</td>
|
902
|
-
<td valign='top' align='left'>b</td>
|
903
|
-
<td valign='top' align='left'>c</td>
|
904
|
-
</tr>
|
905
|
-
</tbody>
|
906
|
-
<dl id='_' key='true'>
|
907
|
-
<dt>a</dt>
|
908
|
-
<dd>
|
909
|
-
<p id='_'>b</p>
|
910
|
-
</dd>
|
911
|
-
</dl>
|
912
|
-
</table>
|
913
|
-
<table id='_'>
|
914
|
-
<tbody>
|
915
|
-
<tr>
|
916
|
-
<td valign='top' align='left'>a</td>
|
917
|
-
<td valign='top' align='left'>b</td>
|
918
|
-
<td valign='top' align='left'>c</td>
|
919
|
-
</tr>
|
920
|
-
</tbody>
|
921
|
-
<dl id='_' key='true'>
|
922
|
-
<dt>a</dt>
|
923
|
-
<dd>
|
924
|
-
<p id='_'>b</p>
|
925
|
-
</dd>
|
926
|
-
</dl>
|
927
|
-
</table>
|
928
|
-
<table id='_'>
|
929
|
-
<tbody>
|
930
|
-
<tr>
|
931
|
-
<td valign='top' align='left'>a</td>
|
932
|
-
<td valign='top' align='left'>b</td>
|
933
|
-
<td valign='top' align='left'>c</td>
|
934
|
-
</tr>
|
935
|
-
</tbody>
|
936
|
-
</table>
|
937
|
-
<dl id='_'>
|
938
|
-
<dt>a</dt>
|
939
|
-
<dd>
|
940
|
-
<p id='_'>b</p>
|
941
|
-
</dd>
|
942
|
-
</dl>
|
943
|
-
</sections>
|
944
|
-
</standard-document>
|
945
|
-
OUTPUT
|
946
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
947
|
-
.to be_equivalent_to xmlpp(output)
|
948
|
-
end
|
949
|
-
|
950
|
-
it "processes headerrows attribute for table without header rows" do
|
951
|
-
input = <<~INPUT
|
952
|
-
#{ASCIIDOC_BLANK_HDR}
|
953
|
-
[headerrows=3]
|
954
|
-
|===
|
955
|
-
|a |b |c
|
956
|
-
|a |b |c
|
957
|
-
|a |b |c
|
958
|
-
|a |b |c
|
959
|
-
|===
|
960
|
-
INPUT
|
961
|
-
output = <<~OUTPUT
|
962
|
-
#{BLANK_HDR}
|
963
|
-
<sections>
|
964
|
-
<table id="_"><thead><tr>
|
965
|
-
<th valign="top" align="left">a</th>
|
966
|
-
<th valign="top" align="left">b</th>
|
967
|
-
<th valign="top" align="left">c</th>
|
968
|
-
</tr><tr>
|
969
|
-
<th valign="top" align="left">a</th>
|
970
|
-
<th valign="top" align="left">b</th>
|
971
|
-
<th valign="top" align="left">c</th>
|
972
|
-
</tr><tr>
|
973
|
-
<th valign="top" align="left">a</th>
|
974
|
-
<th valign="top" align="left">b</th>
|
975
|
-
<th valign="top" align="left">c</th>
|
976
|
-
</tr></thead>
|
977
|
-
<tbody>
|
978
|
-
<tr>
|
979
|
-
<td valign="top" align="left">a</td>
|
980
|
-
<td valign="top" align="left">b</td>
|
981
|
-
<td valign="top" align="left">c</td>
|
982
|
-
</tr>
|
983
|
-
</tbody>
|
984
|
-
</table>
|
985
|
-
</sections>
|
986
|
-
</standard-document>
|
987
|
-
OUTPUT
|
988
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
989
|
-
.to be_equivalent_to xmlpp(output)
|
990
|
-
end
|
991
|
-
|
992
|
-
it "processes headerrows attribute for table with header rows" do
|
993
|
-
input = <<~INPUT
|
994
|
-
#{ASCIIDOC_BLANK_HDR}
|
995
|
-
[headerrows=3]
|
996
|
-
|===
|
997
|
-
|a |b |c
|
998
|
-
|
999
|
-
|a |b |c
|
1000
|
-
|a |b |c
|
1001
|
-
|a |b |c
|
1002
|
-
|===
|
1003
|
-
INPUT
|
1004
|
-
output = <<~OUTPUT
|
1005
|
-
#{BLANK_HDR}
|
1006
|
-
<sections>
|
1007
|
-
<table id="_">
|
1008
|
-
<thead>
|
1009
|
-
<tr>
|
1010
|
-
<th valign="top" align="left">a</th>
|
1011
|
-
<th valign="top" align="left">b</th>
|
1012
|
-
<th valign="top" align="left">c</th>
|
1013
|
-
</tr>
|
1014
|
-
<tr>
|
1015
|
-
<th valign="top" align="left">a</th>
|
1016
|
-
<th valign="top" align="left">b</th>
|
1017
|
-
<th valign="top" align="left">c</th>
|
1018
|
-
</tr><tr>
|
1019
|
-
<th valign="top" align="left">a</th>
|
1020
|
-
<th valign="top" align="left">b</th>
|
1021
|
-
<th valign="top" align="left">c</th>
|
1022
|
-
</tr></thead>
|
1023
|
-
<tbody>
|
1024
|
-
|
1025
|
-
|
1026
|
-
<tr>
|
1027
|
-
<td valign="top" align="left">a</td>
|
1028
|
-
<td valign="top" align="left">b</td>
|
1029
|
-
<td valign="top" align="left">c</td>
|
1030
|
-
</tr>
|
1031
|
-
</tbody>
|
1032
|
-
</table>
|
1033
|
-
</sections>
|
1034
|
-
</standard-document>
|
1035
|
-
OUTPUT
|
1036
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1037
|
-
.to be_equivalent_to xmlpp(output)
|
1038
|
-
end
|
1039
|
-
|
1040
|
-
it "moves table notes inside table" do
|
1041
|
-
input = <<~INPUT
|
1042
|
-
#{ASCIIDOC_BLANK_HDR}
|
1043
|
-
|===
|
1044
|
-
|a |b |c
|
1045
|
-
|===
|
1046
|
-
|
1047
|
-
NOTE: Note 1
|
1048
|
-
|
1049
|
-
NOTE: Note 2
|
1050
|
-
INPUT
|
1051
|
-
output = <<~OUTPUT
|
1052
|
-
#{BLANK_HDR}
|
1053
|
-
<sections><table id="_">
|
1054
|
-
<tbody>
|
1055
|
-
<tr>
|
1056
|
-
<td valign="top" align="left">a</td>
|
1057
|
-
<td valign="top" align="left">b</td>
|
1058
|
-
<td valign="top" align="left">c</td>
|
1059
|
-
</tr>
|
1060
|
-
</tbody>
|
1061
|
-
<note id="_">
|
1062
|
-
<p id="_">Note 1</p>
|
1063
|
-
</note><note id="_">
|
1064
|
-
<p id="_">Note 2</p>
|
1065
|
-
</note></table>
|
1066
|
-
|
1067
|
-
</sections>
|
1068
|
-
</standard-document>
|
1069
|
-
OUTPUT
|
1070
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1071
|
-
.to be_equivalent_to xmlpp(output)
|
1072
|
-
end
|
1073
|
-
|
1074
|
-
it "moves formula key inside formula" do
|
1075
|
-
input = <<~INPUT
|
1076
|
-
#{ASCIIDOC_BLANK_HDR}
|
1077
|
-
[stem]
|
1078
|
-
++++
|
1079
|
-
Formula
|
1080
|
-
++++
|
1081
|
-
|
1082
|
-
Where,
|
1083
|
-
|
1084
|
-
a:: b
|
1085
|
-
|
1086
|
-
[stem]
|
1087
|
-
++++
|
1088
|
-
Formula
|
1089
|
-
++++
|
1090
|
-
|
1091
|
-
[%key]
|
1092
|
-
a:: b
|
1093
|
-
|
1094
|
-
[stem]
|
1095
|
-
++++
|
1096
|
-
Formula
|
1097
|
-
++++
|
1098
|
-
|
1099
|
-
a:: b
|
1100
|
-
INPUT
|
1101
|
-
output = <<~OUTPUT
|
1102
|
-
#{BLANK_HDR}
|
1103
|
-
<sections>
|
1104
|
-
<formula id='_'>
|
1105
|
-
<stem type='MathML'>
|
1106
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1107
|
-
<mi>F</mi>
|
1108
|
-
<mi>or</mi>
|
1109
|
-
<mi>μ</mi>
|
1110
|
-
<mi>l</mi>
|
1111
|
-
<mi>a</mi>
|
1112
|
-
</math>
|
1113
|
-
</stem>
|
1114
|
-
<dl id='_' key='true'>
|
1115
|
-
<dt>a</dt>
|
1116
|
-
<dd>
|
1117
|
-
<p id='_'>b</p>
|
1118
|
-
</dd>
|
1119
|
-
</dl>
|
1120
|
-
</formula>
|
1121
|
-
<formula id='_'>
|
1122
|
-
<stem type='MathML'>
|
1123
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1124
|
-
<mi>F</mi>
|
1125
|
-
<mi>or</mi>
|
1126
|
-
<mi>μ</mi>
|
1127
|
-
<mi>l</mi>
|
1128
|
-
<mi>a</mi>
|
1129
|
-
</math>
|
1130
|
-
</stem>
|
1131
|
-
<dl id='_' key='true'>
|
1132
|
-
<dt>a</dt>
|
1133
|
-
<dd>
|
1134
|
-
<p id='_'>b</p>
|
1135
|
-
</dd>
|
1136
|
-
</dl>
|
1137
|
-
</formula>
|
1138
|
-
<formula id='_'>
|
1139
|
-
<stem type='MathML'>
|
1140
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1141
|
-
<mi>F</mi>
|
1142
|
-
<mi>or</mi>
|
1143
|
-
<mi>μ</mi>
|
1144
|
-
<mi>l</mi>
|
1145
|
-
<mi>a</mi>
|
1146
|
-
</math>
|
1147
|
-
</stem>
|
1148
|
-
</formula>
|
1149
|
-
<dl id='_'>
|
1150
|
-
<dt>a</dt>
|
1151
|
-
<dd>
|
1152
|
-
<p id='_'>b</p>
|
1153
|
-
</dd>
|
1154
|
-
</dl>
|
1155
|
-
</sections>
|
1156
|
-
</standard-document>
|
1157
|
-
OUTPUT
|
1158
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1159
|
-
.to be_equivalent_to xmlpp(output)
|
1160
|
-
end
|
1161
|
-
|
1162
|
-
it "moves footnotes inside figures" do
|
1163
|
-
input = <<~INPUT
|
1164
|
-
#{ASCIIDOC_BLANK_HDR}
|
1165
|
-
.Figuretitle.footnote:[xyz]
|
1166
|
-
image::spec/examples/rice_images/rice_image1.png[]
|
1167
|
-
|
1168
|
-
footnote:[This is a footnote to a figure]
|
1169
|
-
|
1170
|
-
footnote:[This is another footnote to a figure]
|
1171
|
-
|
1172
|
-
A footnote:[This is a third footnote]
|
1173
|
-
INPUT
|
1174
|
-
output = <<~OUTPUT
|
1175
|
-
#{BLANK_HDR}
|
1176
|
-
<sections><figure id="_">
|
1177
|
-
<name>
|
1178
|
-
Figuretitle.
|
1179
|
-
<fn reference='1'>
|
1180
|
-
<p id='_'>xyz</p>
|
1181
|
-
</fn>
|
1182
|
-
</name>
|
1183
|
-
<image src="spec/examples/rice_images/rice_image1.png" id="_" mimetype="image/png" height="auto" width="auto"/>
|
1184
|
-
<fn reference="a">
|
1185
|
-
<p id="_">This is a footnote to a figure</p>
|
1186
|
-
</fn><fn reference="b">
|
1187
|
-
<p id="_">This is another footnote to a figure</p>
|
1188
|
-
</fn></figure>
|
1189
|
-
<p id='_'>
|
1190
|
-
A
|
1191
|
-
<fn reference='2'>
|
1192
|
-
<p id='_'>This is a third footnote</p>
|
1193
|
-
</fn>
|
1194
|
-
</p>
|
1195
|
-
</sections>
|
1196
|
-
</standard-document>
|
1197
|
-
OUTPUT
|
1198
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1199
|
-
.to be_equivalent_to xmlpp(output)
|
1200
|
-
end
|
1201
|
-
|
1202
|
-
it "moves figure key inside figure" do
|
1203
|
-
input = <<~INPUT
|
1204
|
-
#{ASCIIDOC_BLANK_HDR}
|
1205
|
-
image::spec/examples/rice_images/rice_image1.png[]
|
1206
|
-
|
1207
|
-
key:
|
1208
|
-
|
1209
|
-
a:: b
|
1210
|
-
|
1211
|
-
image::spec/examples/rice_images/rice_image1.png[]
|
1212
|
-
|
1213
|
-
[%key]
|
1214
|
-
a:: b
|
1215
|
-
|
1216
|
-
image::spec/examples/rice_images/rice_image1.png[]
|
1217
|
-
|
1218
|
-
a:: b
|
1219
|
-
INPUT
|
1220
|
-
output = <<~OUTPUT
|
1221
|
-
#{BLANK_HDR}
|
1222
|
-
<sections>
|
1223
|
-
<figure id='_'>
|
1224
|
-
<image src='spec/examples/rice_images/rice_image1.png' id='_' mimetype='image/png' height='auto' width='auto'/>
|
1225
|
-
<dl id='_' key='true'>
|
1226
|
-
<dt>a</dt>
|
1227
|
-
<dd>
|
1228
|
-
<p id='_'>b</p>
|
1229
|
-
</dd>
|
1230
|
-
</dl>
|
1231
|
-
</figure>
|
1232
|
-
<figure id='_'>
|
1233
|
-
<image src='spec/examples/rice_images/rice_image1.png' id='_' mimetype='image/png' height='auto' width='auto'/>
|
1234
|
-
<dl id='_' key='true'>
|
1235
|
-
<dt>a</dt>
|
1236
|
-
<dd>
|
1237
|
-
<p id='_'>b</p>
|
1238
|
-
</dd>
|
1239
|
-
</dl>
|
1240
|
-
</figure>
|
1241
|
-
<figure id='_'>
|
1242
|
-
<image src='spec/examples/rice_images/rice_image1.png' id='_' mimetype='image/png' height='auto' width='auto'/>
|
1243
|
-
</figure>
|
1244
|
-
<dl id='_'>
|
1245
|
-
<dt>a</dt>
|
1246
|
-
<dd>
|
1247
|
-
<p id='_'>b</p>
|
1248
|
-
</dd>
|
1249
|
-
</dl>
|
1250
|
-
</sections>
|
1251
|
-
</standard-document>
|
1252
|
-
OUTPUT
|
1253
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1254
|
-
.to be_equivalent_to xmlpp(output)
|
1255
|
-
end
|
1256
|
-
|
1257
|
-
it "processes subfigures" do
|
1258
|
-
input = <<~INPUT
|
1259
|
-
#{ASCIIDOC_BLANK_HDR}
|
1260
|
-
[[figureC-2]]
|
1261
|
-
.Stages of gelatinization
|
1262
|
-
====
|
1263
|
-
.Initial stages: No grains are fully gelatinized (ungelatinized starch granules are visible inside the kernels)
|
1264
|
-
image::spec/examples/rice_images/rice_image3_1.png[]
|
1265
|
-
|
1266
|
-
.Intermediate stages: Some fully gelatinized kernels are visible
|
1267
|
-
image::spec/examples/rice_images/rice_image3_2.png[]
|
1268
|
-
|
1269
|
-
.Final stages: All kernels are fully gelatinized
|
1270
|
-
image::spec/examples/rice_images/rice_image3_3.png[]
|
1271
|
-
====
|
1272
|
-
INPUT
|
1273
|
-
output = <<~OUTPUT
|
1274
|
-
#{BLANK_HDR}
|
1275
|
-
<sections>
|
1276
|
-
<figure id="figureC-2"><name>Stages of gelatinization</name><figure id="_">
|
1277
|
-
<name>Initial stages: No grains are fully gelatinized (ungelatinized starch granules are visible inside the kernels)</name>
|
1278
|
-
<image src="spec/examples/rice_images/rice_image3_1.png" id="_" mimetype="image/png" height="auto" width="auto"/>
|
1279
|
-
</figure>
|
1280
|
-
<figure id="_">
|
1281
|
-
<name>Intermediate stages: Some fully gelatinized kernels are visible</name>
|
1282
|
-
<image src="spec/examples/rice_images/rice_image3_2.png" id="_" mimetype="image/png" height="auto" width="auto"/>
|
1283
|
-
</figure>
|
1284
|
-
<figure id="_">
|
1285
|
-
<name>Final stages: All kernels are fully gelatinized</name>
|
1286
|
-
<image src="spec/examples/rice_images/rice_image3_3.png" id="_" mimetype="image/png" height="auto" width="auto"/>
|
1287
|
-
</figure></figure>
|
1288
|
-
</sections>
|
1289
|
-
</standard-document>
|
1290
|
-
OUTPUT
|
1291
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
1292
|
-
.to be_equivalent_to xmlpp(output)
|
1293
|
-
end
|
1294
|
-
|
1295
578
|
it "numbers bibliographic notes and footnotes sequentially" do
|
1296
579
|
input = <<~INPUT
|
1297
580
|
#{ASCIIDOC_BLANK_HDR}
|
@@ -1375,9 +658,6 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1375
658
|
<title>Terms and definitions</title>
|
1376
659
|
<p id="_">For the purposes of this document, the following terms and definitions apply.</p>
|
1377
660
|
<term id="term-term"><preferred>Term</preferred>
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
661
|
<termnote id="_">
|
1382
662
|
<p id="_">Note</p>
|
1383
663
|
</termnote><termnote id="_">
|
@@ -2038,7 +1318,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2038
1318
|
<dd>
|
2039
1319
|
<p id='_'>Definition 2</p>
|
2040
1320
|
</dd>
|
2041
|
-
<dt id='symbol
|
1321
|
+
<dt id='symbol-__x3b1_'>α</dt>
|
2042
1322
|
<dd>
|
2043
1323
|
<p id='_'>Definition 1</p>
|
2044
1324
|
</dd>
|
@@ -2108,7 +1388,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2108
1388
|
<dd>
|
2109
1389
|
<p id='_'>Definition 2</p>
|
2110
1390
|
</dd>
|
2111
|
-
<dt id='symbol-_
|
1391
|
+
<dt id='symbol-_-__x3b1_-'>
|
2112
1392
|
<stem type='MathML'>
|
2113
1393
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
2114
1394
|
<mi>α</mi>
|
@@ -2127,226 +1407,6 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2127
1407
|
.to be_equivalent_to xmlpp(output)
|
2128
1408
|
end
|
2129
1409
|
|
2130
|
-
it "moves metadata deflist to correct location" do
|
2131
|
-
input = <<~INPUT
|
2132
|
-
#{ASCIIDOC_BLANK_HDR}
|
2133
|
-
|
2134
|
-
== Clause
|
2135
|
-
|
2136
|
-
[.requirement,subsequence="A",inherit="/ss/584/2015/level/1 & /ss/584/2015/level/2"]
|
2137
|
-
====
|
2138
|
-
[%metadata]
|
2139
|
-
model:: ogc
|
2140
|
-
type:: class
|
2141
|
-
label:: http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules[*req/core*]
|
2142
|
-
subject:: Encoding of logical models
|
2143
|
-
inherit:: urn:iso:dis:iso:19156:clause:7.2.2
|
2144
|
-
inherit:: urn:iso:dis:iso:19156:clause:8
|
2145
|
-
inherit:: http://www.opengis.net/doc/IS/GML/3.2/clause/2.4
|
2146
|
-
inherit:: O&M Abstract model, OGC 10-004r3, clause D.3.4
|
2147
|
-
inherit:: http://www.opengis.net/spec/SWE/2.0/req/core/core-concepts-used
|
2148
|
-
inherit:: <<ref2>>
|
2149
|
-
inherit:: <<ref3>>
|
2150
|
-
classification:: priority:P0
|
2151
|
-
classification:: domain:Hydrology,Groundwater
|
2152
|
-
classification:: control-class:Technical
|
2153
|
-
obligation:: recommendation,requirement
|
2154
|
-
|
2155
|
-
I recommend this
|
2156
|
-
====
|
2157
|
-
INPUT
|
2158
|
-
output = <<~OUTPUT
|
2159
|
-
#{BLANK_HDR}
|
2160
|
-
<sections>
|
2161
|
-
<clause id='_' inline-header='false' obligation='normative'>
|
2162
|
-
<title>Clause</title>
|
2163
|
-
<requirement id='_' subsequence='A'>
|
2164
|
-
<label>
|
2165
|
-
<link target='http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules'>
|
2166
|
-
<strong>req/core</strong>
|
2167
|
-
</link>
|
2168
|
-
</label>
|
2169
|
-
<subject>Encoding of logical models</subject>
|
2170
|
-
<inherit>/ss/584/2015/level/1 & /ss/584/2015/level/2</inherit>
|
2171
|
-
<inherit>urn:iso:dis:iso:19156:clause:7.2.2</inherit>
|
2172
|
-
<inherit>urn:iso:dis:iso:19156:clause:8</inherit>
|
2173
|
-
<inherit>
|
2174
|
-
<link target='http://www.opengis.net/doc/IS/GML/3.2/clause/2.4'/>
|
2175
|
-
</inherit>
|
2176
|
-
<inherit>O&M Abstract model, OGC 10-004r3, clause D.3.4</inherit>
|
2177
|
-
<inherit>
|
2178
|
-
<link target='http://www.opengis.net/spec/SWE/2.0/req/core/core-concepts-used'/>
|
2179
|
-
</inherit>
|
2180
|
-
<inherit>
|
2181
|
-
<xref target='ref2'/>
|
2182
|
-
</inherit>
|
2183
|
-
<inherit>
|
2184
|
-
<xref target='ref3'/>
|
2185
|
-
</inherit>
|
2186
|
-
<classification>
|
2187
|
-
<tag>control-class</tag>
|
2188
|
-
<value>Technical</value>
|
2189
|
-
</classification>
|
2190
|
-
<classification>
|
2191
|
-
<tag>domain</tag>
|
2192
|
-
<value>Groundwater</value>
|
2193
|
-
</classification>
|
2194
|
-
<classification>
|
2195
|
-
<tag>domain</tag>
|
2196
|
-
<value>Hydrology</value>
|
2197
|
-
</classification>
|
2198
|
-
<classification>
|
2199
|
-
<tag>priority</tag>
|
2200
|
-
<value>P0</value>
|
2201
|
-
</classification>
|
2202
|
-
<description>
|
2203
|
-
<p id='_'>I recommend this</p>
|
2204
|
-
</description>
|
2205
|
-
</requirement>
|
2206
|
-
</clause>
|
2207
|
-
</sections>
|
2208
|
-
</standard-document>
|
2209
|
-
OUTPUT
|
2210
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2211
|
-
.to be_equivalent_to xmlpp(output)
|
2212
|
-
end
|
2213
|
-
|
2214
|
-
it "moves inherit macros to correct location" do
|
2215
|
-
input = <<~INPUT
|
2216
|
-
#{ASCIIDOC_BLANK_HDR}
|
2217
|
-
|
2218
|
-
== Clause
|
2219
|
-
|
2220
|
-
[.requirement,subsequence="A",inherit="/ss/584/2015/level/1 & /ss/584/2015/level/2"]
|
2221
|
-
.Title
|
2222
|
-
====
|
2223
|
-
inherit:[A]
|
2224
|
-
inherit:[B]
|
2225
|
-
I recommend this
|
2226
|
-
====
|
2227
|
-
|
2228
|
-
[.requirement,subsequence="A",classification="X:Y"]
|
2229
|
-
.Title
|
2230
|
-
====
|
2231
|
-
inherit:[A]
|
2232
|
-
I recommend this
|
2233
|
-
====
|
2234
|
-
|
2235
|
-
[.requirement,subsequence="A"]
|
2236
|
-
.Title
|
2237
|
-
====
|
2238
|
-
inherit:[A]
|
2239
|
-
I recommend this
|
2240
|
-
====
|
2241
|
-
|
2242
|
-
[.requirement,subsequence="A"]
|
2243
|
-
.Title
|
2244
|
-
====
|
2245
|
-
inherit:[A]
|
2246
|
-
====
|
2247
|
-
|
2248
|
-
|
2249
|
-
INPUT
|
2250
|
-
output = <<~OUTPUT
|
2251
|
-
#{BLANK_HDR}
|
2252
|
-
<sections>
|
2253
|
-
<clause id='_' inline-header='false' obligation='normative'>
|
2254
|
-
<title>Clause</title>
|
2255
|
-
<requirement id='_' subsequence='A'>
|
2256
|
-
<title>Title</title>
|
2257
|
-
<inherit>/ss/584/2015/level/1 & /ss/584/2015/level/2</inherit>
|
2258
|
-
<inherit>A</inherit>
|
2259
|
-
<inherit>B</inherit>
|
2260
|
-
<description>
|
2261
|
-
<p id='_'> I recommend this</p>
|
2262
|
-
</description>
|
2263
|
-
</requirement>
|
2264
|
-
<requirement id='_' subsequence='A'>
|
2265
|
-
<title>Title</title>
|
2266
|
-
<inherit>A</inherit>
|
2267
|
-
<classification>
|
2268
|
-
<tag>X</tag>
|
2269
|
-
<value>Y</value>
|
2270
|
-
</classification>
|
2271
|
-
<description>
|
2272
|
-
<p id='_'> I recommend this</p>
|
2273
|
-
</description>
|
2274
|
-
</requirement>
|
2275
|
-
<requirement id='_' subsequence='A'>
|
2276
|
-
<title>Title</title>
|
2277
|
-
<inherit>A</inherit>
|
2278
|
-
<description>
|
2279
|
-
<p id='_'> I recommend this</p>
|
2280
|
-
</description>
|
2281
|
-
</requirement>
|
2282
|
-
<requirement id='_' subsequence='A'>
|
2283
|
-
<title>Title</title>
|
2284
|
-
<inherit>A</inherit>
|
2285
|
-
<description>
|
2286
|
-
<p id='_'> </p>
|
2287
|
-
</description>
|
2288
|
-
</requirement>
|
2289
|
-
</clause>
|
2290
|
-
</sections>
|
2291
|
-
</standard-document>
|
2292
|
-
OUTPUT
|
2293
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2294
|
-
.to be_equivalent_to xmlpp(output)
|
2295
|
-
end
|
2296
|
-
|
2297
|
-
it "moves %beforeclause admonitions to right position" do
|
2298
|
-
input = <<~INPUT
|
2299
|
-
#{ASCIIDOC_BLANK_HDR}
|
2300
|
-
|
2301
|
-
.Foreword
|
2302
|
-
Foreword
|
2303
|
-
|
2304
|
-
[NOTE,beforeclauses=true]
|
2305
|
-
====
|
2306
|
-
Note which is very important
|
2307
|
-
====
|
2308
|
-
|
2309
|
-
== Introduction
|
2310
|
-
Introduction
|
2311
|
-
|
2312
|
-
== Scope
|
2313
|
-
Scope statement
|
2314
|
-
|
2315
|
-
[IMPORTANT,beforeclauses=true]
|
2316
|
-
====
|
2317
|
-
Notice which is very important
|
2318
|
-
====
|
2319
|
-
INPUT
|
2320
|
-
output = <<~OUTPUT
|
2321
|
-
#{BLANK_HDR}
|
2322
|
-
<preface>
|
2323
|
-
<note id='_'>
|
2324
|
-
<p id='_'>Note which is very important</p>
|
2325
|
-
</note>
|
2326
|
-
<foreword id='_' obligation='informative'>
|
2327
|
-
<title>Foreword</title>
|
2328
|
-
<p id='_'>Foreword</p>
|
2329
|
-
</foreword>
|
2330
|
-
<introduction id='_' obligation='informative'>
|
2331
|
-
<title>Introduction</title>
|
2332
|
-
<p id='_'>Introduction</p>
|
2333
|
-
</introduction>
|
2334
|
-
</preface>
|
2335
|
-
<sections>
|
2336
|
-
<admonition id='_' type='important'>
|
2337
|
-
<p id='_'>Notice which is very important</p>
|
2338
|
-
</admonition>
|
2339
|
-
<clause id='_' inline-header='false' obligation='normative' type="scope">
|
2340
|
-
<title>Scope</title>
|
2341
|
-
<p id='_'>Scope statement</p>
|
2342
|
-
</clause>
|
2343
|
-
</sections>
|
2344
|
-
</standard-document>
|
2345
|
-
OUTPUT
|
2346
|
-
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
2347
|
-
.to be_equivalent_to xmlpp(output)
|
2348
|
-
end
|
2349
|
-
|
2350
1410
|
it "fixes illegal anchors" do
|
2351
1411
|
input = <<~INPUT
|
2352
1412
|
#{ASCIIDOC_BLANK_HDR}
|
@@ -2361,6 +1421,17 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2361
1421
|
<<:a#b:>>
|
2362
1422
|
<</%ab>>
|
2363
1423
|
<<1!>>
|
1424
|
+
<<Löwe>>
|
1425
|
+
|
1426
|
+
[[Löwe]]
|
1427
|
+
.See <<Löwner2016>>
|
1428
|
+
----
|
1429
|
+
ABC
|
1430
|
+
----
|
1431
|
+
|
1432
|
+
[bibliography]
|
1433
|
+
== Bibliography
|
1434
|
+
* [[[Löwner2016,Löwner et al. 2016]]], Löwner, M.-O., Gröger, G., Benner, J., Biljecki, F., Nagel, C., 2016: *Proposal for a new LOD and multi-representation concept for CityGML*. In: Proceedings of the 11th 3D Geoinfo Conference 2016, ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Vol. IV-2/W1, 3–12. https://doi.org/10.5194/isprs-annals-IV-2-W1-3-2016
|
2364
1435
|
INPUT
|
2365
1436
|
output = <<~OUTPUT
|
2366
1437
|
<standard-document xmlns='https://www.metanorma.org/ns/standoc' type="semantic" version="#{Metanorma::Standoc::VERSION}">
|
@@ -2378,31 +1449,55 @@ RSpec.describe Asciidoctor::Standoc do
|
|
2378
1449
|
<doctype>article</doctype>
|
2379
1450
|
</ext>
|
2380
1451
|
</bibdata>
|
2381
|
-
|
2382
|
-
|
2383
|
-
|
2384
|
-
|
2385
|
-
|
2386
|
-
|
2387
|
-
|
2388
|
-
|
2389
|
-
|
2390
|
-
|
2391
|
-
|
2392
|
-
|
2393
|
-
|
2394
|
-
|
2395
|
-
|
2396
|
-
|
2397
|
-
|
2398
|
-
|
2399
|
-
|
2400
|
-
|
2401
|
-
|
1452
|
+
<sections>
|
1453
|
+
<clause id='a_b' inline-header='false' obligation='normative'>
|
1454
|
+
<title>A</title>
|
1455
|
+
<eref bibitemid='__ab' citeas=''/>
|
1456
|
+
<xref target='_'/>
|
1457
|
+
<xref target='_1'/>
|
1458
|
+
<xref target='_1_'/>
|
1459
|
+
<xref target='1#b'/>
|
1460
|
+
<xref target='_a#b_'/>
|
1461
|
+
<xref target='__ab'/>
|
1462
|
+
<xref target='_1_'/>
|
1463
|
+
<xref target='L__xf6_we'/>
|
1464
|
+
<sourcecode id='L__xf6_we'>
|
1465
|
+
<name>
|
1466
|
+
See
|
1467
|
+
<eref type='inline' bibitemid='L__xf6_wner2016' citeas='Löwner et al. 2016'/>
|
1468
|
+
</name>
|
1469
|
+
ABC
|
1470
|
+
</sourcecode>
|
1471
|
+
</clause>
|
1472
|
+
</sections>
|
1473
|
+
<bibliography>
|
1474
|
+
<references id='_bibliography' normative='false' obligation='informative'>
|
1475
|
+
<title>Bibliography</title>
|
1476
|
+
<bibitem id='L__xf6_wner2016'>
|
1477
|
+
<formattedref format='application/x-isodoc+xml'>
|
1478
|
+
Löwner, M.-O., Gröger, G., Benner, J., Biljecki, F., Nagel,
|
1479
|
+
C., 2016:
|
1480
|
+
<strong>Proposal for a new LOD and multi-representation concept for CityGML</strong>
|
1481
|
+
. In: Proceedings of the 11th 3D Geoinfo Conference 2016, ISPRS Annals
|
1482
|
+
of the Photogrammetry, Remote Sensing and Spatial Information
|
1483
|
+
Sciences, Vol. IV-2/W1, 3–12.
|
1484
|
+
<link target='https://doi.org/10.5194/isprs-annals-IV-2-W1-3-2016'/>
|
1485
|
+
</formattedref>
|
1486
|
+
<docidentifier>Löwner et al. 2016</docidentifier>
|
1487
|
+
<docnumber>2016</docnumber>
|
1488
|
+
</bibitem>
|
1489
|
+
</references>
|
1490
|
+
<references hidden='true' normative='false'>
|
1491
|
+
<bibitem id='__ab' type='internal'>
|
1492
|
+
<docidentifier type='repository'>//ab</docidentifier>
|
1493
|
+
</bibitem>
|
1494
|
+
</references>
|
1495
|
+
</bibliography>
|
1496
|
+
</standard-document>
|
2402
1497
|
OUTPUT
|
2403
|
-
expect(xmlpp(Asciidoctor.convert(input, *OPTIONS)
|
2404
|
-
.gsub(/<p id="_[^"]+">/, "").gsub("</p>", "")))
|
2405
|
-
.to be_equivalent_to(output)
|
1498
|
+
expect(strip_guid(xmlpp(Asciidoctor.convert(input, *OPTIONS)
|
1499
|
+
.gsub(/<p id="_[^"]+">/, "").gsub("</p>", ""))))
|
1500
|
+
.to be_equivalent_to(xmlpp(output))
|
2406
1501
|
expect { Asciidoctor.convert(input, *OPTIONS) }
|
2407
1502
|
.to output(%r{normalised identifier in <clause id="a_b" inline-header="false" obligation="normative"/> from a:b})
|
2408
1503
|
.to_stderr
|