isodoc 1.1.4 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/isodoc-yaml/i18n-en.yaml +4 -1
- data/lib/isodoc-yaml/i18n-fr.yaml +4 -1
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +4 -1
- data/lib/isodoc.rb +1 -0
- data/lib/isodoc/common.rb +0 -2
- data/lib/isodoc/convert.rb +33 -27
- data/lib/isodoc/function/blocks.rb +10 -22
- data/lib/isodoc/function/blocks_example_note.rb +14 -15
- data/lib/isodoc/function/cleanup.rb +5 -4
- data/lib/isodoc/function/inline.rb +6 -76
- data/lib/isodoc/function/references.rb +10 -9
- data/lib/isodoc/function/reqt.rb +12 -11
- data/lib/isodoc/function/section.rb +39 -54
- data/lib/isodoc/function/table.rb +1 -6
- data/lib/isodoc/function/terms.rb +13 -6
- data/lib/isodoc/function/to_word_html.rb +1 -0
- data/lib/isodoc/function/utils.rb +4 -3
- data/lib/isodoc/html_function/html.rb +0 -1
- data/lib/isodoc/{function/i18n.rb → i18n.rb} +37 -36
- data/lib/isodoc/metadata.rb +4 -3
- data/lib/isodoc/metadata_date.rb +1 -1
- data/lib/isodoc/presentation_function/block.rb +138 -0
- data/lib/isodoc/presentation_function/inline.rb +131 -0
- data/lib/isodoc/presentation_function/section.rb +46 -0
- data/lib/isodoc/presentation_xml_convert.rb +38 -5
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_function/body.rb +12 -8
- data/lib/isodoc/word_function/inline.rb +3 -1
- data/lib/isodoc/xref.rb +5 -3
- data/lib/isodoc/xref/xref_sect_gen.rb +3 -3
- data/spec/assets/i18n.yaml +12 -1
- data/spec/isodoc/blocks_spec.rb +1101 -147
- data/spec/isodoc/cleanup_spec.rb +2 -2
- data/spec/isodoc/footnotes_spec.rb +2 -2
- data/spec/isodoc/i18n_spec.rb +679 -110
- data/spec/isodoc/inline_spec.rb +323 -142
- data/spec/isodoc/lists_spec.rb +2 -2
- data/spec/isodoc/postproc_spec.rb +1311 -1333
- data/spec/isodoc/ref_spec.rb +181 -3
- data/spec/isodoc/section_spec.rb +508 -680
- data/spec/isodoc/table_spec.rb +155 -4
- data/spec/isodoc/terms_spec.rb +111 -79
- data/spec/isodoc/xref_spec.rb +1569 -1186
- metadata +6 -3
data/spec/isodoc/ref_spec.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
RSpec.describe IsoDoc do
|
4
|
-
|
5
|
-
|
4
|
+
it "processes Relaton bibliographies" do
|
5
|
+
input = <<~INPUT
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<bibdata>
|
8
8
|
<language>en</language>
|
@@ -124,6 +124,182 @@ RSpec.describe IsoDoc do
|
|
124
124
|
</bibliography>
|
125
125
|
</iso-standard>
|
126
126
|
INPUT
|
127
|
+
presxml = <<~PRESXML
|
128
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
129
|
+
<bibdata>
|
130
|
+
<language>en</language>
|
131
|
+
</bibdata>
|
132
|
+
<preface>
|
133
|
+
<foreword>
|
134
|
+
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
135
|
+
<eref bibitemid='ISO712'>[110]</eref>
|
136
|
+
<eref bibitemid='ISBN'>[1]</eref>
|
137
|
+
<eref bibitemid='ISSN'>[2]</eref>
|
138
|
+
<eref bibitemid='ISO16634'>ISO 16634:-- (all parts)</eref>
|
139
|
+
<eref bibitemid='ref1'>ICC 167</eref>
|
140
|
+
<eref bibitemid='ref10'>[10]</eref>
|
141
|
+
<eref bibitemid='ref12'>Citn</eref>
|
142
|
+
<eref bibitemid='zip_ffs'>[5]</eref>
|
143
|
+
</p>
|
144
|
+
</foreword>
|
145
|
+
</preface>
|
146
|
+
<bibliography>
|
147
|
+
<references id='_normative_references' obligation='informative' normative='true'>
|
148
|
+
<title depth='1'>1.<tab/>Normative References</title>
|
149
|
+
<p>
|
150
|
+
The following documents are referred to in the text in such a way that
|
151
|
+
some or all of their content constitutes requirements of this document.
|
152
|
+
For dated references, only the edition cited applies. For undated
|
153
|
+
references, the latest edition of the referenced document (including any
|
154
|
+
amendments) applies.
|
155
|
+
</p>
|
156
|
+
<bibitem id='ISO712' type='standard'>
|
157
|
+
<title format='text/plain'>Cereals or cereal products</title>
|
158
|
+
<title type='main' format='text/plain'>Cereals and cereal products</title>
|
159
|
+
<docidentifier type='ISO'>ISO 712</docidentifier>
|
160
|
+
<docidentifier type='metanorma'>[110]</docidentifier>
|
161
|
+
<contributor>
|
162
|
+
<role type='publisher'/>
|
163
|
+
<organization>
|
164
|
+
<name>International Organization for Standardization</name>
|
165
|
+
</organization>
|
166
|
+
</contributor>
|
167
|
+
</bibitem>
|
168
|
+
<bibitem id='ISO16634' type='standard'>
|
169
|
+
<title language='x' format='text/plain'>
|
170
|
+
Cereals, pulses, milled cereal products, xxxx, oilseeds and animal
|
171
|
+
feeding stuffs
|
172
|
+
</title>
|
173
|
+
<title language='en' format='text/plain'>Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</title>
|
174
|
+
<docidentifier type='ISO'>ISO 16634:-- (all parts)</docidentifier>
|
175
|
+
<date type='published'>
|
176
|
+
<on>--</on>
|
177
|
+
</date>
|
178
|
+
<contributor>
|
179
|
+
<role type='publisher'/>
|
180
|
+
<organization>
|
181
|
+
<abbreviation>ISO</abbreviation>
|
182
|
+
</organization>
|
183
|
+
</contributor>
|
184
|
+
<note format='text/plain' type='ISO DATE' reference='1'>Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
|
185
|
+
<extent type='part'>
|
186
|
+
<referenceFrom>all</referenceFrom>
|
187
|
+
</extent>
|
188
|
+
</bibitem>
|
189
|
+
<bibitem id='ISO20483' type='standard'>
|
190
|
+
<title format='text/plain'>Cereals and pulses</title>
|
191
|
+
<docidentifier type='ISO'>ISO 20483:2013-2014</docidentifier>
|
192
|
+
<date type='published'>
|
193
|
+
<from>2013</from>
|
194
|
+
<to>2014</to>
|
195
|
+
</date>
|
196
|
+
<contributor>
|
197
|
+
<role type='publisher'/>
|
198
|
+
<organization>
|
199
|
+
<name>International Organization for Standardization</name>
|
200
|
+
</organization>
|
201
|
+
</contributor>
|
202
|
+
</bibitem>
|
203
|
+
<bibitem id='ref1'>
|
204
|
+
<formattedref format='application/x-isodoc+xml'>
|
205
|
+
<smallcap>Standard No I.C.C 167</smallcap>
|
206
|
+
.
|
207
|
+
<em>
|
208
|
+
Determination of the protein content in cereal and cereal products
|
209
|
+
for food and animal feeding stuffs according to the Dumas combustion
|
210
|
+
method
|
211
|
+
</em>
|
212
|
+
(see
|
213
|
+
<link target='http://www.icc.or.at'/>
|
214
|
+
)
|
215
|
+
</formattedref>
|
216
|
+
<docidentifier type='ICC'>167</docidentifier>
|
217
|
+
</bibitem>
|
218
|
+
<note>
|
219
|
+
<name>NOTE</name>
|
220
|
+
<p>This is an annotation of ISO 20483:2013-2014</p>
|
221
|
+
</note>
|
222
|
+
<bibitem id='zip_ffs'>
|
223
|
+
<formattedref format='application/x-isodoc+xml'>Title 5</formattedref>
|
224
|
+
<docidentifier type='metanorma'>[5]</docidentifier>
|
225
|
+
</bibitem>
|
226
|
+
</references>
|
227
|
+
<references id='_bibliography' obligation='informative' normative='false'>
|
228
|
+
<title depth="1">Bibliography</title>
|
229
|
+
<bibitem id='ISBN' type='ISBN'>
|
230
|
+
<title format='text/plain'>Chemicals for analytical laboratory use</title>
|
231
|
+
<docidentifier type='ISBN'>ISBN</docidentifier>
|
232
|
+
<docidentifier type='metanorma'>[1]</docidentifier>
|
233
|
+
<contributor>
|
234
|
+
<role type='publisher'/>
|
235
|
+
<organization>
|
236
|
+
<abbreviation>ISBN</abbreviation>
|
237
|
+
</organization>
|
238
|
+
</contributor>
|
239
|
+
</bibitem>
|
240
|
+
<bibitem id='ISSN' type='ISSN'>
|
241
|
+
<title format='text/plain'>Instruments for analytical laboratory use</title>
|
242
|
+
<docidentifier type='ISSN'>ISSN</docidentifier>
|
243
|
+
<docidentifier type='metanorma'>[2]</docidentifier>
|
244
|
+
<contributor>
|
245
|
+
<role type='publisher'/>
|
246
|
+
<organization>
|
247
|
+
<abbreviation>ISSN</abbreviation>
|
248
|
+
</organization>
|
249
|
+
</contributor>
|
250
|
+
</bibitem>
|
251
|
+
<note>
|
252
|
+
<name>NOTE</name>
|
253
|
+
<p>This is an annotation of document ISSN.</p>
|
254
|
+
</note>
|
255
|
+
<note>
|
256
|
+
<name>NOTE</name>
|
257
|
+
<p>This is another annotation of document ISSN.</p>
|
258
|
+
</note>
|
259
|
+
<bibitem id='ISO3696' type='standard'>
|
260
|
+
<title format='text/plain'>Water for analytical laboratory use</title>
|
261
|
+
<docidentifier type='ISO'>ISO 3696</docidentifier>
|
262
|
+
<contributor>
|
263
|
+
<role type='publisher'/>
|
264
|
+
<organization>
|
265
|
+
<abbreviation>ISO</abbreviation>
|
266
|
+
</organization>
|
267
|
+
</contributor>
|
268
|
+
</bibitem>
|
269
|
+
<bibitem id='ref10'>
|
270
|
+
<formattedref format='application/x-isodoc+xml'>
|
271
|
+
<smallcap>Standard No I.C.C 167</smallcap>
|
272
|
+
.
|
273
|
+
<em>
|
274
|
+
Determination of the protein content in cereal and cereal products
|
275
|
+
for food and animal feeding stuffs according to the Dumas combustion
|
276
|
+
method
|
277
|
+
</em>
|
278
|
+
(see
|
279
|
+
<link target='http://www.icc.or.at'/>
|
280
|
+
)
|
281
|
+
</formattedref>
|
282
|
+
<docidentifier type='metanorma'>[10]</docidentifier>
|
283
|
+
</bibitem>
|
284
|
+
<bibitem id='ref11'>
|
285
|
+
<title>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>
|
286
|
+
<docidentifier type='IETF'>RFC 10</docidentifier>
|
287
|
+
</bibitem>
|
288
|
+
<bibitem id='ref12'>
|
289
|
+
<formattedref format='application/x-isodoc+xml'>
|
290
|
+
CitationWorks. 2019.
|
291
|
+
<em>How to cite a reference</em>
|
292
|
+
.
|
293
|
+
</formattedref>
|
294
|
+
<docidentifier type='metanorma'>[Citn]</docidentifier>
|
295
|
+
<docidentifier type='IETF'>RFC 20</docidentifier>
|
296
|
+
</bibitem>
|
297
|
+
</references>
|
298
|
+
</bibliography>
|
299
|
+
</iso-standard>
|
300
|
+
PRESXML
|
301
|
+
|
302
|
+
html = <<~OUTPUT
|
127
303
|
#{HTML_HDR}
|
128
304
|
<br/>
|
129
305
|
<div>
|
@@ -141,7 +317,7 @@ RSpec.describe IsoDoc do
|
|
141
317
|
</div>
|
142
318
|
<p class='zzSTDTitle1'/>
|
143
319
|
<div>
|
144
|
-
<h1>1.  Normative
|
320
|
+
<h1>1.  Normative References</h1>
|
145
321
|
<p>
|
146
322
|
The following documents are referred to in the text in such a way that
|
147
323
|
some or all of their content constitutes requirements of this
|
@@ -244,6 +420,8 @@ RSpec.describe IsoDoc do
|
|
244
420
|
</html>
|
245
421
|
|
246
422
|
OUTPUT
|
423
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
424
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
247
425
|
end
|
248
426
|
|
249
427
|
end
|
data/spec/isodoc/section_spec.rb
CHANGED
@@ -27,8 +27,8 @@ RSpec.describe IsoDoc do
|
|
27
27
|
OUTPUT
|
28
28
|
end
|
29
29
|
|
30
|
-
|
31
|
-
|
30
|
+
it "processes section names" do
|
31
|
+
input = <<~"INPUT"
|
32
32
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
33
33
|
<boilerplate>
|
34
34
|
<copyright-statement>
|
@@ -54,7 +54,7 @@ RSpec.describe IsoDoc do
|
|
54
54
|
</boilerplate>
|
55
55
|
<preface>
|
56
56
|
<abstract obligation="informative">
|
57
|
-
<title>
|
57
|
+
<title>Abstract</title>
|
58
58
|
</abstract>
|
59
59
|
<foreword obligation="informative">
|
60
60
|
<title>Foreword</title>
|
@@ -72,7 +72,7 @@ RSpec.describe IsoDoc do
|
|
72
72
|
</preface><sections>
|
73
73
|
<note id="NN1"><p>Initial note</p></note>
|
74
74
|
<admonition id="NN2" type="warning"><p>Initial admonition</p></admonition>
|
75
|
-
<clause id="D" obligation="normative">
|
75
|
+
<clause id="D" obligation="normative" type="scope">
|
76
76
|
<title>Scope</title>
|
77
77
|
<p id="E">Text</p>
|
78
78
|
</clause>
|
@@ -92,6 +92,7 @@ RSpec.describe IsoDoc do
|
|
92
92
|
</definitions>
|
93
93
|
</clause>
|
94
94
|
<definitions id="L">
|
95
|
+
<title>Symbols and abbreviated terms</title>
|
95
96
|
<dl>
|
96
97
|
<dt>Symbol</dt>
|
97
98
|
<dd>Definition</dd>
|
@@ -114,7 +115,9 @@ RSpec.describe IsoDoc do
|
|
114
115
|
<clause id="Q1" inline-header="false" obligation="normative">
|
115
116
|
<title>Annex A.1a</title>
|
116
117
|
</clause>
|
117
|
-
<references id="Q2" normative="false"
|
118
|
+
<references id="Q2" normative="false">
|
119
|
+
<title>Annex Bibliography</title>
|
120
|
+
</references>
|
118
121
|
</clause>
|
119
122
|
</annex>
|
120
123
|
<annex id="P1" inline-header="false" obligation="normative">
|
@@ -130,6 +133,135 @@ RSpec.describe IsoDoc do
|
|
130
133
|
</bibliography>
|
131
134
|
</iso-standard>
|
132
135
|
INPUT
|
136
|
+
|
137
|
+
presxml = <<~"PRESXML"
|
138
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
139
|
+
<boilerplate>
|
140
|
+
<copyright-statement>
|
141
|
+
<clause>
|
142
|
+
<title depth="1">Copyright</title>
|
143
|
+
</clause>
|
144
|
+
</copyright-statement>
|
145
|
+
<license-statement>
|
146
|
+
<clause>
|
147
|
+
<title depth="1">License</title>
|
148
|
+
</clause>
|
149
|
+
</license-statement>
|
150
|
+
<legal-statement>
|
151
|
+
<clause>
|
152
|
+
<title depth="1">Legal</title>
|
153
|
+
</clause>
|
154
|
+
</legal-statement>
|
155
|
+
<feedback-statement>
|
156
|
+
<clause>
|
157
|
+
<title depth="1">Feedback</title>
|
158
|
+
</clause>
|
159
|
+
</feedback-statement>
|
160
|
+
</boilerplate>
|
161
|
+
<preface>
|
162
|
+
<abstract obligation='informative'>
|
163
|
+
<title>Abstract</title>
|
164
|
+
</abstract>
|
165
|
+
<foreword obligation='informative'>
|
166
|
+
<title>Foreword</title>
|
167
|
+
<p id='A'>This is a preamble</p>
|
168
|
+
</foreword>
|
169
|
+
<introduction id='B' obligation='informative'>
|
170
|
+
<title>Introduction</title>
|
171
|
+
<clause id='C' inline-header='false' obligation='informative'>
|
172
|
+
<title depth='2'>Introduction Subsection</title>
|
173
|
+
</clause>
|
174
|
+
</introduction>
|
175
|
+
<clause id='B1'>
|
176
|
+
<title depth='1'>Dedication</title>
|
177
|
+
</clause>
|
178
|
+
<clause id='B2'>
|
179
|
+
<title depth='1'>Note to reader</title>
|
180
|
+
</clause>
|
181
|
+
<acknowledgements obligation='informative'>
|
182
|
+
<title>Acknowledgements</title>
|
183
|
+
</acknowledgements>
|
184
|
+
</preface>
|
185
|
+
<sections>
|
186
|
+
<note id='NN1'>
|
187
|
+
<name>NOTE</name>
|
188
|
+
<p>Initial note</p>
|
189
|
+
</note>
|
190
|
+
<admonition id='NN2' type='warning'>
|
191
|
+
<p>Initial admonition</p>
|
192
|
+
</admonition>
|
193
|
+
<clause id='D' obligation='normative' type='scope'>
|
194
|
+
<title depth='1'>1.<tab/>Scope</title>
|
195
|
+
<p id='E'>Text</p>
|
196
|
+
</clause>
|
197
|
+
<clause id='H' obligation='normative'>
|
198
|
+
<title depth='1'>3.<tab/>Terms, Definitions, Symbols and Abbreviated Terms</title>
|
199
|
+
<terms id='I' obligation='normative'>
|
200
|
+
<title depth='2'>3.1.<tab/>Normal Terms</title>
|
201
|
+
<term id='J'>
|
202
|
+
<name>3.1.1.</name>
|
203
|
+
<preferred>Term2</preferred>
|
204
|
+
</term>
|
205
|
+
</terms>
|
206
|
+
<definitions id='K'>
|
207
|
+
<title depth='2'>3.2.<tab/>Definitions</title>
|
208
|
+
<dl>
|
209
|
+
<dt>Symbol</dt>
|
210
|
+
<dd>Definition</dd>
|
211
|
+
</dl>
|
212
|
+
</definitions>
|
213
|
+
</clause>
|
214
|
+
<definitions id='L'>
|
215
|
+
<title depth='1'>4.<tab/>Symbols and abbreviated terms</title>
|
216
|
+
<dl>
|
217
|
+
<dt>Symbol</dt>
|
218
|
+
<dd>Definition</dd>
|
219
|
+
</dl>
|
220
|
+
</definitions>
|
221
|
+
<clause id='M' inline-header='false' obligation='normative'>
|
222
|
+
<title depth='1'>5.<tab/>Clause 4</title>
|
223
|
+
<clause id='N' inline-header='false' obligation='normative'>
|
224
|
+
<title depth='2'>5.1.<tab/>Introduction</title>
|
225
|
+
</clause>
|
226
|
+
<clause id='O' inline-header='false' obligation='normative'>
|
227
|
+
<title depth='2'>5.2.<tab/>Clause 4.2</title>
|
228
|
+
</clause>
|
229
|
+
<clause id='O1' inline-header='false' obligation='normative'>
|
230
|
+
<title>5.3.</title>
|
231
|
+
</clause>
|
232
|
+
</clause>
|
233
|
+
</sections>
|
234
|
+
<annex id='P' inline-header='false' obligation='normative'>
|
235
|
+
<title> <strong>Annex A</strong><br/>(normative)<br/><br/><strong>Annex</strong>
|
236
|
+
</title>
|
237
|
+
<clause id='Q' inline-header='false' obligation='normative'>
|
238
|
+
<title depth='2'>A.1.<tab/>Annex A.1</title>
|
239
|
+
<clause id='Q1' inline-header='false' obligation='normative'>
|
240
|
+
<title depth='3'>A.1.1.<tab/>Annex A.1a</title>
|
241
|
+
</clause>
|
242
|
+
<references id='Q2' normative='false'>
|
243
|
+
<title depth='3'>A.1.2.<tab/>Annex Bibliography</title>
|
244
|
+
</references>
|
245
|
+
</clause>
|
246
|
+
</annex>
|
247
|
+
<annex id='P1' inline-header='false' obligation='normative'>
|
248
|
+
<title><strong>Annex B</strong><br/>(normative)</title>
|
249
|
+
</annex>
|
250
|
+
<bibliography>
|
251
|
+
<references id='R' obligation='informative' normative='true'>
|
252
|
+
<title depth='1'>2.<tab/>Normative References</title>
|
253
|
+
</references>
|
254
|
+
<clause id='S' obligation='informative'>
|
255
|
+
<title depth='1'>Bibliography</title>
|
256
|
+
<references id='T' obligation='informative' normative='false'>
|
257
|
+
<title depth="2">Bibliography Subsection</title>
|
258
|
+
</references>
|
259
|
+
</clause>
|
260
|
+
</bibliography>
|
261
|
+
</iso-standard>
|
262
|
+
PRESXML
|
263
|
+
|
264
|
+
html = <<~"OUTPUT"
|
133
265
|
#{HTML_HDR}
|
134
266
|
<div class='authority'>
|
135
267
|
<div class='boilerplate-copyright'>
|
@@ -185,7 +317,7 @@ RSpec.describe IsoDoc do
|
|
185
317
|
<p class="zzSTDTitle1"/>
|
186
318
|
<div id='NN1' class='Note'>
|
187
319
|
<p>
|
188
|
-
|
320
|
+
<span class='note_label'>NOTE</span>
|
189
321
|
  Initial note
|
190
322
|
</p>
|
191
323
|
</div>
|
@@ -198,7 +330,7 @@ RSpec.describe IsoDoc do
|
|
198
330
|
<p id="E">Text</p>
|
199
331
|
</div>
|
200
332
|
<div>
|
201
|
-
<h1>2.  Normative
|
333
|
+
<h1>2.  Normative References</h1>
|
202
334
|
</div>
|
203
335
|
<div id="H"><h1>3.  Terms, Definitions, Symbols and Abbreviated Terms</h1>
|
204
336
|
<div id="I">
|
@@ -227,7 +359,7 @@ RSpec.describe IsoDoc do
|
|
227
359
|
<h2>5.2.  Clause 4.2</h2>
|
228
360
|
</div>
|
229
361
|
<div id="O1">
|
230
|
-
<h2>5.3
|
362
|
+
<h2>5.3.</h2>
|
231
363
|
</div>
|
232
364
|
</div>
|
233
365
|
<br/>
|
@@ -238,7 +370,7 @@ RSpec.describe IsoDoc do
|
|
238
370
|
<div id="Q1">
|
239
371
|
<h3>A.1.1.  Annex A.1a</h3>
|
240
372
|
</div>
|
241
|
-
<div><h3>A.1.2.  Annex Bibliography</h3></div>
|
373
|
+
<div><h3 class="Section3">A.1.2.  Annex Bibliography</h3></div>
|
242
374
|
</div>
|
243
375
|
|
244
376
|
</div>
|
@@ -248,9 +380,6 @@ RSpec.describe IsoDoc do
|
|
248
380
|
<b>Annex B</b>
|
249
381
|
<br/>
|
250
382
|
(normative)
|
251
|
-
<br/>
|
252
|
-
<br/>
|
253
|
-
<b/>
|
254
383
|
</h1>
|
255
384
|
</div>
|
256
385
|
<br/>
|
@@ -264,557 +393,179 @@ RSpec.describe IsoDoc do
|
|
264
393
|
</body>
|
265
394
|
</html>
|
266
395
|
OUTPUT
|
267
|
-
end
|
268
|
-
|
269
|
-
it "processes section names (Word)" do
|
270
|
-
expect(xmlpp(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
271
|
-
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
272
|
-
<boilerplate>
|
273
|
-
<copyright-statement>
|
274
|
-
<clause>
|
275
|
-
<title>Copyright</title>
|
276
|
-
</clause>
|
277
|
-
</copyright-statement>
|
278
|
-
<license-statement>
|
279
|
-
<clause>
|
280
|
-
<title>License</title>
|
281
|
-
</clause>
|
282
|
-
</license-statement>
|
283
|
-
<legal-statement>
|
284
|
-
<clause>
|
285
|
-
<title>Legal</title>
|
286
|
-
</clause>
|
287
|
-
</legal-statement>
|
288
|
-
<feedback-statement>
|
289
|
-
<clause>
|
290
|
-
<title>Feedback</title>
|
291
|
-
</clause>
|
292
|
-
</feedback-statement>
|
293
|
-
</boilerplate>
|
294
|
-
<preface>
|
295
|
-
<abstract obligation="informative">
|
296
|
-
<title>Foreword</title>
|
297
|
-
</abstract>
|
298
|
-
<foreword obligation="informative">
|
299
|
-
<title>Foreword</title>
|
300
|
-
<p id="A">This is a preamble</p>
|
301
|
-
</foreword>
|
302
|
-
<introduction id="B" obligation="informative"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
|
303
|
-
<title>Introduction Subsection</title>
|
304
|
-
</clause>
|
305
|
-
</introduction>
|
306
|
-
<clause id="B1"><title>Dedication</title></clause>
|
307
|
-
<clause id="B2"><title>Note to reader</title></clause>
|
308
|
-
<acknowledgements obligation="informative">
|
309
|
-
<title>Acknowledgements</title>
|
310
|
-
</acknowledgements>
|
311
|
-
</preface><sections>
|
312
|
-
<clause id="D" obligation="normative">
|
313
|
-
<title>Scope</title>
|
314
|
-
<p id="E">Text</p>
|
315
|
-
</clause>
|
316
|
-
|
317
|
-
<clause id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title><terms id="I" obligation="normative">
|
318
|
-
<title>Normal Terms</title>
|
319
|
-
<term id="J">
|
320
|
-
<preferred>Term2</preferred>
|
321
|
-
</term>
|
322
|
-
</terms>
|
323
|
-
<definitions id="K">
|
324
|
-
<dl>
|
325
|
-
<dt>Symbol</dt>
|
326
|
-
<dd>Definition</dd>
|
327
|
-
</dl>
|
328
|
-
</definitions>
|
329
|
-
</clause>
|
330
|
-
<definitions id="L">
|
331
|
-
<dl>
|
332
|
-
<dt>Symbol</dt>
|
333
|
-
<dd>Definition</dd>
|
334
|
-
</dl>
|
335
|
-
</definitions>
|
336
|
-
<clause id="M" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
337
|
-
<title>Introduction</title>
|
338
|
-
</clause>
|
339
|
-
<clause id="O" inline-header="false" obligation="normative">
|
340
|
-
<title>Clause 4.2</title>
|
341
|
-
</clause>
|
342
|
-
<clause id="O1" inline-header="false" obligation="normative">
|
343
|
-
</clause>
|
344
|
-
</clause>
|
345
396
|
|
346
|
-
|
347
|
-
<title>Annex</title>
|
348
|
-
<clause id="Q" inline-header="false" obligation="normative">
|
349
|
-
<title>Annex A.1</title>
|
350
|
-
<clause id="Q1" inline-header="false" obligation="normative">
|
351
|
-
<title>Annex A.1a</title>
|
352
|
-
</clause>
|
353
|
-
</clause>
|
354
|
-
</annex>
|
355
|
-
<annex id="P1" inline-header="false" obligation="normative">
|
356
|
-
</annex>
|
357
|
-
<bibliography><references id="R" obligation="informative" normative="true">
|
358
|
-
<title>Normative References</title>
|
359
|
-
</references><clause id="S" obligation="informative">
|
360
|
-
<title>Bibliography</title>
|
361
|
-
<references id="T" obligation="informative" normative="false">
|
362
|
-
<title>Bibliography Subsection</title>
|
363
|
-
</references>
|
364
|
-
</clause>
|
365
|
-
</bibliography>
|
366
|
-
</iso-standard>
|
367
|
-
INPUT
|
397
|
+
word = <<~"OUTPUT"
|
368
398
|
<html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
|
369
399
|
<head><style/></head>
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
</div>
|
382
|
-
<div class='boilerplate-license'>
|
383
|
-
<div>
|
384
|
-
<h1>License</h1>
|
385
|
-
</div>
|
386
|
-
</div>
|
387
|
-
<div class='boilerplate-legal'>
|
388
|
-
<div>
|
389
|
-
<h1>Legal</h1>
|
390
|
-
</div>
|
391
|
-
</div>
|
392
|
-
<div class='boilerplate-feedback'>
|
393
|
-
<div>
|
394
|
-
<h1>Feedback</h1>
|
395
|
-
</div>
|
396
|
-
</div>
|
397
|
-
</div>
|
398
|
-
<p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
|
399
|
-
<div>
|
400
|
-
<h1 class="AbstractTitle">Abstract</h1>
|
401
|
-
</div>
|
402
|
-
<p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
|
403
|
-
<div>
|
404
|
-
<h1 class="ForewordTitle">Foreword</h1>
|
405
|
-
<p id="A">This is a preamble</p>
|
406
|
-
</div>
|
407
|
-
<p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
|
408
|
-
<div class="Section3" id="B">
|
409
|
-
<h1 class="IntroTitle">Introduction</h1>
|
410
|
-
<div id="C">
|
411
|
-
<h2>Introduction Subsection</h2>
|
412
|
-
</div>
|
413
|
-
</div>
|
414
|
-
<p>
|
415
|
-
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
416
|
-
</p>
|
417
|
-
<div class='Section3' id='B1'>
|
418
|
-
<h1 class='IntroTitle'>Dedication</h1>
|
419
|
-
</div>
|
420
|
-
<p>
|
421
|
-
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
422
|
-
</p>
|
423
|
-
<div class='Section3' id='B2'>
|
424
|
-
<h1 class='IntroTitle'>Note to reader</h1>
|
425
|
-
</div>
|
426
|
-
<p>
|
427
|
-
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
428
|
-
</p>
|
429
|
-
<div class='Section3' id=''>
|
430
|
-
<h1 class='IntroTitle'>Acknowledgements</h1>
|
431
|
-
</div>
|
432
|
-
<p> </p>
|
433
|
-
</div>
|
434
|
-
<p><br clear="all" class="section"/></p>
|
435
|
-
<div class="WordSection3">
|
436
|
-
<p class="zzSTDTitle1"/>
|
437
|
-
<div id="D">
|
438
|
-
<h1>1.<span style="mso-tab-count:1">  </span>Scope</h1>
|
439
|
-
<p id="E">Text</p>
|
440
|
-
</div>
|
441
|
-
<div>
|
442
|
-
<h1>2.<span style="mso-tab-count:1">  </span>Normative references</h1>
|
443
|
-
</div>
|
444
|
-
<div id="H"><h1>3.<span style="mso-tab-count:1">  </span>Terms, Definitions, Symbols and Abbreviated Terms</h1>
|
445
|
-
<div id="I">
|
446
|
-
<h2>3.1.<span style="mso-tab-count:1">  </span>Normal Terms</h2>
|
447
|
-
<p class="TermNum" id="J">3.1.1.</p>
|
448
|
-
<p class="Terms" style="text-align:left;">Term2</p>
|
400
|
+
<body lang="EN-US" link="blue" vlink="#954F72">
|
401
|
+
<div class="WordSection1">
|
402
|
+
<p> </p>
|
403
|
+
</div>
|
404
|
+
<p>
|
405
|
+
<br clear="all" class="section"/>
|
406
|
+
</p>
|
407
|
+
<div class="WordSection2">
|
408
|
+
<div class="authority">
|
409
|
+
<div class="boilerplate-copyright">
|
410
|
+
<div><h1>Copyright</h1>
|
449
411
|
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
<h2>5.1.<span style="mso-tab-count:1">  </span>Introduction</h2>
|
468
|
-
</div>
|
469
|
-
<div id="O">
|
470
|
-
<h2>5.2.<span style="mso-tab-count:1">  </span>Clause 4.2</h2>
|
471
|
-
</div>
|
472
|
-
<div id="O1">
|
473
|
-
<h2>5.3.<span style="mso-tab-count:1">  </span></h2>
|
474
|
-
</div>
|
475
|
-
</div>
|
476
|
-
<p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
|
477
|
-
<div id="P" class="Section3">
|
478
|
-
<h1 class="Annex"><b>Annex A</b><br/>(normative)<br/><br/><b>Annex</b></h1>
|
479
|
-
<div id="Q">
|
480
|
-
<h2>A.1.<span style="mso-tab-count:1">  </span>Annex A.1</h2>
|
481
|
-
<div id="Q1">
|
482
|
-
<h3>A.1.1.<span style="mso-tab-count:1">  </span>Annex A.1a</h3>
|
412
|
+
</div>
|
413
|
+
</div>
|
414
|
+
<div class="boilerplate-license">
|
415
|
+
<div><h1>License</h1>
|
416
|
+
|
417
|
+
</div>
|
418
|
+
</div>
|
419
|
+
<div class="boilerplate-legal">
|
420
|
+
<div><h1>Legal</h1>
|
421
|
+
|
422
|
+
</div>
|
423
|
+
</div>
|
424
|
+
<div class="boilerplate-feedback">
|
425
|
+
<div><h1>Feedback</h1>
|
426
|
+
|
427
|
+
</div>
|
428
|
+
</div>
|
483
429
|
</div>
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
</
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
<h2 class="Section3">Bibliography Subsection</h2>
|
504
|
-
</div>
|
505
|
-
</div>
|
506
|
-
</div>
|
507
|
-
</body>
|
508
|
-
</html>
|
509
|
-
OUTPUT
|
510
|
-
end
|
430
|
+
<p>
|
431
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
432
|
+
</p>
|
433
|
+
<div>
|
434
|
+
<h1 class="AbstractTitle">Abstract</h1>
|
435
|
+
</div>
|
436
|
+
<p>
|
437
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
438
|
+
</p>
|
439
|
+
<div>
|
440
|
+
<h1 class="ForewordTitle">Foreword</h1>
|
441
|
+
<p id="A">This is a preamble</p>
|
442
|
+
</div>
|
443
|
+
<p>
|
444
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
445
|
+
</p>
|
446
|
+
<div class="Section3" id="B">
|
447
|
+
<h1 class="IntroTitle">Introduction</h1>
|
448
|
+
<div id="C"><h2>Introduction Subsection</h2>
|
511
449
|
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
<clause id="D" obligation="normative">
|
551
|
-
<title>Scope<fn reference="9"><p>A</p></fn></title>
|
552
|
-
<p id="E">Text</p>
|
553
|
-
</clause>
|
450
|
+
</div>
|
451
|
+
</div>
|
452
|
+
<p>
|
453
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
454
|
+
</p>
|
455
|
+
<div class="Section3" id="B1">
|
456
|
+
<h1 class="IntroTitle">Dedication</h1>
|
457
|
+
</div>
|
458
|
+
<p>
|
459
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
460
|
+
</p>
|
461
|
+
<div class="Section3" id="B2">
|
462
|
+
<h1 class="IntroTitle">Note to reader</h1>
|
463
|
+
</div>
|
464
|
+
<p>
|
465
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
466
|
+
</p>
|
467
|
+
<div class="Section3" id="">
|
468
|
+
<h1 class="IntroTitle">Acknowledgements</h1>
|
469
|
+
</div>
|
470
|
+
<p> </p>
|
471
|
+
</div>
|
472
|
+
<p>
|
473
|
+
<br clear="all" class="section"/>
|
474
|
+
</p>
|
475
|
+
<div class="WordSection3">
|
476
|
+
<p class="zzSTDTitle1"/>
|
477
|
+
<div id="NN1" class="Note">
|
478
|
+
<p class="Note"><span class="note_label">NOTE</span><span style="mso-tab-count:1">  </span>Initial note</p>
|
479
|
+
</div>
|
480
|
+
<div id="NN2" class="Admonition"><p class="AdmonitionTitle" style="text-align:center;">WARNING</p>
|
481
|
+
<p>Initial admonition</p>
|
482
|
+
</div>
|
483
|
+
<div id="D">
|
484
|
+
<h1>1.<span style="mso-tab-count:1">  </span>Scope</h1>
|
485
|
+
<p id="E">Text</p>
|
486
|
+
</div>
|
487
|
+
<div><h1>2.<span style="mso-tab-count:1">  </span>Normative References</h1>
|
554
488
|
|
555
|
-
|
556
|
-
<
|
557
|
-
|
558
|
-
|
559
|
-
<preferred>Term2</preferred>
|
560
|
-
</term>
|
561
|
-
</terms>
|
562
|
-
<definitions id="K">
|
563
|
-
<title>Definitions<fn reference="12"><p>A</p></fn></title>
|
564
|
-
<dl>
|
565
|
-
<dt>Symbol</dt>
|
566
|
-
<dd>Definition</dd>
|
567
|
-
</dl>
|
568
|
-
</definitions>
|
569
|
-
</clause>
|
570
|
-
<definitions id="L">
|
571
|
-
<dl>
|
572
|
-
<dt>Symbol</dt>
|
573
|
-
<dd>Definition</dd>
|
574
|
-
</dl>
|
575
|
-
</definitions>
|
576
|
-
<clause id="M" inline-header="false" obligation="normative">
|
577
|
-
<title>Clause 4<fn reference="13"><p>A</p></fn></title><clause id="N" inline-header="false" obligation="normative">
|
578
|
-
<title>Introduction<fn reference="1"><p>A</p></fn></title>
|
579
|
-
</clause>
|
580
|
-
<clause id="O" inline-header="false" obligation="normative">
|
581
|
-
<title>Clause 4.2<fn reference="14"><p>A</p></fn></title>
|
582
|
-
</clause>
|
583
|
-
<clause id="O1" inline-header="false" obligation="normative">
|
584
|
-
</clause>
|
585
|
-
</clause>
|
489
|
+
</div>
|
490
|
+
<div id="H">
|
491
|
+
<h1>3.<span style="mso-tab-count:1">  </span>Terms, Definitions, Symbols and Abbreviated Terms</h1>
|
492
|
+
<div id="I"><h2>3.1.<span style="mso-tab-count:1">  </span>Normal Terms</h2>
|
586
493
|
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
<a class='FootnoteRef' href='#fn:4'>
|
655
|
-
<sup>4</sup>
|
656
|
-
</a>
|
657
|
-
</h1>
|
658
|
-
</div>
|
659
|
-
</div>
|
660
|
-
</div>
|
661
|
-
<br/>
|
662
|
-
<div>
|
663
|
-
<h1 class='AbstractTitle'>Abstract</h1>
|
664
|
-
</div>
|
665
|
-
<br/>
|
666
|
-
<div>
|
667
|
-
<h1 class='ForewordTitle'>Foreword</h1>
|
668
|
-
<p id='A'>This is a preamble</p>
|
669
|
-
</div>
|
670
|
-
<br/>
|
671
|
-
<div class='Section3' id='B'>
|
672
|
-
<h1 class='IntroTitle'>Introduction</h1>
|
673
|
-
<div id='C'>
|
674
|
-
<h2>
|
675
|
-
Introduction Subsection
|
676
|
-
<a class='FootnoteRef' href='#fn:8'>
|
677
|
-
<sup>8</sup>
|
678
|
-
</a>
|
679
|
-
</h2>
|
680
|
-
</div>
|
681
|
-
</div>
|
682
|
-
<p class='zzSTDTitle1'/>
|
683
|
-
<div>
|
684
|
-
<h1>1.  Normative references</h1>
|
685
|
-
</div>
|
686
|
-
<div id='H'>
|
687
|
-
<h1>
|
688
|
-
2.  Terms, Definitions, Symbols and Abbreviated Terms
|
689
|
-
<a class='FootnoteRef' href='#fn:10'>
|
690
|
-
<sup>10</sup>
|
691
|
-
</a>
|
692
|
-
</h1>
|
693
|
-
<div id='I'>
|
694
|
-
<h2>
|
695
|
-
2.1.  Normal Terms
|
696
|
-
<a class='FootnoteRef' href='#fn:11'>
|
697
|
-
<sup>11</sup>
|
698
|
-
</a>
|
699
|
-
</h2>
|
700
|
-
<p class='TermNum' id='J'>2.1.1.</p>
|
701
|
-
<p class='Terms' style='text-align:left;'>Term2</p>
|
702
|
-
</div>
|
703
|
-
<div id='K'>
|
704
|
-
<h2>
|
705
|
-
2.2.  Definitions
|
706
|
-
<a class='FootnoteRef' href='#fn:12'>
|
707
|
-
<sup>12</sup>
|
708
|
-
</a>
|
709
|
-
</h2>
|
710
|
-
<dl>
|
711
|
-
<dt>
|
712
|
-
<p>Symbol</p>
|
713
|
-
</dt>
|
714
|
-
<dd>Definition</dd>
|
715
|
-
</dl>
|
716
|
-
</div>
|
717
|
-
</div>
|
718
|
-
<div id='L' class='Symbols'>
|
719
|
-
<h1>3.  Symbols and abbreviated terms</h1>
|
720
|
-
<dl>
|
721
|
-
<dt>
|
722
|
-
<p>Symbol</p>
|
723
|
-
</dt>
|
724
|
-
<dd>Definition</dd>
|
725
|
-
</dl>
|
726
|
-
</div>
|
727
|
-
<div id='D'>
|
728
|
-
<h1>
|
729
|
-
4.  Scope
|
730
|
-
<a class='FootnoteRef' href='#fn:9'>
|
731
|
-
<sup>9</sup>
|
732
|
-
</a>
|
733
|
-
</h1>
|
734
|
-
<p id='E'>Text</p>
|
735
|
-
</div>
|
736
|
-
<div id='M'>
|
737
|
-
<h1>
|
738
|
-
5.  Clause 4
|
739
|
-
<a class='FootnoteRef' href='#fn:13'>
|
740
|
-
<sup>13</sup>
|
741
|
-
</a>
|
742
|
-
</h1>
|
743
|
-
<div id='N'>
|
744
|
-
<h2>
|
745
|
-
5.1.  Introduction
|
746
|
-
<a class='FootnoteRef' href='#fn:1'>
|
747
|
-
<sup>1</sup>
|
748
|
-
</a>
|
749
|
-
</h2>
|
750
|
-
</div>
|
751
|
-
<div id='O'>
|
752
|
-
<h2>
|
753
|
-
5.2.  Clause 4.2
|
754
|
-
<a class='FootnoteRef' href='#fn:14'>
|
755
|
-
<sup>14</sup>
|
756
|
-
</a>
|
757
|
-
</h2>
|
758
|
-
</div>
|
759
|
-
<div id='O1'>
|
760
|
-
<h2>5.3.  </h2>
|
761
|
-
</div>
|
762
|
-
</div>
|
763
|
-
<br/>
|
764
|
-
<div id='P' class='Section3'>
|
765
|
-
<h1 class='Annex'>
|
766
|
-
<b>Annex A</b>
|
767
|
-
<br/>
|
768
|
-
(normative)
|
769
|
-
<br/>
|
770
|
-
<br/>
|
771
|
-
<b>
|
772
|
-
Annex
|
773
|
-
<a class='FootnoteRef' href='#fn:15'>
|
774
|
-
<sup>15</sup>
|
775
|
-
</a>
|
776
|
-
</b>
|
777
|
-
</h1>
|
778
|
-
<div id='Q'>
|
779
|
-
<h2>
|
780
|
-
A.1.  Annex A.1
|
781
|
-
<a class='FootnoteRef' href='#fn:16'>
|
782
|
-
<sup>16</sup>
|
783
|
-
</a>
|
784
|
-
</h2>
|
785
|
-
<div id='Q1'>
|
786
|
-
<h3>
|
787
|
-
A.1.1.  Annex A.1a
|
788
|
-
<a class='FootnoteRef' href='#fn:17'>
|
789
|
-
<sup>17</sup>
|
790
|
-
</a>
|
791
|
-
</h3>
|
792
|
-
</div>
|
793
|
-
<div>
|
794
|
-
<h3>
|
795
|
-
A.1.2.  Annex Bibliography
|
796
|
-
<a class='FootnoteRef' href='#fn:18'>
|
797
|
-
<sup>18</sup>
|
798
|
-
</a>
|
799
|
-
</h3>
|
800
|
-
</div>
|
801
|
-
</div>
|
802
|
-
</div>
|
803
|
-
<br/>
|
804
|
-
<div>
|
805
|
-
<h1 class='Section3'>Bibliography</h1>
|
806
|
-
<div>
|
807
|
-
<h2 class='Section3'>Bibliography SubsectionA</h2>
|
808
|
-
</div>
|
809
|
-
</div>
|
810
|
-
</div>
|
811
|
-
</body>
|
812
|
-
</html>
|
494
|
+
<p class="TermNum" id="J">3.1.1.</p>
|
495
|
+
|
496
|
+
<p class="Terms" style="text-align:left;">Term2</p>
|
497
|
+
|
498
|
+
</div>
|
499
|
+
<div id="K"><h2>3.2.<span style="mso-tab-count:1">  </span>Definitions</h2>
|
500
|
+
|
501
|
+
<table class="dl"><tr><td valign="top" align="left"><p align="left" style="margin-left:0pt;text-align:left;">Symbol</p></td><td valign="top">Definition</td></tr></table>
|
502
|
+
</div>
|
503
|
+
</div>
|
504
|
+
<div id="L" class="Symbols">
|
505
|
+
<h1>4.<span style="mso-tab-count:1">  </span>Symbols and abbreviated terms</h1>
|
506
|
+
<table class="dl">
|
507
|
+
<tr>
|
508
|
+
<td valign="top" align="left">
|
509
|
+
<p align="left" style="margin-left:0pt;text-align:left;">Symbol</p>
|
510
|
+
</td>
|
511
|
+
<td valign="top">Definition</td>
|
512
|
+
</tr>
|
513
|
+
</table>
|
514
|
+
</div>
|
515
|
+
<div id="M">
|
516
|
+
<h1>5.<span style="mso-tab-count:1">  </span>Clause 4</h1>
|
517
|
+
<div id="N"><h2>5.1.<span style="mso-tab-count:1">  </span>Introduction</h2>
|
518
|
+
|
519
|
+
</div>
|
520
|
+
<div id="O"><h2>5.2.<span style="mso-tab-count:1">  </span>Clause 4.2</h2>
|
521
|
+
|
522
|
+
</div>
|
523
|
+
<div id="O1"><h2>5.3.</h2>
|
524
|
+
|
525
|
+
</div>
|
526
|
+
</div>
|
527
|
+
<p>
|
528
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
529
|
+
</p>
|
530
|
+
<div id="P" class="Section3">
|
531
|
+
<h1 class="Annex"> <b>Annex A</b><br/>(normative)<br/><br/><b>Annex</b>
|
532
|
+
</h1>
|
533
|
+
<div id="Q"><h2>A.1.<span style="mso-tab-count:1">  </span>Annex A.1</h2>
|
534
|
+
|
535
|
+
<div id="Q1"><h3>A.1.1.<span style="mso-tab-count:1">  </span>Annex A.1a</h3>
|
536
|
+
|
537
|
+
</div>
|
538
|
+
<div><h3 class="Section3">A.1.2.<span style="mso-tab-count:1">  </span>Annex Bibliography</h3>
|
539
|
+
|
540
|
+
</div>
|
541
|
+
</div>
|
542
|
+
</div>
|
543
|
+
<p>
|
544
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
545
|
+
</p>
|
546
|
+
<div id="P1" class="Section3">
|
547
|
+
<h1 class="Annex"><b>Annex B</b><br/>(normative)</h1>
|
548
|
+
</div>
|
549
|
+
<p>
|
550
|
+
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
551
|
+
</p>
|
552
|
+
<div><h1 class="Section3">Bibliography</h1>
|
553
|
+
|
554
|
+
<div><h2 class="Section3">Bibliography Subsection</h2>
|
555
|
+
|
556
|
+
</div>
|
557
|
+
</div>
|
558
|
+
</div>
|
559
|
+
</body>
|
560
|
+
</html>
|
813
561
|
OUTPUT
|
562
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
563
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
564
|
+
expect(xmlpp(IsoDoc::WordConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(word)
|
814
565
|
end
|
815
566
|
|
816
567
|
it "processes section names suppressing section numbering" do
|
817
|
-
expect(xmlpp(IsoDoc::
|
568
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({suppressheadingnumbers: true}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
818
569
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
819
570
|
<preface>
|
820
571
|
<foreword obligation="informative">
|
@@ -825,7 +576,7 @@ OUTPUT
|
|
825
576
|
<title>Introduction Subsection</title>
|
826
577
|
</clause>
|
827
578
|
</introduction></preface><sections>
|
828
|
-
<clause id="D" obligation="normative">
|
579
|
+
<clause id="D" obligation="normative" type="scope">
|
829
580
|
<title>Scope</title>
|
830
581
|
<p id="E">Text</p>
|
831
582
|
</clause>
|
@@ -878,81 +629,91 @@ OUTPUT
|
|
878
629
|
</bibliography>
|
879
630
|
</iso-standard>
|
880
631
|
INPUT
|
881
|
-
|
632
|
+
<?xml version='1.0'?>
|
633
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
634
|
+
<preface>
|
635
|
+
<foreword obligation='informative'>
|
636
|
+
<title>Foreword</title>
|
637
|
+
<p id='A'>This is a preamble</p>
|
638
|
+
</foreword>
|
639
|
+
<introduction id='B' obligation='informative'>
|
640
|
+
<title>Introduction</title>
|
641
|
+
<clause id='C' inline-header='false' obligation='informative'>
|
642
|
+
<title depth="2">Introduction Subsection</title>
|
643
|
+
</clause>
|
644
|
+
</introduction>
|
645
|
+
</preface>
|
646
|
+
<sections>
|
647
|
+
<clause id='D' obligation='normative' type="scope">
|
648
|
+
<title depth="1">Scope</title>
|
649
|
+
<p id='E'>Text</p>
|
650
|
+
</clause>
|
651
|
+
<clause id='H' obligation='normative'>
|
652
|
+
<title depth="1">Terms, Definitions, Symbols and Abbreviated Terms</title>
|
653
|
+
<terms id='I' obligation='normative'>
|
654
|
+
<title depth="2">Normal Terms</title>
|
655
|
+
<term id='J'>
|
656
|
+
<name>3.1.1.</name>
|
657
|
+
<preferred>Term2</preferred>
|
658
|
+
</term>
|
659
|
+
</terms>
|
660
|
+
<definitions id='K'>
|
661
|
+
<dl>
|
662
|
+
<dt>Symbol</dt>
|
663
|
+
<dd>Definition</dd>
|
664
|
+
</dl>
|
665
|
+
</definitions>
|
666
|
+
</clause>
|
667
|
+
<definitions id='L'>
|
668
|
+
<dl>
|
669
|
+
<dt>Symbol</dt>
|
670
|
+
<dd>Definition</dd>
|
671
|
+
</dl>
|
672
|
+
</definitions>
|
673
|
+
<clause id='M' inline-header='false' obligation='normative'>
|
674
|
+
<title depth="1">Clause 4</title>
|
675
|
+
<clause id='N' inline-header='false' obligation='normative'>
|
676
|
+
<title depth="2">Introduction</title>
|
677
|
+
</clause>
|
678
|
+
<clause id='O' inline-header='false' obligation='normative'>
|
679
|
+
<title depth="2">Clause 4.2</title>
|
680
|
+
</clause>
|
681
|
+
<clause id='O1' inline-header='false' obligation='normative'> </clause>
|
682
|
+
</clause>
|
683
|
+
</sections>
|
684
|
+
<annex id='P' inline-header='false' obligation='normative'>
|
685
|
+
<title>
|
686
|
+
<strong>Annex A</strong>
|
882
687
|
<br/>
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
</div><div id="K"><h2>Symbols and abbreviated terms</h2>
|
909
|
-
<dl><dt><p>Symbol</p></dt><dd>Definition</dd></dl>
|
910
|
-
</div></div>
|
911
|
-
<div id="L" class="Symbols">
|
912
|
-
<h1>Symbols and abbreviated terms</h1>
|
913
|
-
<dl>
|
914
|
-
<dt>
|
915
|
-
<p>Symbol</p>
|
916
|
-
</dt>
|
917
|
-
<dd>Definition</dd>
|
918
|
-
</dl>
|
919
|
-
</div>
|
920
|
-
<div id="M">
|
921
|
-
<h1>Clause 4</h1>
|
922
|
-
<div id="N"><h2>Introduction</h2>
|
923
|
-
|
924
|
-
</div>
|
925
|
-
<div id="O"><h2>Clause 4.2</h2>
|
926
|
-
|
927
|
-
</div>
|
928
|
-
<div id="O1"><h2/>
|
929
|
-
</div>
|
930
|
-
</div>
|
931
|
-
<br/>
|
932
|
-
<div id="P" class="Section3">
|
933
|
-
<h1 class="Annex"><b>Annex A</b><br/>(normative)<br/><br/><b>Annex</b></h1>
|
934
|
-
<div id="Q"><h2>Annex A.1</h2>
|
935
|
-
|
936
|
-
<div id="Q1"><h3>Annex A.1a</h3>
|
937
|
-
|
938
|
-
</div>
|
939
|
-
</div>
|
940
|
-
</div>
|
941
|
-
<br/>
|
942
|
-
<div>
|
943
|
-
<h1 class="Section3">Bibliography</h1>
|
944
|
-
<div>
|
945
|
-
<h2 class="Section3">Bibliography Subsection</h2>
|
946
|
-
</div>
|
947
|
-
</div>
|
948
|
-
</div>
|
949
|
-
</body>
|
950
|
-
</html>
|
688
|
+
(normative)
|
689
|
+
<br/>
|
690
|
+
<br/>
|
691
|
+
<strong>Annex</strong>
|
692
|
+
</title>
|
693
|
+
<clause id='Q' inline-header='false' obligation='normative'>
|
694
|
+
<title depth="2">Annex A.1</title>
|
695
|
+
<clause id='Q1' inline-header='false' obligation='normative'>
|
696
|
+
<title depth="3">Annex A.1a</title>
|
697
|
+
</clause>
|
698
|
+
</clause>
|
699
|
+
</annex>
|
700
|
+
<bibliography>
|
701
|
+
<references id='R' obligation='informative' normative='true'>
|
702
|
+
<title depth="1">Normative References</title>
|
703
|
+
</references>
|
704
|
+
<clause id='S' obligation='informative'>
|
705
|
+
<title depth="1">Bibliography</title>
|
706
|
+
<references id='T' obligation='informative' normative='false'>
|
707
|
+
<title depth="2">Bibliography Subsection</title>
|
708
|
+
</references>
|
709
|
+
</clause>
|
710
|
+
</bibliography>
|
711
|
+
</iso-standard>
|
951
712
|
OUTPUT
|
952
713
|
end
|
953
714
|
|
954
715
|
it "processes section titles without ID" do
|
955
|
-
expect(xmlpp(IsoDoc::
|
716
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({suppressheadingnumbers: true}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
956
717
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
957
718
|
<preface>
|
958
719
|
<introduction id="B" obligation="informative"><title>Introduction</title><clause obligation="informative">
|
@@ -962,23 +723,22 @@ OUTPUT
|
|
962
723
|
</preface>
|
963
724
|
</iso-standard>
|
964
725
|
INPUT
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
</
|
972
|
-
</
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
</html>
|
726
|
+
<?xml version='1.0'?>
|
727
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
728
|
+
<preface>
|
729
|
+
<introduction id='B' obligation='informative'>
|
730
|
+
<title>Introduction</title>
|
731
|
+
<clause obligation='informative'>
|
732
|
+
<title depth="1">Introduction Subsection</title>
|
733
|
+
</clause>
|
734
|
+
</introduction>
|
735
|
+
</preface>
|
736
|
+
</iso-standard>
|
977
737
|
OUTPUT
|
978
738
|
end
|
979
739
|
|
980
|
-
|
981
|
-
|
740
|
+
it "processes simple terms & definitions" do
|
741
|
+
input = <<~"INPUT"
|
982
742
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
983
743
|
<sections>
|
984
744
|
<terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
|
@@ -989,6 +749,22 @@ OUTPUT
|
|
989
749
|
</sections>
|
990
750
|
</iso-standard>
|
991
751
|
INPUT
|
752
|
+
|
753
|
+
presxml = <<~"OUTPUT"
|
754
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
755
|
+
<sections>
|
756
|
+
<terms id='H' obligation='normative'>
|
757
|
+
<title depth='1'>1.<tab/>Terms, Definitions, Symbols and Abbreviated Terms</title>
|
758
|
+
<term id='J'>
|
759
|
+
<name>1.1.</name>
|
760
|
+
<preferred>Term2</preferred>
|
761
|
+
</term>
|
762
|
+
</terms>
|
763
|
+
</sections>
|
764
|
+
</iso-standard>
|
765
|
+
OUTPUT
|
766
|
+
|
767
|
+
html = <<~"OUTPUT"
|
992
768
|
#{HTML_HDR}
|
993
769
|
<p class="zzSTDTitle1"/>
|
994
770
|
<div id="H"><h1>1.  Terms, Definitions, Symbols and Abbreviated Terms</h1>
|
@@ -999,11 +775,12 @@ OUTPUT
|
|
999
775
|
</body>
|
1000
776
|
</html>
|
1001
777
|
OUTPUT
|
778
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
779
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
1002
780
|
end
|
1003
781
|
|
1004
|
-
|
1005
|
-
|
1006
|
-
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
782
|
+
it "processes inline section headers" do
|
783
|
+
input = <<~"INPUT"
|
1007
784
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1008
785
|
<sections>
|
1009
786
|
<clause id="M" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
@@ -1017,6 +794,25 @@ OUTPUT
|
|
1017
794
|
</sections>
|
1018
795
|
</iso-standard>
|
1019
796
|
INPUT
|
797
|
+
|
798
|
+
presxml = <<~"PRESXML"
|
799
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
800
|
+
<sections>
|
801
|
+
<clause id='M' inline-header='false' obligation='normative'>
|
802
|
+
<title depth='1'>1.<tab/>Clause 4</title>
|
803
|
+
<clause id='N' inline-header='false' obligation='normative'>
|
804
|
+
<title depth='2'>1.1.<tab/>Introduction</title>
|
805
|
+
</clause>
|
806
|
+
<clause id='O' inline-header='true' obligation='normative'>
|
807
|
+
<title depth='2'>1.2.<tab/>Clause 4.2</title>
|
808
|
+
<p>ABC</p>
|
809
|
+
</clause>
|
810
|
+
</clause>
|
811
|
+
</sections>
|
812
|
+
</iso-standard>
|
813
|
+
PRESXML
|
814
|
+
|
815
|
+
output = <<~"OUTPUT"
|
1020
816
|
#{HTML_HDR}
|
1021
817
|
<p class="zzSTDTitle1"/>
|
1022
818
|
<div id="M">
|
@@ -1033,10 +829,12 @@ OUTPUT
|
|
1033
829
|
</body>
|
1034
830
|
</html>
|
1035
831
|
OUTPUT
|
832
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
833
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(output)
|
1036
834
|
end
|
1037
835
|
|
1038
836
|
it "processes inline section headers with suppressed heading numbering" do
|
1039
|
-
expect(xmlpp(IsoDoc::
|
837
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({suppressheadingnumbers: true}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1040
838
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1041
839
|
<sections>
|
1042
840
|
<clause id="M" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
@@ -1049,25 +847,25 @@ OUTPUT
|
|
1049
847
|
</sections>
|
1050
848
|
</iso-standard>
|
1051
849
|
INPUT
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
</
|
1059
|
-
|
1060
|
-
|
1061
|
-
</
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
850
|
+
<?xml version='1.0'?>
|
851
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
852
|
+
<sections>
|
853
|
+
<clause id='M' inline-header='false' obligation='normative'>
|
854
|
+
<title depth="1">Clause 4</title>
|
855
|
+
<clause id='N' inline-header='false' obligation='normative'>
|
856
|
+
<title depth="2">Introduction</title>
|
857
|
+
</clause>
|
858
|
+
<clause id='O' inline-header='true' obligation='normative'>
|
859
|
+
<title depth="2">Clause 4.2</title>
|
860
|
+
</clause>
|
861
|
+
</clause>
|
862
|
+
</sections>
|
863
|
+
</iso-standard>
|
1066
864
|
OUTPUT
|
1067
865
|
end
|
1068
866
|
|
1069
867
|
it "processes sections without titles" do
|
1070
|
-
expect(xmlpp(IsoDoc::
|
868
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1071
869
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1072
870
|
<preface>
|
1073
871
|
<introduction id="M" inline-header="false" obligation="normative"><clause id="N" inline-header="false" obligation="normative">
|
@@ -1085,32 +883,33 @@ OUTPUT
|
|
1085
883
|
|
1086
884
|
</iso-standard>
|
1087
885
|
INPUT
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
886
|
+
<?xml version='1.0'?>
|
887
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
888
|
+
<preface>
|
889
|
+
<introduction id='M' inline-header='false' obligation='normative'>
|
890
|
+
<clause id='N' inline-header='false' obligation='normative'>
|
891
|
+
<title depth="2">Intro</title>
|
892
|
+
</clause>
|
893
|
+
<clause id='O' inline-header='true' obligation='normative'> </clause>
|
894
|
+
</introduction>
|
895
|
+
</preface>
|
896
|
+
<sections>
|
897
|
+
<clause id='M1' inline-header='false' obligation='normative'>
|
898
|
+
<title>1.</title>
|
899
|
+
<clause id='N1' inline-header='false' obligation='normative'>
|
900
|
+
<title>1.1.</title>
|
901
|
+
</clause>
|
902
|
+
<clause id='O1' inline-header='true' obligation='normative'>
|
903
|
+
<title>1.2.</title>
|
904
|
+
</clause>
|
905
|
+
</clause>
|
906
|
+
</sections>
|
907
|
+
</iso-standard>
|
1109
908
|
OUTPUT
|
1110
909
|
end
|
1111
910
|
|
1112
911
|
it "processes clauses containing normative references" do
|
1113
|
-
|
912
|
+
input = <<~INPUT
|
1114
913
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1115
914
|
<bibliography>
|
1116
915
|
<clause id="D" obligation="informative">
|
@@ -1132,16 +931,43 @@ OUTPUT
|
|
1132
931
|
</clause>
|
1133
932
|
|
1134
933
|
</bibliography>
|
934
|
+
</iso-standard>
|
1135
935
|
INPUT
|
936
|
+
presxml = <<~OUTPUT
|
937
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
938
|
+
<bibliography>
|
939
|
+
<clause id="D" obligation="informative">
|
940
|
+
<title depth="1">Bibliography</title>
|
941
|
+
<references id="E" obligation="informative" normative="false">
|
942
|
+
<title depth="2">Bibliography Subsection 1</title>
|
943
|
+
</references>
|
944
|
+
<references id="F" obligation="informative" normative="false">
|
945
|
+
<title depth="2">Bibliography Subsection 2</title>
|
946
|
+
</references>
|
947
|
+
</clause>
|
948
|
+
<clause id="A" obligation="informative"><title depth="1">1.<tab/>First References</title>
|
949
|
+
<references id="B" obligation="informative" normative="true">
|
950
|
+
<title depth="2">1.1.<tab/>Normative References 1</title>
|
951
|
+
</references>
|
952
|
+
<references id="C" obligation="informative" normative="false">
|
953
|
+
<title depth="2">1.2.<tab/>Normative References 2</title>
|
954
|
+
</references>
|
955
|
+
</clause>
|
956
|
+
|
957
|
+
</bibliography>
|
958
|
+
</iso-standard>
|
959
|
+
OUTPUT
|
960
|
+
|
961
|
+
html = <<~OUTPUT
|
1136
962
|
#{HTML_HDR}
|
1137
963
|
<p class='zzSTDTitle1'/>
|
1138
964
|
<div>
|
1139
|
-
<h1>1. 
|
965
|
+
<h1>1.  First References</h1>
|
1140
966
|
<div>
|
1141
|
-
<h2>1.1.  Normative References 1</h2>
|
967
|
+
<h2 class='Section3'>1.1.  Normative References 1</h2>
|
1142
968
|
</div>
|
1143
969
|
<div>
|
1144
|
-
<h2>1.2.  Normative References 2</h2>
|
970
|
+
<h2 class='Section3'>1.2.  Normative References 2</h2>
|
1145
971
|
</div>
|
1146
972
|
</div>
|
1147
973
|
<br/>
|
@@ -1159,6 +985,8 @@ INPUT
|
|
1159
985
|
</html>
|
1160
986
|
|
1161
987
|
OUTPUT
|
988
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
989
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
1162
990
|
end
|
1163
991
|
|
1164
992
|
|