metanorma-standoc 2.0.3 → 2.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/metanorma/standoc/base.rb +61 -22
- data/lib/metanorma/standoc/blocks.rb +3 -3
- data/lib/metanorma/standoc/cleanup_boilerplate.rb +3 -3
- data/lib/metanorma/standoc/cleanup_ref.rb +31 -2
- data/lib/metanorma/standoc/cleanup_ref_dl.rb +20 -16
- data/lib/metanorma/standoc/cleanup_section.rb +1 -1
- data/lib/metanorma/standoc/cleanup_terms_designations.rb +4 -2
- data/lib/metanorma/standoc/cleanup_xref.rb +70 -8
- data/lib/metanorma/standoc/converter.rb +1 -0
- data/lib/metanorma/standoc/inline.rb +21 -12
- data/lib/metanorma/standoc/isodoc.rng +63 -3
- data/lib/metanorma/standoc/macros.rb +13 -1
- data/lib/metanorma/standoc/macros_embed.rb +1 -1
- data/lib/metanorma/standoc/ref.rb +5 -6
- data/lib/metanorma/standoc/render.rb +7 -3
- data/lib/metanorma/standoc/table.rb +8 -10
- data/lib/metanorma/standoc/term_lookup_cleanup.rb +2 -1
- data/lib/metanorma/standoc/utils.rb +3 -1
- data/lib/metanorma/standoc/version.rb +1 -1
- data/spec/metanorma/base_spec.rb +1 -1
- data/spec/metanorma/cleanup_spec.rb +10 -10
- data/spec/metanorma/cleanup_terms_spec.rb +1 -1
- data/spec/metanorma/inline_spec.rb +31 -0
- data/spec/metanorma/macros_plantuml_spec.rb +41 -42
- data/spec/metanorma/macros_spec.rb +138 -2
- data/spec/metanorma/processor_spec.rb +17 -13
- data/spec/metanorma/refs_spec.rb +129 -2
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +45 -45
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +10 -10
- data/spec/vcr_cassettes/hide_refs.yml +39 -39
- data/spec/vcr_cassettes/isobib_get_123.yml +12 -12
- data/spec/vcr_cassettes/isobib_get_123_1.yml +23 -23
- data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +28 -28
- data/spec/vcr_cassettes/isobib_get_123_2001.yml +11 -11
- data/spec/vcr_cassettes/isobib_get_124.yml +12 -12
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +18 -18
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +75 -65
- metadata +2 -2
@@ -19,9 +19,7 @@ module Metanorma
|
|
19
19
|
xml.table **attr_code(table_attrs(node)) do |xml_table|
|
20
20
|
colgroup(node, xml_table)
|
21
21
|
table_name(node, xml_table)
|
22
|
-
%i(head body foot).reject
|
23
|
-
node.rows[tblsec].empty?
|
24
|
-
end
|
22
|
+
%i(head body foot).reject { |tblsec| node.rows[tblsec].empty? }
|
25
23
|
table_head_body_and_foot node, xml_table
|
26
24
|
end
|
27
25
|
end
|
@@ -50,12 +48,12 @@ module Metanorma
|
|
50
48
|
end
|
51
49
|
end
|
52
50
|
|
53
|
-
def table_cell1(cell
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
51
|
+
def table_cell1(cell)
|
52
|
+
if cell.style == :asciidoc
|
53
|
+
cell.content
|
54
|
+
else
|
55
|
+
cell.text
|
56
|
+
end
|
59
57
|
end
|
60
58
|
|
61
59
|
def table_cell(node, xml_tr, tblsec)
|
@@ -65,7 +63,7 @@ module Metanorma
|
|
65
63
|
cell_tag = "td"
|
66
64
|
cell_tag = "th" if tblsec == :head || node.style == :header
|
67
65
|
xml_tr.send cell_tag, **attr_code(cell_attributes) do |thd|
|
68
|
-
table_cell1(node
|
66
|
+
thd << table_cell1(node)
|
69
67
|
end
|
70
68
|
end
|
71
69
|
|
@@ -162,7 +162,8 @@ module Metanorma
|
|
162
162
|
def normalize_ref_id(term)
|
163
163
|
t = term.dup
|
164
164
|
t.xpath(".//index").map(&:remove)
|
165
|
-
Metanorma::Utils::to_ncname(t.text.downcase
|
165
|
+
Metanorma::Utils::to_ncname(t.text.strip.downcase
|
166
|
+
.gsub(/[[:space:]]+/, "-"))
|
166
167
|
end
|
167
168
|
|
168
169
|
def unique_text_id(text, prefix)
|
@@ -32,7 +32,9 @@ module Metanorma
|
|
32
32
|
doc = ::Nokogiri::XML.parse(NOKOHEAD)
|
33
33
|
fragment = doc.fragment("")
|
34
34
|
::Nokogiri::XML::Builder.with fragment, &block
|
35
|
-
fragment.to_xml(encoding: "US-ASCII", indent: 0
|
35
|
+
fragment.to_xml(encoding: "US-ASCII", indent: 0,
|
36
|
+
save_with: Nokogiri::XML::Node::SaveOptions::AS_XML)
|
37
|
+
.lines.map do |l|
|
36
38
|
l.gsub(/>\n$/, ">").gsub(/\s*\n$/m, " ").gsub("–", "\u0096")
|
37
39
|
.gsub("—", "\u0097").gsub("–", "\u0096")
|
38
40
|
.gsub("—", "\u0097")
|
data/spec/metanorma/base_spec.rb
CHANGED
@@ -1051,7 +1051,7 @@ QU1FOiB0ZXN0Cgo=
|
|
1051
1051
|
.new(:standoc, header_footer: true)
|
1052
1052
|
.doc_extract_attributes(node)
|
1053
1053
|
|
1054
|
-
expect(options
|
1054
|
+
expect(options[:font_manifest])
|
1055
1055
|
.to eq(node[Metanorma::Standoc::Base::FONTS_MANIFEST])
|
1056
1056
|
end
|
1057
1057
|
|
@@ -282,7 +282,7 @@ RSpec.describe Metanorma::Standoc do
|
|
282
282
|
</localityStack>
|
283
283
|
the reference,xyz</eref>
|
284
284
|
<eref type='inline' bibitemid='iso216' citeas='ISO 216'>
|
285
|
-
<localityStack>
|
285
|
+
<localityStack connective="and">
|
286
286
|
<locality type='whole'/>
|
287
287
|
<locality type='clause'>
|
288
288
|
<referenceFrom>3</referenceFrom>
|
@@ -298,7 +298,7 @@ RSpec.describe Metanorma::Standoc do
|
|
298
298
|
<referenceFrom>the reference</referenceFrom>
|
299
299
|
</locality>
|
300
300
|
</localityStack>
|
301
|
-
<localityStack>
|
301
|
+
<localityStack connective="and">
|
302
302
|
<locality type='whole'/>
|
303
303
|
<locality type='clause'>
|
304
304
|
<referenceFrom>3</referenceFrom>
|
@@ -1116,7 +1116,7 @@ RSpec.describe Metanorma::Standoc do
|
|
1116
1116
|
<dd>
|
1117
1117
|
<p id='_'>Definition 7</p>
|
1118
1118
|
</dd>
|
1119
|
-
<dt id="symbol-
|
1119
|
+
<dt id="symbol-n">
|
1120
1120
|
<stem type='MathML'>
|
1121
1121
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1122
1122
|
<mi>n</mi>
|
@@ -1178,7 +1178,7 @@ RSpec.describe Metanorma::Standoc do
|
|
1178
1178
|
<dd>
|
1179
1179
|
<p id='_'>Definition 5</p>
|
1180
1180
|
</dd>
|
1181
|
-
<dt id='symbol-
|
1181
|
+
<dt id='symbol-x-m'><stem type='MathML'>
|
1182
1182
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1183
1183
|
<msub>
|
1184
1184
|
<mrow>
|
@@ -1193,7 +1193,7 @@ RSpec.describe Metanorma::Standoc do
|
|
1193
1193
|
<dd>
|
1194
1194
|
<p id='_'>Definition 4</p>
|
1195
1195
|
</dd>
|
1196
|
-
<dt id='symbol-
|
1196
|
+
<dt id='symbol-x-1'><stem type='MathML'>
|
1197
1197
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1198
1198
|
<msub>
|
1199
1199
|
<mrow>
|
@@ -1212,7 +1212,7 @@ RSpec.describe Metanorma::Standoc do
|
|
1212
1212
|
<dd>
|
1213
1213
|
<p id='_'>Definition 2</p>
|
1214
1214
|
</dd>
|
1215
|
-
<dt id='symbol-
|
1215
|
+
<dt id='symbol-__x3b1_'>
|
1216
1216
|
<stem type='MathML'>
|
1217
1217
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1218
1218
|
<mi>α</mi>
|
@@ -1829,13 +1829,13 @@ RSpec.describe Metanorma::Standoc do
|
|
1829
1829
|
</ext>
|
1830
1830
|
</bibdata>
|
1831
1831
|
<preface>
|
1832
|
-
<note id='
|
1832
|
+
<note id='_2cfe95f6-7ad6-aa57-8207-6f7d7928aa8e'>
|
1833
1833
|
<p id='_76d95913-a379-c60f-5144-1f09655cafa6'>
|
1834
1834
|
Note which is very important
|
1835
1835
|
<xref target='_76d95913-a379-c60f-5144-1f09655cafa6'/>
|
1836
1836
|
</p>
|
1837
1837
|
</note>
|
1838
|
-
<foreword id='
|
1838
|
+
<foreword id='_96b556cb-657c-985b-351b-ed70d8bd6fdd' obligation='informative'>
|
1839
1839
|
<title>Foreword</title>
|
1840
1840
|
<p id='_d2f825bf-3e18-6143-8777-34e59928d48c'>Foreword</p>
|
1841
1841
|
</foreword>
|
@@ -1845,7 +1845,7 @@ RSpec.describe Metanorma::Standoc do
|
|
1845
1845
|
</introduction>
|
1846
1846
|
</preface>
|
1847
1847
|
<sections>
|
1848
|
-
<admonition id='
|
1848
|
+
<admonition id='_6abb9105-854c-e79c-c351-73a56d6ca81f' type='important'>
|
1849
1849
|
<p id='_69ec375e-c992-5be3-76dd-a2311f9bb6cc'>Notice which is very important</p>
|
1850
1850
|
</admonition>
|
1851
1851
|
<clause id='_scope' type='scope' inline-header='false' obligation='normative'>
|
@@ -1858,7 +1858,7 @@ RSpec.describe Metanorma::Standoc do
|
|
1858
1858
|
input1 = xmlpp(Asciidoctor.convert(input, *OPTIONS))
|
1859
1859
|
.sub(/<p id='([^']+)'>(\s+)Note which is very important(\s+)<xref target='a'/,
|
1860
1860
|
"<p id='\\1'>\\2Note which is very important\\3<xref target='\\1'")
|
1861
|
-
expect(input1)
|
1861
|
+
expect(xmlpp(input1))
|
1862
1862
|
.to be_equivalent_to xmlpp(output)
|
1863
1863
|
end
|
1864
1864
|
|
@@ -728,7 +728,7 @@ RSpec.describe Metanorma::Standoc do
|
|
728
728
|
<terms id='_' obligation='normative'>
|
729
729
|
<title>Terms and definitions</title>
|
730
730
|
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
731
|
-
<term id='term-
|
731
|
+
<term id='term-t90'>
|
732
732
|
<preferred>
|
733
733
|
<letter-symbol>
|
734
734
|
<name>
|
@@ -444,6 +444,37 @@ RSpec.describe Metanorma::Standoc do
|
|
444
444
|
.to be_equivalent_to(output)
|
445
445
|
end
|
446
446
|
|
447
|
+
it "processes combinations of crossreferences" do
|
448
|
+
input = <<~INPUT
|
449
|
+
#{ASCIIDOC_BLANK_HDR}
|
450
|
+
== Section
|
451
|
+
|
452
|
+
<<ref1;to!ref2>>
|
453
|
+
<<from!ref1;to!ref2,text>>
|
454
|
+
<<ref1;ref2>>
|
455
|
+
<<ref1;and!ref2>>
|
456
|
+
<<ref1;or!ref2,text>>
|
457
|
+
<<from!ref1;to!ref2;and!ref3;to!ref4>>
|
458
|
+
INPUT
|
459
|
+
output = <<~OUTPUT
|
460
|
+
#{BLANK_HDR}
|
461
|
+
<sections>
|
462
|
+
<clause id="_" inline-header="false" obligation="normative">
|
463
|
+
<title>Section</title>
|
464
|
+
<p id="_"><xref target="ref1"><location target="ref1" connective="from"/><location target="ref2" connective="to"/></xref>
|
465
|
+
<xref target="ref1"><location target="ref1" connective="from"/><location target="ref2" connective="to"/>text</xref>
|
466
|
+
<xref target="ref1"><location target="ref1" connective="and"/><location target="ref2" connective="and"/></xref>
|
467
|
+
<xref target="ref1"><location target="ref1" connective="and"/><location target="ref2" connective="and"/></xref>
|
468
|
+
<xref target="ref1"><location target="ref1" connective="and"/><location target="ref2" connective="or"/>text</xref>
|
469
|
+
<xref target="ref1"><location target="ref1" connective="from"/><location target="ref2" connective="to"/><location target="ref3" connective="and"/><location target="ref4" connective="to"/></xref></p>
|
470
|
+
</clause>
|
471
|
+
</sections>
|
472
|
+
</standard-document>
|
473
|
+
OUTPUT
|
474
|
+
expect((strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
475
|
+
.to be_equivalent_to(output)
|
476
|
+
end
|
477
|
+
|
447
478
|
it "processes bibliographic anchors" do
|
448
479
|
input = <<~INPUT
|
449
480
|
#{ASCIIDOC_BLANK_HDR}
|
@@ -129,51 +129,50 @@ RSpec.describe Metanorma::Standoc do
|
|
129
129
|
expect(
|
130
130
|
xmlpp(
|
131
131
|
strip_guid(Asciidoctor.convert(input, *OPTIONS))
|
132
|
-
.gsub(%r{"
|
133
|
-
'"spec/assets/_.'),
|
132
|
+
.gsub(%r{"[^".]+spec/assets/lutaml/[^./"]+\.png},
|
133
|
+
'"spec/assets/_.png'),
|
134
134
|
),
|
135
|
-
)
|
136
|
-
.to(be_equivalent_to(xmlpp(output)))
|
135
|
+
).to(be_equivalent_to(xmlpp(output)))
|
137
136
|
end
|
137
|
+
end
|
138
138
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
end
|
139
|
+
context "when inline macro, path supplied as the second arg" do
|
140
|
+
let(:example_file) { fixtures_path("diagram_definitions.lutaml") }
|
141
|
+
let(:input) do
|
142
|
+
<<~TEXT
|
143
|
+
= Document title
|
144
|
+
Author
|
145
|
+
:docfile: test.adoc
|
146
|
+
:nodoc:
|
147
|
+
:novalid:
|
148
|
+
:no-isobib:
|
149
|
+
:imagesdir: spec/assets
|
150
|
+
:data-uri-image: false
|
151
|
+
|
152
|
+
lutaml_diagram::#{example_file}[]
|
153
|
+
|
154
|
+
TEXT
|
155
|
+
end
|
156
|
+
let(:output) do
|
157
|
+
<<~TEXT
|
158
|
+
#{BLANK_HDR}
|
159
|
+
<sections>
|
160
|
+
<figure id="_">
|
161
|
+
<image src="spec/assets/_.png" id="_" mimetype="image/png" height="auto" width="auto"/>
|
162
|
+
</figure>
|
163
|
+
</sections>
|
164
|
+
</standard-document>
|
165
|
+
TEXT
|
166
|
+
end
|
167
|
+
|
168
|
+
it "correctly renders input" do
|
169
|
+
expect(
|
170
|
+
xmlpp(
|
171
|
+
strip_guid(Asciidoctor.convert(input, *OPTIONS))
|
172
|
+
.gsub(%r{"[^".]+spec/assets/lutaml/[^./"]+\.png},
|
173
|
+
'"spec/assets/_.png'),
|
174
|
+
),
|
175
|
+
).to(be_equivalent_to(xmlpp(output)))
|
177
176
|
end
|
178
177
|
end
|
179
178
|
|
@@ -748,7 +748,7 @@ RSpec.describe Metanorma::Standoc do
|
|
748
748
|
<definitions id='clause1' obligation='normative'>
|
749
749
|
<title>Symbols and abbreviated terms</title>
|
750
750
|
<dl id='_'>
|
751
|
-
<dt id='symbol-
|
751
|
+
<dt id='symbol-__x230a_-x-__x230b_'>
|
752
752
|
<stem type='MathML'>
|
753
753
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
754
754
|
<mo>⌊</mo>
|
@@ -770,7 +770,7 @@ RSpec.describe Metanorma::Standoc do
|
|
770
770
|
function.
|
771
771
|
</p>
|
772
772
|
</dd>
|
773
|
-
<dt id='symbol-
|
773
|
+
<dt id='symbol-__x2308_-x-__x2309_'>
|
774
774
|
<stem type='MathML'>
|
775
775
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
776
776
|
<mo>⌈</mo>
|
@@ -1392,6 +1392,142 @@ RSpec.describe Metanorma::Standoc do
|
|
1392
1392
|
.to be_equivalent_to xmlpp(output)
|
1393
1393
|
end
|
1394
1394
|
|
1395
|
+
it "processes std-link macro" do
|
1396
|
+
VCR.use_cassette "std-link" do
|
1397
|
+
input = <<~INPUT
|
1398
|
+
#{ISOBIB_BLANK_HDR}
|
1399
|
+
|
1400
|
+
[[clause1]]
|
1401
|
+
== Clause
|
1402
|
+
|
1403
|
+
std-link:[ISO 131]
|
1404
|
+
std-link:[iso:std:iso:13485:en,droploc%clause=4,text]
|
1405
|
+
INPUT
|
1406
|
+
output = <<~OUTPUT
|
1407
|
+
#{BLANK_HDR}
|
1408
|
+
<sections>
|
1409
|
+
<clause id='clause1' inline-header='false' obligation='normative'>
|
1410
|
+
<title>Clause</title>
|
1411
|
+
<p id='_'>
|
1412
|
+
<eref type='inline' bibitemid='_' citeas='ISO 131'/>
|
1413
|
+
<eref type='inline' droploc='true' bibitemid='_' citeas='iso:std:iso:13485:en'>
|
1414
|
+
<localityStack>
|
1415
|
+
<locality type='clause'>
|
1416
|
+
<referenceFrom>4</referenceFrom>
|
1417
|
+
</locality>
|
1418
|
+
</localityStack>
|
1419
|
+
text
|
1420
|
+
</eref>
|
1421
|
+
</p>
|
1422
|
+
</clause>
|
1423
|
+
</sections>
|
1424
|
+
<bibliography>
|
1425
|
+
<references hidden='true' normative='true'>
|
1426
|
+
<bibitem id='_' type='standard' hidden="true">
|
1427
|
+
<fetched/>
|
1428
|
+
<title type='title-intro' format='text/plain' language='en' script='Latn'>Acoustics</title>
|
1429
|
+
<title type='title-main' format='text/plain' language='en' script='Latn'>Expression of physical and subjective magnitudes of sound or noise in air</title>
|
1430
|
+
<title type='main' format='text/plain' language='en' script='Latn'>
|
1431
|
+
Acoustics — Expression of physical and subjective magnitudes of sound
|
1432
|
+
or noise in air
|
1433
|
+
</title>
|
1434
|
+
<uri type='src'>https://www.iso.org/standard/3944.html</uri>
|
1435
|
+
<uri type='rss'>https://www.iso.org/contents/data/standard/00/39/3944.detail.rss</uri>
|
1436
|
+
<docidentifier type='ISO' primary='true'>ISO 131</docidentifier>
|
1437
|
+
<docidentifier type='URN'>urn:iso:std:iso:131:stage-95.99:ed-1:en</docidentifier>
|
1438
|
+
<docnumber>131</docnumber>
|
1439
|
+
<contributor>
|
1440
|
+
<role type='publisher'/>
|
1441
|
+
<organization>
|
1442
|
+
<name>International Organization for Standardization</name>
|
1443
|
+
<abbreviation>ISO</abbreviation>
|
1444
|
+
<uri>www.iso.org</uri>
|
1445
|
+
</organization>
|
1446
|
+
</contributor>
|
1447
|
+
<edition>1</edition>
|
1448
|
+
<language>en</language>
|
1449
|
+
<script>Latn</script>
|
1450
|
+
<status>
|
1451
|
+
<stage>95</stage>
|
1452
|
+
<substage>99</substage>
|
1453
|
+
</status>
|
1454
|
+
<copyright>
|
1455
|
+
<from>1979</from>
|
1456
|
+
<owner>
|
1457
|
+
<organization>
|
1458
|
+
<name>ISO</name>
|
1459
|
+
</organization>
|
1460
|
+
</owner>
|
1461
|
+
</copyright>
|
1462
|
+
<relation type='obsoletes'>
|
1463
|
+
<bibitem type='standard'>
|
1464
|
+
<formattedref format='text/plain'>ISO/R 357:1963</formattedref>
|
1465
|
+
</bibitem>
|
1466
|
+
</relation>
|
1467
|
+
<relation type='instance'>
|
1468
|
+
<bibitem type='standard'>
|
1469
|
+
<fetched/>
|
1470
|
+
<title type='title-intro' format='text/plain' language='en' script='Latn'>Acoustics</title>
|
1471
|
+
<title type='title-main' format='text/plain' language='en' script='Latn'>Expression of physical and subjective magnitudes of sound or noise in air</title>
|
1472
|
+
<title type='main' format='text/plain' language='en' script='Latn'>
|
1473
|
+
Acoustics — Expression of physical and subjective magnitudes of
|
1474
|
+
sound or noise in air
|
1475
|
+
</title>
|
1476
|
+
<uri type='src'>https://www.iso.org/standard/3944.html</uri>
|
1477
|
+
<uri type='rss'>https://www.iso.org/contents/data/standard/00/39/3944.detail.rss</uri>
|
1478
|
+
<docidentifier type='ISO' primary='true'>ISO 131:1979</docidentifier>
|
1479
|
+
<docidentifier type='URN'>urn:iso:std:iso:131:stage-95.99:ed-1:en</docidentifier>
|
1480
|
+
<docnumber>131</docnumber>
|
1481
|
+
<date type='published'>
|
1482
|
+
<on>1979-11</on>
|
1483
|
+
</date>
|
1484
|
+
<contributor>
|
1485
|
+
<role type='publisher'/>
|
1486
|
+
<organization>
|
1487
|
+
<name>International Organization for Standardization</name>
|
1488
|
+
<abbreviation>ISO</abbreviation>
|
1489
|
+
<uri>www.iso.org</uri>
|
1490
|
+
</organization>
|
1491
|
+
</contributor>
|
1492
|
+
<edition>1</edition>
|
1493
|
+
<language>en</language>
|
1494
|
+
<script>Latn</script>
|
1495
|
+
<status>
|
1496
|
+
<stage>95</stage>
|
1497
|
+
<substage>99</substage>
|
1498
|
+
</status>
|
1499
|
+
<copyright>
|
1500
|
+
<from>1979</from>
|
1501
|
+
<owner>
|
1502
|
+
<organization>
|
1503
|
+
<name>ISO</name>
|
1504
|
+
</organization>
|
1505
|
+
</owner>
|
1506
|
+
</copyright>
|
1507
|
+
<relation type='obsoletes'>
|
1508
|
+
<bibitem type='standard'>
|
1509
|
+
<formattedref format='text/plain'>ISO/R 357:1963</formattedref>
|
1510
|
+
</bibitem>
|
1511
|
+
</relation>
|
1512
|
+
<place>Geneva</place>
|
1513
|
+
</bibitem>
|
1514
|
+
</relation>
|
1515
|
+
<place>Geneva</place>
|
1516
|
+
</bibitem>
|
1517
|
+
<bibitem id='_' hidden="true">
|
1518
|
+
<formattedref format='application/x-isodoc+xml'/>
|
1519
|
+
<docidentifier type='ISO'>iso:std:iso:13485:en</docidentifier>
|
1520
|
+
<docnumber>13485:en</docnumber>
|
1521
|
+
</bibitem>
|
1522
|
+
</references>
|
1523
|
+
</bibliography>
|
1524
|
+
</standard-document>
|
1525
|
+
OUTPUT
|
1526
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))
|
1527
|
+
.gsub(%r{ bibitemid="_[^"]+"}, ' bibitemid="_"')))
|
1528
|
+
.to be_equivalent_to xmlpp(output)
|
1529
|
+
end
|
1530
|
+
end
|
1395
1531
|
|
1396
1532
|
describe "term inline macros" do
|
1397
1533
|
subject(:convert) do
|
@@ -23,13 +23,16 @@ RSpec.describe Metanorma::Standoc::Processor do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "generates IsoDoc XML from a blank document" do
|
26
|
-
|
26
|
+
input = <<~INPUT
|
27
27
|
#{ASCIIDOC_BLANK_HDR}
|
28
28
|
INPUT
|
29
|
+
output = <<~"OUTPUT"
|
29
30
|
#{BLANK_HDR}
|
30
31
|
<sections/>
|
31
32
|
</iso-standard>
|
32
33
|
OUTPUT
|
34
|
+
expect(processor.input_to_isodoc(input, "test"))
|
35
|
+
.to be_equivalent_to output
|
33
36
|
end
|
34
37
|
|
35
38
|
it "generates HTML from IsoDoc XML" do
|
@@ -45,16 +48,17 @@ RSpec.describe Metanorma::Standoc::Processor do
|
|
45
48
|
</sections>
|
46
49
|
</iso-standard>
|
47
50
|
INPUT
|
48
|
-
expect(File.read("test.html", encoding: "utf-8")
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
51
|
+
expect(File.read("test.html", encoding: "utf-8")
|
52
|
+
.gsub(%r{^.*<main}m, "<main")
|
53
|
+
.gsub(%r{</main>.*}m, "</main>"))
|
54
|
+
.to be_equivalent_to <<~"OUTPUT"
|
55
|
+
<main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
|
56
|
+
<p class="zzSTDTitle1"></p>
|
57
|
+
<div id="H"><h1>Terms, Definitions, Symbols and Abbreviated Terms</h1><h2 class="TermNum" id="J"></h2>
|
58
|
+
<p class="Terms" style="text-align:left;">Term2</p>
|
59
|
+
</div>
|
60
|
+
</main>
|
61
|
+
OUTPUT
|
58
62
|
end
|
59
63
|
|
60
64
|
it "generates HTML from IsoDoc XML" do
|
@@ -70,8 +74,8 @@ RSpec.describe Metanorma::Standoc::Processor do
|
|
70
74
|
</sections>
|
71
75
|
</iso-standard>
|
72
76
|
INPUT
|
73
|
-
expect(File.read("test.doc",
|
74
|
-
|
77
|
+
expect(File.read("test.doc", encoding: "utf-8"))
|
78
|
+
.to match(/Terms, Definitions, Symbols and Abbreviated Terms/)
|
75
79
|
end
|
76
80
|
|
77
81
|
it "generates XML from IsoDoc XML" do
|