metanorma-standoc 1.4.0 → 1.4.1
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 +2 -2
- data/lib/asciidoctor/standoc/biblio.rng +1 -1
- data/lib/asciidoctor/standoc/blocks.rb +25 -95
- data/lib/asciidoctor/standoc/blocks_notes.rb +89 -0
- data/lib/asciidoctor/standoc/cleanup.rb +10 -6
- data/lib/asciidoctor/standoc/cleanup_inline.rb +1 -1
- data/lib/asciidoctor/standoc/cleanup_ref.rb +45 -0
- data/lib/asciidoctor/standoc/isodoc.rng +427 -0
- data/lib/asciidoctor/standoc/lists.rb +12 -12
- data/lib/asciidoctor/standoc/macros_yaml2text.rb +32 -15
- data/lib/asciidoctor/standoc/ref.rb +71 -29
- data/lib/asciidoctor/standoc/reqt.rb +11 -6
- data/lib/asciidoctor/standoc/reqt.rng +23 -0
- data/lib/asciidoctor/standoc/table.rb +3 -2
- data/lib/asciidoctor/standoc/views/datamodel/model_representation.adoc.erb +1 -1
- data/lib/metanorma/standoc/version.rb +1 -1
- data/spec/asciidoctor-standoc/blocks_spec.rb +55 -26
- data/spec/asciidoctor-standoc/cleanup_spec.rb +1 -1
- data/spec/asciidoctor-standoc/datamodel/attributes_table_preprocessor_spec.rb +35 -0
- data/spec/asciidoctor-standoc/lists_spec.rb +7 -5
- data/spec/asciidoctor-standoc/macros_spec.rb +3 -2
- data/spec/asciidoctor-standoc/refs_spec.rb +250 -5
- data/spec/asciidoctor-standoc/table_spec.rb +2 -2
- data/spec/asciidoctor-standoc/validate_spec.rb +56 -0
- data/spec/assets/iso123.rxl +107 -0
- data/spec/examples/datamodel/blank_definition_profile.adoc +4 -0
- data/spec/examples/datamodel/models/models/{Signature copy.yml → SignatureBlankDefinition.yml} +2 -2
- data/spec/fixtures/macros_datamodel/blank_definition_profile.xml +51 -0
- metadata +7 -3
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
require "open3"
|
3
3
|
|
4
4
|
RSpec.describe Asciidoctor::Standoc do
|
5
|
-
it "processes pass blocks" do
|
5
|
+
it "processes format-specific pass blocks" do
|
6
6
|
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
7
7
|
#{ASCIIDOC_BLANK_HDR}
|
8
8
|
|
@@ -19,6 +19,26 @@ RSpec.describe Asciidoctor::Standoc do
|
|
19
19
|
OUTPUT
|
20
20
|
end
|
21
21
|
|
22
|
+
it "processes Metanorma XML pass blocks" do
|
23
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
24
|
+
#{ASCIIDOC_BLANK_HDR}
|
25
|
+
|
26
|
+
++++
|
27
|
+
<abc>X >
|
28
|
+
++++
|
29
|
+
|
30
|
+
++++
|
31
|
+
Y</abc>
|
32
|
+
++++
|
33
|
+
INPUT
|
34
|
+
#{BLANK_HDR}
|
35
|
+
<sections>
|
36
|
+
<abc>X > Y</abc>
|
37
|
+
</sections>
|
38
|
+
</standard-document>
|
39
|
+
OUTPUT
|
40
|
+
end
|
41
|
+
|
22
42
|
it "processes open blocks" do
|
23
43
|
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
24
44
|
#{ASCIIDOC_BLANK_HDR}
|
@@ -43,7 +63,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
43
63
|
#{ASCIIDOC_BLANK_HDR}
|
44
64
|
|
45
65
|
[[ABC]]
|
46
|
-
[stem%inequality]
|
66
|
+
[stem%inequality,number=3,keep-with-next=true,keep-lines-together=true]
|
47
67
|
++++
|
48
68
|
r = 1 %
|
49
69
|
r = 1 %
|
@@ -67,7 +87,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
67
87
|
INPUT
|
68
88
|
#{BLANK_HDR}
|
69
89
|
<sections>
|
70
|
-
<formula id="ABC" inequality="true">
|
90
|
+
<formula id="ABC" inequality="true" number="3" keep-with-next="true" keep-lines-together="true">
|
71
91
|
<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>
|
72
92
|
</formula>
|
73
93
|
|
@@ -404,7 +424,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
404
424
|
[[ABC]]
|
405
425
|
NOTE: This is a note
|
406
426
|
|
407
|
-
[NOTE,keep-separate=true]
|
427
|
+
[NOTE,keep-separate=true,number=7,subsequence=A,beforeclauses=true,keep-with-next=true,keep-lines-together=true,type=classified]
|
408
428
|
====
|
409
429
|
XYZ
|
410
430
|
====
|
@@ -416,14 +436,14 @@ RSpec.describe Asciidoctor::Standoc do
|
|
416
436
|
<p id="_">This is a note</p>
|
417
437
|
</note>
|
418
438
|
</foreword></preface><sections>
|
439
|
+
<note id='_' number="7" subsequence="A" keep-with-next="true" keep-lines-together="true" type="classified">
|
440
|
+
<p id='_'>XYZ</p>
|
441
|
+
</note>
|
419
442
|
<clause id="_" inline-header="false" obligation="normative">
|
420
443
|
<title>Clause 1</title>
|
421
444
|
<note id="ABC">
|
422
445
|
<p id="_">This is a note</p>
|
423
446
|
</note>
|
424
|
-
<note id='_'>
|
425
|
-
<p id='_'>XYZ</p>
|
426
|
-
</note>
|
427
447
|
</clause></sections>
|
428
448
|
|
429
449
|
</standard-document>
|
@@ -436,7 +456,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
436
456
|
#{ASCIIDOC_BLANK_HDR}
|
437
457
|
|
438
458
|
[[ABC]]
|
439
|
-
[alt=Literal]
|
459
|
+
[alt=Literal,keep-with-next=true,keep-lines-together=true]
|
440
460
|
....
|
441
461
|
<LITERAL>
|
442
462
|
FIGURATIVE
|
@@ -444,7 +464,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
444
464
|
INPUT
|
445
465
|
#{BLANK_HDR}
|
446
466
|
<sections>
|
447
|
-
<figure id="ABC">
|
467
|
+
<figure id="ABC" keep-with-next="true" keep-lines-together="true">
|
448
468
|
<pre alt="Literal" id="_"><LITERAL>
|
449
469
|
FIGURATIVE
|
450
470
|
</pre>
|
@@ -477,7 +497,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
477
497
|
#{ASCIIDOC_BLANK_HDR}
|
478
498
|
|
479
499
|
[[ABC]]
|
480
|
-
[CAUTION,type=Safety Precautions]
|
500
|
+
[CAUTION,type=Safety Precautions,keep-with-next="true",keep-lines-together="true"]
|
481
501
|
.Precautions
|
482
502
|
====
|
483
503
|
While werewolves are hardy community members, keep in mind the following dietary concerns:
|
@@ -489,7 +509,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
489
509
|
INPUT
|
490
510
|
#{BLANK_HDR}
|
491
511
|
<sections>
|
492
|
-
<admonition id="ABC" type="safety precautions"
|
512
|
+
<admonition id="ABC" type="safety precautions" keep-with-next="true" keep-lines-together="true">
|
513
|
+
<name>Precautions</name><p id="_">While werewolves are hardy community members, keep in mind the following dietary concerns:</p>
|
493
514
|
<ol id="_" type="arabic">
|
494
515
|
<li>
|
495
516
|
<p id="_">They are allergic to cinnamon.</p>
|
@@ -598,7 +619,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
598
619
|
#{ASCIIDOC_BLANK_HDR}
|
599
620
|
|
600
621
|
[[ABC]]
|
601
|
-
[example,subsequence=A]
|
622
|
+
[example,subsequence=A,keep-with-next=true,keep-lines-together=next]
|
602
623
|
.Title
|
603
624
|
====
|
604
625
|
This is an example
|
@@ -610,14 +631,20 @@ RSpec.describe Asciidoctor::Standoc do
|
|
610
631
|
====
|
611
632
|
This is another example
|
612
633
|
====
|
634
|
+
|
635
|
+
[example,number=3]
|
636
|
+
====
|
637
|
+
This is yet another example
|
638
|
+
====
|
613
639
|
INPUT
|
614
640
|
#{BLANK_HDR}
|
615
641
|
<sections>
|
616
|
-
<example id="ABC" subsequence="A">
|
642
|
+
<example id="ABC" subsequence="A" keep-with-next='true' keep-lines-together='next'>
|
617
643
|
<name>Title</name>
|
618
644
|
<p id="_">This is an example</p>
|
619
645
|
<p id="_">Amen</p></example>
|
620
646
|
<example id="_" unnumbered="true"><p id="_">This is another example</p></example>
|
647
|
+
<example id="_" number="3"><p id="_">This is yet another example</p></example>
|
621
648
|
</sections>
|
622
649
|
</standard-document>
|
623
650
|
OUTPUT
|
@@ -741,14 +768,14 @@ RSpec.describe Asciidoctor::Standoc do
|
|
741
768
|
#{ASCIIDOC_BLANK_HDR}
|
742
769
|
|
743
770
|
[[ABC]]
|
744
|
-
[%unnumbered]
|
771
|
+
[%unnumbered,number=3]
|
745
772
|
.Split-it-right sample divider
|
746
773
|
image::spec/examples/rice_images/rice_image1.png[alttext]
|
747
774
|
|
748
775
|
INPUT
|
749
776
|
#{BLANK_HDR}
|
750
777
|
<sections>
|
751
|
-
<figure id="ABC" unnumbered="true">
|
778
|
+
<figure id="ABC" unnumbered="true" number="3">
|
752
779
|
<name>Split-it-right sample divider</name>
|
753
780
|
<image src="spec/examples/rice_images/rice_image1.png" id="_" mimetype="image/png" height="auto" width="auto" alt="alttext"/>
|
754
781
|
</figure>
|
@@ -840,15 +867,15 @@ RSpec.describe Asciidoctor::Standoc do
|
|
840
867
|
INPUT
|
841
868
|
end
|
842
869
|
|
843
|
-
it "accepts
|
870
|
+
it "accepts attributes on paragraphs" do
|
844
871
|
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
845
872
|
#{ASCIIDOC_BLANK_HDR}
|
846
|
-
[align=right]
|
873
|
+
[align=right,keep-with-next=true,keep-lines-together=true]
|
847
874
|
This para is right-aligned.
|
848
875
|
INPUT
|
849
876
|
#{BLANK_HDR}
|
850
877
|
<sections>
|
851
|
-
<p align="right" id="_">This para is right-aligned.</p>
|
878
|
+
<p align="right" id="_" keep-with-next="true" keep-lines-together="true">This para is right-aligned.</p>
|
852
879
|
</sections>
|
853
880
|
</standard-document>
|
854
881
|
OUTPUT
|
@@ -859,14 +886,14 @@ RSpec.describe Asciidoctor::Standoc do
|
|
859
886
|
#{ASCIIDOC_BLANK_HDR}
|
860
887
|
|
861
888
|
[[ABC]]
|
862
|
-
[quote, ISO, "ISO7301,section 1"]
|
889
|
+
[quote, ISO, "ISO7301,section 1",align="right",keep-with-next=true,keep-lines-together=true]
|
863
890
|
____
|
864
891
|
Block quotation
|
865
892
|
____
|
866
893
|
INPUT
|
867
894
|
#{BLANK_HDR}
|
868
895
|
<sections>
|
869
|
-
<quote id="ABC">
|
896
|
+
<quote id="ABC" align="right" keep-with-next="true" keep-lines-together="true">
|
870
897
|
<source type="inline" bibitemid="ISO7301" citeas="">
|
871
898
|
<localityStack>
|
872
899
|
<locality type="section"><referenceFrom>1</referenceFrom></locality>
|
@@ -886,7 +913,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
886
913
|
|
887
914
|
[[ABC]]
|
888
915
|
.Caption
|
889
|
-
[source%unnumbered,ruby,filename=sourcecode1.rb]
|
916
|
+
[source%unnumbered,ruby,number=3,filename=sourcecode1.rb,keep-with-next=true,keep-lines-together=true]
|
890
917
|
--
|
891
918
|
puts "Hello, world."
|
892
919
|
%w{a b c}.each do |x|
|
@@ -896,7 +923,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
896
923
|
INPUT
|
897
924
|
#{BLANK_HDR}
|
898
925
|
<sections>
|
899
|
-
<sourcecode id="ABC" lang="ruby" filename="sourcecode1.rb" unnumbered="true"
|
926
|
+
<sourcecode id="ABC" lang="ruby" filename="sourcecode1.rb" unnumbered="true" number="3" keep-with-next="true" keep-lines-together="true">
|
927
|
+
<name>Caption</name>puts "Hello, world."
|
900
928
|
%w{a b c}.each do |x|
|
901
929
|
puts x
|
902
930
|
end</sourcecode>
|
@@ -1082,7 +1110,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1082
1110
|
input = <<~"INPUT"
|
1083
1111
|
#{ASCIIDOC_BLANK_HDR}
|
1084
1112
|
[[ABC]]
|
1085
|
-
[.requirement,subsequence="A",inherit="/ss/584/2015/level/1 & /ss/584/2015/level/2"]
|
1113
|
+
[.requirement,subsequence="A",inherit="/ss/584/2015/level/1 & /ss/584/2015/level/2",number=3,keep-with-next=true,keep-lines-together=true]
|
1086
1114
|
.Title
|
1087
1115
|
====
|
1088
1116
|
I recommend this
|
@@ -1091,7 +1119,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1091
1119
|
output = <<~"OUTPUT"
|
1092
1120
|
#{BLANK_HDR}
|
1093
1121
|
<sections>
|
1094
|
-
<requirement id="ABC" subsequence="A"
|
1122
|
+
<requirement id="ABC" subsequence="A" number="3" keep-with-next="true" keep-lines-together="true">
|
1123
|
+
<title>Title</title>
|
1095
1124
|
<inherit>/ss/584/2015/level/1 & /ss/584/2015/level/2</inherit>
|
1096
1125
|
<description><p id="_">I recommend this</p></description>
|
1097
1126
|
</requirement>
|
@@ -1169,7 +1198,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1169
1198
|
====
|
1170
1199
|
I recommend _this_.
|
1171
1200
|
|
1172
|
-
[.specification,type="tabular"]
|
1201
|
+
[.specification,type="tabular",keep-with-next=true,keep-lines-together=true]
|
1173
1202
|
--
|
1174
1203
|
This is the object of the recommendation:
|
1175
1204
|
|===
|
@@ -1217,7 +1246,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
1217
1246
|
<recommendation id="ABC" obligation="permission,recommendation" filename="reqt1.rq"><label>/ogc/recommendation/wfs/2</label><subject>user</subject>
|
1218
1247
|
<classification><tag>control-class</tag><value>Technical</value></classification><classification><tag>priority</tag><value>P0</value></classification><classification><tag>family</tag><value>System & Communications Protection</value></classification><classification><tag>family</tag><value>System and Communications Protocols</value></classification>
|
1219
1248
|
<description><p id="_">I recommend <em>this</em>.</p>
|
1220
|
-
</description><specification exclude="false" type="tabular"><p id="_">This is the object of the recommendation:</p><table id="_"> <tbody> <tr> <td align="left">Object</td> <td align="left">Value</td> </tr> <tr> <td align="left">Mission</td> <td align="left">Accomplished</td> </tr> </tbody></table></specification><description>
|
1249
|
+
</description><specification exclude="false" type="tabular" keep-with-next="true" keep-lines-together="true"><p id="_">This is the object of the recommendation:</p><table id="_"> <tbody> <tr> <td align="left">Object</td> <td align="left">Value</td> </tr> <tr> <td align="left">Mission</td> <td align="left">Accomplished</td> </tr> </tbody></table></specification><description>
|
1221
1250
|
<p id="_">As for the measurement targets,</p>
|
1222
1251
|
</description><measurement-target exclude="false"><p id="_">The measurement target shall be measured as:</p><formula id="_"> <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac><mi>r</mi><mn>1</mn></mfrac><mo>=</mo><mn>0</mn></math></stem></formula></measurement-target>
|
1223
1252
|
<verification exclude="false"><p id="_">The following code will be run for verification:</p><sourcecode lang="CoreRoot" id="_">CoreRoot(success): HttpResponse
|
@@ -982,7 +982,7 @@ end
|
|
982
982
|
<name>ISO</name>
|
983
983
|
</organization>
|
984
984
|
</contributor>
|
985
|
-
<note format="text/plain"
|
985
|
+
<note format="text/plain" type="ISO DATE">The standard is in press</note>
|
986
986
|
</bibitem>
|
987
987
|
</references>
|
988
988
|
</bibliography>
|
@@ -72,5 +72,40 @@ RSpec.describe Asciidoctor::Standoc::Datamodel::AttributesTablePreprocessor do
|
|
72
72
|
.to(be_equivalent_to(xmlpp(output)))
|
73
73
|
end
|
74
74
|
end
|
75
|
+
|
76
|
+
context 'when missing definition' do
|
77
|
+
let(:datamodel_file) do
|
78
|
+
examples_path('datamodel/blank_definition_profile.adoc')
|
79
|
+
end
|
80
|
+
let(:result_file) do
|
81
|
+
examples_path('datamodel/blank_definition_profile.xml')
|
82
|
+
end
|
83
|
+
let(:output) do
|
84
|
+
path = fixtures_path('macros_datamodel/blank_definition_profile.xml')
|
85
|
+
[
|
86
|
+
BLANK_HDR,
|
87
|
+
File.read(path)
|
88
|
+
].join("\n")
|
89
|
+
end
|
90
|
+
|
91
|
+
after do
|
92
|
+
%w[doc html xml err].each do |extention|
|
93
|
+
path = examples_path(
|
94
|
+
"datamodel/blank_definition_profile.#{extention}"
|
95
|
+
)
|
96
|
+
FileUtils.rm_f(path)
|
97
|
+
FileUtils.rm_f("blank_definition_profile.#{extention}")
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'correctly renders input' do
|
102
|
+
Asciidoctor.convert_file(datamodel_file,
|
103
|
+
backend: :standoc,
|
104
|
+
safe: :safe,
|
105
|
+
header_footer: true)
|
106
|
+
expect(xmlpp(strip_guid(File.read(result_file))))
|
107
|
+
.to(be_equivalent_to(xmlpp(output)))
|
108
|
+
end
|
109
|
+
end
|
75
110
|
end
|
76
111
|
end
|
@@ -73,6 +73,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
73
73
|
output = Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
74
74
|
#{ASCIIDOC_BLANK_HDR}
|
75
75
|
[[id]]
|
76
|
+
[keep-with-next=true,keep-lines-together=true]
|
76
77
|
* First
|
77
78
|
* Second
|
78
79
|
+
|
@@ -83,6 +84,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
83
84
|
--
|
84
85
|
|
85
86
|
[[id1]]
|
87
|
+
[keep-with-next=true,keep-lines-together=true]
|
86
88
|
[loweralpha]
|
87
89
|
. First
|
88
90
|
. Second
|
@@ -101,8 +103,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
101
103
|
[arabic]
|
102
104
|
... E
|
103
105
|
... F
|
104
|
-
|
105
|
-
|
106
|
+
[keep-with-next=true,keep-lines-together=true]
|
106
107
|
Notes1::
|
107
108
|
Notes:: Note 1.
|
108
109
|
+
|
@@ -113,14 +114,14 @@ RSpec.describe Asciidoctor::Standoc do
|
|
113
114
|
INPUT
|
114
115
|
expect(xmlpp(strip_guid(output))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
115
116
|
#{BLANK_HDR}
|
116
|
-
<sections><ul id="id">
|
117
|
+
<sections><ul id="id" keep-with-next="true" keep-lines-together="true">
|
117
118
|
<li>
|
118
119
|
<p id="_">First</p>
|
119
120
|
</li>
|
120
121
|
<li><p id="_">Second</p><p id="_">entry1</p>
|
121
122
|
<p id="_">entry2</p></li>
|
122
123
|
</ul>
|
123
|
-
<ol id="id1" type="alphabet">
|
124
|
+
<ol id="id1" type="alphabet" keep-with-next="true" keep-lines-together="true">
|
124
125
|
<li>
|
125
126
|
<p id="_">First</p>
|
126
127
|
</li>
|
@@ -160,7 +161,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
160
161
|
</li>
|
161
162
|
<li>
|
162
163
|
<p id="_">F</p>
|
163
|
-
|
164
|
+
|
165
|
+
<dl id="_" keep-with-next="true" keep-lines-together="true">
|
164
166
|
<dt>Notes1</dt>
|
165
167
|
<dd/>
|
166
168
|
<dt>Notes</dt>
|
@@ -223,7 +223,7 @@ OUTPUT
|
|
223
223
|
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
224
224
|
#{ASCIIDOC_BLANK_HDR}
|
225
225
|
|
226
|
-
[pseudocode,subsequence="A"]
|
226
|
+
[pseudocode,subsequence="A",number="3",keep-with-next=true,keep-lines-together=true]
|
227
227
|
[%unnumbered]
|
228
228
|
====
|
229
229
|
*A* +
|
@@ -234,7 +234,8 @@ OUTPUT
|
|
234
234
|
INPUT
|
235
235
|
#{BLANK_HDR}
|
236
236
|
<sections>
|
237
|
-
<figure id="_" subsequence='A' class="pseudocode" unnumbered="true"
|
237
|
+
<figure id="_" subsequence='A' class="pseudocode" unnumbered="true" number="3" keep-with-next="true" keep-lines-together="true">
|
238
|
+
<p id="_"> <strong>A</strong><br/>
|
238
239
|
<smallcap>B</smallcap></p>
|
239
240
|
<p id="_"> <em>C</em></p></figure>
|
240
241
|
</sections>
|
@@ -748,8 +748,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
748
748
|
<formattedref format='application/x-isodoc+xml'>
|
749
749
|
<em>Standard</em>
|
750
750
|
</formattedref>
|
751
|
-
<docidentifier>ISO/IEC TR 12382:1992</docidentifier>
|
752
|
-
<docnumber>12382:1992
|
751
|
+
<docidentifier type='ISO'>ISO/IEC TR 12382:1992</docidentifier>
|
752
|
+
<docnumber>12382:1992</docnumber>
|
753
753
|
</bibitem>
|
754
754
|
<bibitem id='iso124' type='standard'>
|
755
755
|
<fetched>#{Date.today}</fetched>
|
@@ -850,7 +850,7 @@ OUTPUT
|
|
850
850
|
<name>ISO</name>
|
851
851
|
</organization>
|
852
852
|
</contributor>
|
853
|
-
<note format="text/plain"
|
853
|
+
<note format="text/plain" type="ISO DATE">The standard is in press</note>
|
854
854
|
</bibitem>
|
855
855
|
<bibitem id="iso125" type="standard">
|
856
856
|
<title format="text/plain">Standard</title>
|
@@ -865,7 +865,7 @@ OUTPUT
|
|
865
865
|
<name>ISO</name>
|
866
866
|
</organization>
|
867
867
|
</contributor>
|
868
|
-
<note format="text/plain"
|
868
|
+
<note format="text/plain" type="ISO DATE">The standard is in press</note>
|
869
869
|
</bibitem>
|
870
870
|
<bibitem id='iso126' type='standard'>
|
871
871
|
<title format='text/plain'>Standard</title>
|
@@ -1244,7 +1244,252 @@ OUTPUT
|
|
1244
1244
|
OUTPUT
|
1245
1245
|
end
|
1246
1246
|
|
1247
|
-
|
1247
|
+
it "processes repository reference" do
|
1248
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp( <<~"OUTPUT")
|
1249
|
+
#{ISOBIB_BLANK_HDR}
|
1250
|
+
== Scope
|
1251
|
+
|
1252
|
+
<<iso123>>
|
1253
|
+
|
1254
|
+
<<iso123,clause=1>>
|
1255
|
+
|
1256
|
+
[bibliography]
|
1257
|
+
== Normative References
|
1258
|
+
|
1259
|
+
* [[[iso123,repo:(a/b,ISO 123)]]] _Standard_
|
1260
|
+
INPUT
|
1261
|
+
#{BLANK_HDR}
|
1262
|
+
<sections>
|
1263
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
1264
|
+
<title>Scope</title>
|
1265
|
+
<p id='_'>
|
1266
|
+
<eref type='inline' bibitemid='iso123' citeas='ISO 123'/>
|
1267
|
+
</p>
|
1268
|
+
<p id='_'>
|
1269
|
+
<eref type='inline' bibitemid='iso123' citeas='ISO 123'>
|
1270
|
+
<localityStack>
|
1271
|
+
<locality type='clause'>
|
1272
|
+
<referenceFrom>1</referenceFrom>
|
1273
|
+
</locality>
|
1274
|
+
</localityStack>
|
1275
|
+
</eref>
|
1276
|
+
</p>
|
1277
|
+
</clause>
|
1278
|
+
</sections>
|
1279
|
+
<bibliography>
|
1280
|
+
<references id='_' normative='true' obligation='informative'>
|
1281
|
+
<title>Normative References</title>
|
1282
|
+
<p id='_'>
|
1283
|
+
The following documents are referred to in the text in such a way that
|
1284
|
+
some or all of their content constitutes requirements of this document.
|
1285
|
+
For dated references, only the edition cited applies. For undated
|
1286
|
+
references, the latest edition of the referenced document (including any
|
1287
|
+
amendments) applies.
|
1288
|
+
</p>
|
1289
|
+
<bibitem id='iso123'>
|
1290
|
+
<formattedref format='application/x-isodoc+xml'>
|
1291
|
+
<em>Standard</em>
|
1292
|
+
</formattedref>
|
1293
|
+
<docidentifier type="ISO">ISO 123</docidentifier>
|
1294
|
+
<docidentifier type="repository">a/b</docidentifier>
|
1295
|
+
<docnumber>123</docnumber>
|
1296
|
+
</bibitem>
|
1297
|
+
</references>
|
1298
|
+
</bibliography>
|
1299
|
+
</standard-document>
|
1300
|
+
OUTPUT
|
1301
|
+
end
|
1302
|
+
|
1303
|
+
it "processes hyperlink reference, ingest RXL or XML if available" do
|
1304
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp( <<~"OUTPUT")
|
1305
|
+
#{ISOBIB_BLANK_HDR}
|
1306
|
+
== Scope
|
1307
|
+
|
1308
|
+
<<iso123>>
|
1309
|
+
|
1310
|
+
<<iso124,clause=1>>
|
1311
|
+
|
1312
|
+
<<iso123,anchor=xyz>>
|
1313
|
+
|
1314
|
+
<<iso124,clause=1,anchor=xyz>>
|
1315
|
+
|
1316
|
+
[bibliography]
|
1317
|
+
== Normative References
|
1318
|
+
|
1319
|
+
* [[[iso123,path:(spec/assets/iso123,ISO 123)]]] _Standard_
|
1320
|
+
* [[[iso124,path:(a/b.adoc,ISO 124)]]] _Standard_
|
1321
|
+
INPUT
|
1322
|
+
#{BLANK_HDR}
|
1323
|
+
<sections>
|
1324
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
1325
|
+
<title>Scope</title>
|
1326
|
+
<p id='_'>
|
1327
|
+
<eref type='inline' bibitemid='iso123' citeas='ISO 123 (all parts)'/>
|
1328
|
+
</p>
|
1329
|
+
<p id='_'>
|
1330
|
+
<eref type='inline' bibitemid='iso124' citeas='ISO 124'>
|
1331
|
+
<localityStack>
|
1332
|
+
<locality type='clause'>
|
1333
|
+
<referenceFrom>1</referenceFrom>
|
1334
|
+
</locality>
|
1335
|
+
</localityStack>
|
1336
|
+
</eref>
|
1337
|
+
</p>
|
1338
|
+
<p id='_'>
|
1339
|
+
<eref type='inline' bibitemid='iso123' citeas='ISO 123 (all parts)'>
|
1340
|
+
<localityStack>
|
1341
|
+
<locality type='anchor'>
|
1342
|
+
<referenceFrom>xyz</referenceFrom>
|
1343
|
+
</locality>
|
1344
|
+
</localityStack>
|
1345
|
+
</eref>
|
1346
|
+
</p>
|
1347
|
+
<p id='_'>
|
1348
|
+
<eref type='inline' bibitemid='iso124' citeas='ISO 124'>
|
1349
|
+
<localityStack>
|
1350
|
+
<locality type='clause'>
|
1351
|
+
<referenceFrom>1</referenceFrom>
|
1352
|
+
</locality>
|
1353
|
+
<locality type='anchor'>
|
1354
|
+
<referenceFrom>xyz</referenceFrom>
|
1355
|
+
</locality>
|
1356
|
+
</localityStack>
|
1357
|
+
</eref>
|
1358
|
+
</p>
|
1359
|
+
</clause>
|
1360
|
+
</sections>
|
1361
|
+
<bibliography>
|
1362
|
+
<references id='_' normative='true' obligation='informative'>
|
1363
|
+
<title>Normative References</title>
|
1364
|
+
<p id='_'>
|
1365
|
+
The following documents are referred to in the text in such a way that
|
1366
|
+
some or all of their content constitutes requirements of this document.
|
1367
|
+
For dated references, only the edition cited applies. For undated
|
1368
|
+
references, the latest edition of the referenced document (including any
|
1369
|
+
amendments) applies.
|
1370
|
+
</p>
|
1371
|
+
<bibitem id='iso123' type='standard'>
|
1372
|
+
<fetched>2020-06-12</fetched>
|
1373
|
+
<title type='title-intro' format='text/plain' language='en' script='Latn'>Rubber latex</title>
|
1374
|
+
<title type='title-main' format='text/plain' language='en' script='Latn'>Sampling</title>
|
1375
|
+
<title type='main' format='text/plain' language='en' script='Latn'>Rubber latex – Sampling</title>
|
1376
|
+
<title type='title-intro' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc</title>
|
1377
|
+
<title type='title-main' format='text/plain' language='fr' script='Latn'>Échantillonnage</title>
|
1378
|
+
<title type='main' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc – Échantillonnage</title>
|
1379
|
+
<uri type='src'>https://www.iso.org/standard/23281.html</uri>
|
1380
|
+
<uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
1381
|
+
<uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
1382
|
+
<uri type='citation'>spec/assets/iso123</uri>
|
1383
|
+
<docidentifier type='ISO'>ISO 123 (all parts)</docidentifier>
|
1384
|
+
<docnumber>123</docnumber>
|
1385
|
+
<date type='published'>
|
1386
|
+
<on>2001</on>
|
1387
|
+
</date>
|
1388
|
+
<contributor>
|
1389
|
+
<role type='publisher'/>
|
1390
|
+
<organization>
|
1391
|
+
<name>International Organization for Standardization</name>
|
1392
|
+
<abbreviation>ISO</abbreviation>
|
1393
|
+
<uri>www.iso.org</uri>
|
1394
|
+
</organization>
|
1395
|
+
</contributor>
|
1396
|
+
<edition>3</edition>
|
1397
|
+
<language>en</language>
|
1398
|
+
<language>fr</language>
|
1399
|
+
<script>Latn</script>
|
1400
|
+
<status>
|
1401
|
+
<stage>90</stage>
|
1402
|
+
<substage>93</substage>
|
1403
|
+
</status>
|
1404
|
+
<copyright>
|
1405
|
+
<from>2001</from>
|
1406
|
+
<owner>
|
1407
|
+
<organization>
|
1408
|
+
<name>ISO</name>
|
1409
|
+
</organization>
|
1410
|
+
</owner>
|
1411
|
+
</copyright>
|
1412
|
+
<relation type='obsoletes'>
|
1413
|
+
<bibitem type='standard'>
|
1414
|
+
<formattedref format='text/plain'>ISO 123:1985</formattedref>
|
1415
|
+
</bibitem>
|
1416
|
+
</relation>
|
1417
|
+
<relation type='instance'>
|
1418
|
+
<bibitem type='standard'>
|
1419
|
+
<fetched>2020-06-12</fetched>
|
1420
|
+
<title type='title-intro' format='text/plain' language='en' script='Latn'>Rubber latex</title>
|
1421
|
+
<title type='title-main' format='text/plain' language='en' script='Latn'>Sampling</title>
|
1422
|
+
<title type='main' format='text/plain' language='en' script='Latn'>Rubber latex – Sampling</title>
|
1423
|
+
<title type='title-intro' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc</title>
|
1424
|
+
<title type='title-main' format='text/plain' language='fr' script='Latn'>Échantillonnage</title>
|
1425
|
+
<title type='main' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc – Échantillonnage</title>
|
1426
|
+
<uri type='src'>https://www.iso.org/standard/23281.html</uri>
|
1427
|
+
<uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
1428
|
+
<uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
1429
|
+
<docidentifier type='ISO'>ISO 123:2001</docidentifier>
|
1430
|
+
<docnumber>123</docnumber>
|
1431
|
+
<date type='published'>
|
1432
|
+
<on>2001</on>
|
1433
|
+
</date>
|
1434
|
+
<contributor>
|
1435
|
+
<role type='publisher'/>
|
1436
|
+
<organization>
|
1437
|
+
<name>International Organization for Standardization</name>
|
1438
|
+
<abbreviation>ISO</abbreviation>
|
1439
|
+
<uri>www.iso.org</uri>
|
1440
|
+
</organization>
|
1441
|
+
</contributor>
|
1442
|
+
<edition>3</edition>
|
1443
|
+
<language>en</language>
|
1444
|
+
<language>fr</language>
|
1445
|
+
<script>Latn</script>
|
1446
|
+
<status>
|
1447
|
+
<stage>90</stage>
|
1448
|
+
<substage>93</substage>
|
1449
|
+
</status>
|
1450
|
+
<copyright>
|
1451
|
+
<from>2001</from>
|
1452
|
+
<owner>
|
1453
|
+
<organization>
|
1454
|
+
<name>ISO</name>
|
1455
|
+
</organization>
|
1456
|
+
</owner>
|
1457
|
+
</copyright>
|
1458
|
+
<relation type='obsoletes'>
|
1459
|
+
<bibitem type='standard'>
|
1460
|
+
<formattedref format='text/plain'>ISO 123:1985</formattedref>
|
1461
|
+
</bibitem>
|
1462
|
+
</relation>
|
1463
|
+
<place>Geneva</place>
|
1464
|
+
</bibitem>
|
1465
|
+
</relation>
|
1466
|
+
<relation type='instance'>
|
1467
|
+
<bibitem type='standard'>
|
1468
|
+
<formattedref format='text/plain'>ISO 123:1985</formattedref>
|
1469
|
+
</bibitem>
|
1470
|
+
</relation>
|
1471
|
+
<relation type='instance'>
|
1472
|
+
<bibitem type='standard'>
|
1473
|
+
<formattedref format='text/plain'>ISO 123:1974</formattedref>
|
1474
|
+
</bibitem>
|
1475
|
+
</relation>
|
1476
|
+
<place>Geneva</place>
|
1477
|
+
</bibitem>
|
1478
|
+
<bibitem id='iso124'>
|
1479
|
+
<formattedref format='application/x-isodoc+xml'>
|
1480
|
+
<em>Standard</em>
|
1481
|
+
</formattedref>
|
1482
|
+
<uri type='URI'>a/b</uri>
|
1483
|
+
<uri type='citation'>a/b</uri>
|
1484
|
+
<docidentifier type="ISO">ISO 124</docidentifier>
|
1485
|
+
<docnumber>124</docnumber>
|
1486
|
+
</bibitem>
|
1487
|
+
</references>
|
1488
|
+
</bibliography>
|
1489
|
+
</standard-document>
|
1490
|
+
OUTPUT
|
1491
|
+
end
|
1492
|
+
|
1248
1493
|
|
1249
1494
|
private
|
1250
1495
|
|