isodoc 1.6.7 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/isodoc.gemspec +1 -1
- data/lib/isodoc-yaml/i18n-ar.yaml +19 -25
- data/lib/isodoc-yaml/i18n-de.yaml +1 -0
- data/lib/isodoc-yaml/i18n-en.yaml +1 -0
- data/lib/isodoc-yaml/i18n-es.yaml +1 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +1 -0
- data/lib/isodoc-yaml/i18n-ru.yaml +1 -0
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +1 -0
- data/lib/isodoc.rb +1 -0
- data/lib/isodoc/convert.rb +1 -1
- data/lib/isodoc/function/blocks.rb +180 -168
- data/lib/isodoc/function/form.rb +39 -36
- data/lib/isodoc/function/inline.rb +5 -1
- data/lib/isodoc/function/references.rb +1 -1
- data/lib/isodoc/function/to_word_html.rb +206 -204
- data/lib/isodoc/html_convert.rb +0 -4
- data/lib/isodoc/html_function/form.rb +48 -45
- data/lib/isodoc/html_function/html.rb +2 -0
- data/lib/isodoc/html_function/postprocess.rb +9 -4
- data/lib/isodoc/presentation_function/block.rb +7 -4
- data/lib/isodoc/presentation_function/inline.rb +29 -12
- data/lib/isodoc/presentation_function/section.rb +1 -2
- data/lib/isodoc/presentation_xml_convert.rb +2 -2
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/xref.rb +8 -7
- data/lib/isodoc/xref/xref_anchor.rb +45 -44
- data/lib/isodoc/xref/xref_counter.rb +113 -103
- data/lib/isodoc/xref/xref_gen.rb +39 -11
- data/lib/metanorma/output.rb +7 -0
- data/lib/metanorma/output/base.rb +13 -0
- data/lib/metanorma/output/utils.rb +17 -0
- data/lib/metanorma/output/xslfo.rb +21 -0
- data/spec/assets/outputtest/a.xml +66 -0
- data/spec/assets/outputtest/iso.international-standard.xsl +3011 -0
- data/spec/isodoc/blocks_spec.rb +327 -243
- data/spec/isodoc/form_spec.rb +94 -90
- data/spec/isodoc/inline_spec.rb +431 -234
- data/spec/isodoc/postproc_spec.rb +68 -25
- data/spec/isodoc/terms_spec.rb +2 -2
- data/spec/isodoc/xref_spec.rb +274 -652
- metadata +8 -18
- data/lib/isodoc/html_function/sectionsplit.rb +0 -230
- data/spec/isodoc/sectionsplit_spec.rb +0 -190
@@ -344,6 +344,62 @@ RSpec.describe IsoDoc do
|
|
344
344
|
expect(word).to match(%r{Antaŭparolo</h1>})
|
345
345
|
end
|
346
346
|
|
347
|
+
it "cleans up HTML output preface placeholder paragraphs" do
|
348
|
+
FileUtils.rm_f "test.doc"
|
349
|
+
FileUtils.rm_f "test.html"
|
350
|
+
IsoDoc::HtmlConvert.new(
|
351
|
+
{ bodyfont: "Zapf",
|
352
|
+
monospacefont: "Consolas",
|
353
|
+
headerfont: "Comic Sans",
|
354
|
+
normalfontsize: "30pt",
|
355
|
+
monospacefontsize: "29pt",
|
356
|
+
smallerfontsize: "28pt",
|
357
|
+
footnotefontsize: "27pt",
|
358
|
+
htmlstylesheet: "spec/assets/html.scss",
|
359
|
+
htmlstylesheet_override: "spec/assets/html_override.css",
|
360
|
+
htmlcoverpage: "spec/assets/htmlcover.html",
|
361
|
+
htmlintropage: "spec/assets/htmlintro.html",
|
362
|
+
scripts: "spec/assets/scripts.html",
|
363
|
+
scripts_override: "spec/assets/scripts_override.html",
|
364
|
+
i18nyaml: "spec/assets/i18n.yaml",
|
365
|
+
ulstyle: "l1",
|
366
|
+
olstyle: "l2" },
|
367
|
+
).convert("test", <<~"INPUT", false)
|
368
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
369
|
+
<preface><foreword>
|
370
|
+
<note>
|
371
|
+
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
|
372
|
+
</note>
|
373
|
+
</foreword></preface>
|
374
|
+
</iso-standard>
|
375
|
+
INPUT
|
376
|
+
html = Nokogiri::XML(File.read("test.html")).at("//body")
|
377
|
+
html.xpath("//script").each(&:remove)
|
378
|
+
expect(html.to_xml).to be_equivalent_to <<~OUTPUT
|
379
|
+
<body lang="en" xml:lang="en">
|
380
|
+
<div class="title-section">
|
381
|
+
/* an empty html cover page */
|
382
|
+
</div>
|
383
|
+
<br/>
|
384
|
+
<div class="prefatory-section">
|
385
|
+
/* an empty html intro page */
|
386
|
+
<ul id="toc-list"/>
|
387
|
+
</div>
|
388
|
+
<br/>
|
389
|
+
<main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
|
390
|
+
<br/>
|
391
|
+
<div>
|
392
|
+
<h1 class="ForewordTitle">Antaŭparolo</h1>
|
393
|
+
<div class="Note">
|
394
|
+
<p>  These results are based on a study carried out on three different types of kernel.</p>
|
395
|
+
</div>
|
396
|
+
</div>
|
397
|
+
<p class="zzSTDTitle1"/>
|
398
|
+
</main>
|
399
|
+
</body>
|
400
|
+
OUTPUT
|
401
|
+
end
|
402
|
+
|
347
403
|
it "converts definition lists to tables for Word" do
|
348
404
|
FileUtils.rm_f "test.doc"
|
349
405
|
FileUtils.rm_f "test.html"
|
@@ -1277,17 +1333,17 @@ RSpec.describe IsoDoc do
|
|
1277
1333
|
it "does not lose HTML escapes in postprocessing" do
|
1278
1334
|
FileUtils.rm_f "test.doc"
|
1279
1335
|
FileUtils.rm_f "test.html"
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1336
|
+
input = <<~INPUT
|
1337
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1338
|
+
<preface><foreword>
|
1339
|
+
<sourcecode id="samplecode">
|
1340
|
+
<name>XML code</name>
|
1341
|
+
<xml> &
|
1342
|
+
</sourcecode>
|
1343
|
+
</foreword></preface>
|
1344
|
+
</iso-standard>
|
1345
|
+
INPUT
|
1346
|
+
IsoDoc::HtmlConvert.new(options).convert("test", input, false)
|
1291
1347
|
html = File.read("test.html")
|
1292
1348
|
.sub(/^.*<main class="main-section">/m, '<main class="main-section">')
|
1293
1349
|
.sub(%r{</main>.*$}m, "</main>")
|
@@ -1303,22 +1359,10 @@ RSpec.describe IsoDoc do
|
|
1303
1359
|
<p class="zzSTDTitle1"></p>
|
1304
1360
|
</main>
|
1305
1361
|
OUTPUT
|
1306
|
-
end
|
1307
1362
|
|
1308
|
-
it "does not lose HTML escapes in postprocessing (Word)" do
|
1309
1363
|
FileUtils.rm_f "test.doc"
|
1310
1364
|
FileUtils.rm_f "test.html"
|
1311
|
-
IsoDoc::WordConvert.new(options)
|
1312
|
-
.convert("test", <<~"INPUT", false)
|
1313
|
-
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1314
|
-
<preface><foreword>
|
1315
|
-
<sourcecode id="samplecode">
|
1316
|
-
<name>XML code</name>
|
1317
|
-
<xml> &
|
1318
|
-
</sourcecode>
|
1319
|
-
</foreword></preface>
|
1320
|
-
</iso-standard>
|
1321
|
-
INPUT
|
1365
|
+
IsoDoc::WordConvert.new(options).convert("test", input, false)
|
1322
1366
|
word = File.read("test.doc")
|
1323
1367
|
.sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2">')
|
1324
1368
|
.sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "")
|
@@ -2227,7 +2271,6 @@ RSpec.describe IsoDoc do
|
|
2227
2271
|
output = <<~OUTPUT
|
2228
2272
|
<body lang='en' xml:lang='en'>
|
2229
2273
|
<main class='main-section'>
|
2230
|
-
<button onclick='topFunction()' id='myBtn' title='Go to top'>Top</button>
|
2231
2274
|
<br/>
|
2232
2275
|
<div>
|
2233
2276
|
<h1 class='ForewordTitle'>Foreword</h1>
|
data/spec/isodoc/terms_spec.rb
CHANGED
@@ -189,7 +189,7 @@ RSpec.describe IsoDoc do
|
|
189
189
|
<a href="#ISO7301">ISO 7301:2011, Clause 3.1</a>
|
190
190
|
[MODIFICATION] The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here
|
191
191
|
[/TERMREF]</p>
|
192
|
-
<p>[TERMREF]
|
192
|
+
<p>[TERMREF] t1 [/TERMREF]</p>
|
193
193
|
<p>[TERMREF] Termbase IEV, term ID xyz [MODIFICATION]with adjustments [/TERMREF]</p>
|
194
194
|
<p class="TermNum" id="paddy">1.2.</p><p class="Terms" style="text-align:left;">paddy</p><p class="AltTerms" style="text-align:left;">paddy rice</p>
|
195
195
|
<p class="AltTerms" style="text-align:left;">rough rice</p>
|
@@ -233,7 +233,7 @@ RSpec.describe IsoDoc do
|
|
233
233
|
<a href="#ISO7301">ISO 7301:2011, Clause 3.1</a>
|
234
234
|
[MODIFICATION] The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here
|
235
235
|
[/TERMREF]</p>
|
236
|
-
<p>[TERMREF]
|
236
|
+
<p>[TERMREF] t1 [/TERMREF]</p>
|
237
237
|
<p>[TERMREF] Termbase IEV, term ID xyz [MODIFICATION]with adjustments [/TERMREF]</p>
|
238
238
|
<p class="TermNum" id="paddy">1.2.</p><p class="Terms" style="text-align:left;">paddy</p><p class="AltTerms" style="text-align:left;">paddy rice</p>
|
239
239
|
<p class="AltTerms" style="text-align:left;">rough rice</p>
|
data/spec/isodoc/xref_spec.rb
CHANGED
@@ -2213,110 +2213,23 @@ RSpec.describe IsoDoc do
|
|
2213
2213
|
</iso-standard>
|
2214
2214
|
INPUT
|
2215
2215
|
output = <<~OUTPUT
|
2216
|
-
<
|
2217
|
-
|
2218
|
-
|
2219
|
-
|
2220
|
-
|
2221
|
-
|
2222
|
-
|
2223
|
-
|
2224
|
-
|
2225
|
-
|
2226
|
-
|
2227
|
-
|
2228
|
-
</p>
|
2229
|
-
</foreword>
|
2230
|
-
<introduction id='intro' displayorder='2'>
|
2231
|
-
<ol id='N1'>
|
2232
|
-
<li>
|
2233
|
-
<p>A</p>
|
2234
|
-
</li>
|
2235
|
-
</ol>
|
2236
|
-
<clause id='xyz'>
|
2237
|
-
<title depth='2'>Preparatory</title>
|
2238
|
-
<ol id='N2'>
|
2239
|
-
<li>
|
2240
|
-
<p>A</p>
|
2241
|
-
</li>
|
2242
|
-
</ol>
|
2243
|
-
</clause>
|
2244
|
-
</introduction>
|
2245
|
-
</preface>
|
2246
|
-
<sections>
|
2247
|
-
<clause id='scope' type='scope' displayorder='3'>
|
2248
|
-
<title depth='1'>
|
2249
|
-
1.
|
2250
|
-
<tab/>
|
2251
|
-
Scope
|
2252
|
-
</title>
|
2253
|
-
<ol id='N'>
|
2254
|
-
<li>
|
2255
|
-
<p>A</p>
|
2256
|
-
</li>
|
2257
|
-
</ol>
|
2258
|
-
</clause>
|
2259
|
-
<terms id='terms' displayorder='4'>
|
2260
|
-
<title>2.</title>
|
2261
|
-
</terms>
|
2262
|
-
<clause id='widgets' displayorder='5'>
|
2263
|
-
<title depth='1'>
|
2264
|
-
3.
|
2265
|
-
<tab/>
|
2266
|
-
Widgets
|
2267
|
-
</title>
|
2268
|
-
<clause id='widgets1'>
|
2269
|
-
<title>3.1.</title>
|
2270
|
-
<ol id='note1'>
|
2271
|
-
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
2272
|
-
These results are based on a study carried out on three different
|
2273
|
-
types of kernel.
|
2274
|
-
</p>
|
2275
|
-
</ol>
|
2276
|
-
<ol id='note2'>
|
2277
|
-
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83a'>
|
2278
|
-
These results are based on a study carried out on three different
|
2279
|
-
types of kernel.
|
2280
|
-
</p>
|
2281
|
-
</ol>
|
2282
|
-
</clause>
|
2283
|
-
</clause>
|
2284
|
-
</sections>
|
2285
|
-
<annex id='annex1' displayorder='6'>
|
2286
|
-
<title>
|
2287
|
-
<strong>Annex A</strong>
|
2288
|
-
<br/>
|
2289
|
-
(informative)
|
2290
|
-
</title>
|
2291
|
-
<clause id='annex1a'>
|
2292
|
-
<title>A.1.</title>
|
2293
|
-
<ol id='AN'>
|
2294
|
-
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
2295
|
-
These results are based on a study carried out on three different
|
2296
|
-
types of kernel.
|
2297
|
-
</p>
|
2298
|
-
</ol>
|
2299
|
-
</clause>
|
2300
|
-
<clause id='annex1b'>
|
2301
|
-
<title>A.2.</title>
|
2302
|
-
<ol id='Anote1'>
|
2303
|
-
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
2304
|
-
These results are based on a study carried out on three different
|
2305
|
-
types of kernel.
|
2306
|
-
</p>
|
2307
|
-
</ol>
|
2308
|
-
<ol id='Anote2'>
|
2309
|
-
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83a'>
|
2310
|
-
These results are based on a study carried out on three different
|
2311
|
-
types of kernel.
|
2312
|
-
</p>
|
2313
|
-
</ol>
|
2314
|
-
</clause>
|
2315
|
-
</annex>
|
2316
|
-
</iso-standard>
|
2216
|
+
<foreword displayorder='1'>
|
2217
|
+
<p>
|
2218
|
+
<xref target='N1'>Introduction, List</xref>
|
2219
|
+
<xref target='N2'>Preparatory, List</xref>
|
2220
|
+
<xref target='N'>Clause 1, List</xref>
|
2221
|
+
<xref target='note1'>Clause 3.1, List 1</xref>
|
2222
|
+
<xref target='note2'>Clause 3.1, List 2</xref>
|
2223
|
+
<xref target='AN'>Annex A.1, List</xref>
|
2224
|
+
<xref target='Anote1'>Annex A.2, List 1</xref>
|
2225
|
+
<xref target='Anote2'>Annex A.2, List 2</xref>
|
2226
|
+
</p>
|
2227
|
+
</foreword>
|
2317
2228
|
OUTPUT
|
2318
|
-
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
2319
|
-
.convert("test", input, true))
|
2229
|
+
expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
|
2230
|
+
.convert("test", input, true))
|
2231
|
+
.at("//xmlns:foreword").to_xml))
|
2232
|
+
.to be_equivalent_to xmlpp(output)
|
2320
2233
|
end
|
2321
2234
|
|
2322
2235
|
it "cross-references list items" do
|
@@ -2382,105 +2295,23 @@ RSpec.describe IsoDoc do
|
|
2382
2295
|
</iso-standard>
|
2383
2296
|
INPUT
|
2384
2297
|
output = <<~OUTPUT
|
2385
|
-
<
|
2386
|
-
|
2387
|
-
|
2388
|
-
|
2389
|
-
|
2390
|
-
|
2391
|
-
|
2392
|
-
|
2393
|
-
|
2394
|
-
|
2395
|
-
|
2396
|
-
|
2397
|
-
</p>
|
2398
|
-
</foreword>
|
2399
|
-
<introduction id='intro' displayorder='2'>
|
2400
|
-
<ol id='N01'>
|
2401
|
-
<li id='N1'>
|
2402
|
-
<p>A</p>
|
2403
|
-
</li>
|
2404
|
-
</ol>
|
2405
|
-
<clause id='xyz'>
|
2406
|
-
<title depth='2'>Preparatory</title>
|
2407
|
-
<ol id='N02' type='arabic'>
|
2408
|
-
<li id='N2'>
|
2409
|
-
<p>A</p>
|
2410
|
-
</li>
|
2411
|
-
</ol>
|
2412
|
-
</clause>
|
2413
|
-
</introduction>
|
2414
|
-
</preface>
|
2415
|
-
<sections>
|
2416
|
-
<clause id='scope' type='scope' displayorder='3'>
|
2417
|
-
<title depth='1'>
|
2418
|
-
1.
|
2419
|
-
<tab/>
|
2420
|
-
Scope
|
2421
|
-
</title>
|
2422
|
-
<ol id='N0' type='roman'>
|
2423
|
-
<li id='N'>
|
2424
|
-
<p>A</p>
|
2425
|
-
</li>
|
2426
|
-
</ol>
|
2427
|
-
</clause>
|
2428
|
-
<terms id='terms' displayorder='4'>
|
2429
|
-
<title>2.</title>
|
2430
|
-
</terms>
|
2431
|
-
<clause id='widgets' displayorder='5'>
|
2432
|
-
<title depth='1'>
|
2433
|
-
3.
|
2434
|
-
<tab/>
|
2435
|
-
Widgets
|
2436
|
-
</title>
|
2437
|
-
<clause id='widgets1'>
|
2438
|
-
<title>3.1.</title>
|
2439
|
-
<ol id='note1l' type='alphabet'>
|
2440
|
-
<li id='note1'>
|
2441
|
-
<p>A</p>
|
2442
|
-
</li>
|
2443
|
-
</ol>
|
2444
|
-
<ol id='note2l' type='roman_upper'>
|
2445
|
-
<li id='note2'>
|
2446
|
-
<p>A</p>
|
2447
|
-
</li>
|
2448
|
-
</ol>
|
2449
|
-
</clause>
|
2450
|
-
</clause>
|
2451
|
-
</sections>
|
2452
|
-
<annex id='annex1' displayorder='6'>
|
2453
|
-
<title>
|
2454
|
-
<strong>Annex A</strong>
|
2455
|
-
<br/>
|
2456
|
-
(informative)
|
2457
|
-
</title>
|
2458
|
-
<clause id='annex1a'>
|
2459
|
-
<title>A.1.</title>
|
2460
|
-
<ol id='ANl' type='alphabet_upper'>
|
2461
|
-
<li id='AN'>
|
2462
|
-
<p>A</p>
|
2463
|
-
</li>
|
2464
|
-
</ol>
|
2465
|
-
</clause>
|
2466
|
-
<clause id='annex1b'>
|
2467
|
-
<title>A.2.</title>
|
2468
|
-
<ol id='Anote1l' type='roman' start='4'>
|
2469
|
-
<li id='Anote1'>
|
2470
|
-
<p>A</p>
|
2471
|
-
</li>
|
2472
|
-
</ol>
|
2473
|
-
<ol id='Anote2l'>
|
2474
|
-
<li id='Anote2'>
|
2475
|
-
<p>A</p>
|
2476
|
-
</li>
|
2477
|
-
</ol>
|
2478
|
-
</clause>
|
2479
|
-
</annex>
|
2480
|
-
</iso-standard>
|
2298
|
+
<foreword displayorder='1'>
|
2299
|
+
<p>
|
2300
|
+
<xref target='N1'>Introduction, a)</xref>
|
2301
|
+
<xref target='N2'>Preparatory, 1)</xref>
|
2302
|
+
<xref target='N'>Clause 1, i)</xref>
|
2303
|
+
<xref target='note1'>Clause 3.1, List 1 a)</xref>
|
2304
|
+
<xref target='note2'>Clause 3.1, List 2 I)</xref>
|
2305
|
+
<xref target='AN'>Annex A.1, A)</xref>
|
2306
|
+
<xref target='Anote1'>Annex A.2, List 1 iv)</xref>
|
2307
|
+
<xref target='Anote2'>Annex A.2, List 2 a)</xref>
|
2308
|
+
</p>
|
2309
|
+
</foreword>
|
2481
2310
|
OUTPUT
|
2482
|
-
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
2483
|
-
.convert("test", input, true))
|
2311
|
+
expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
|
2312
|
+
.convert("test", input, true))
|
2313
|
+
.at("//xmlns:foreword").to_xml))
|
2314
|
+
.to be_equivalent_to xmlpp(output)
|
2484
2315
|
end
|
2485
2316
|
|
2486
2317
|
it "cross-references nested list items" do
|
@@ -2523,65 +2354,187 @@ RSpec.describe IsoDoc do
|
|
2523
2354
|
</iso-standard>
|
2524
2355
|
INPUT
|
2525
2356
|
output = <<~OUTPUT
|
2526
|
-
|
2527
|
-
|
2528
|
-
|
2529
|
-
<
|
2530
|
-
|
2531
|
-
|
2532
|
-
|
2533
|
-
|
2534
|
-
|
2535
|
-
|
2536
|
-
|
2537
|
-
|
2357
|
+
<foreword displayorder="1">
|
2358
|
+
<p>
|
2359
|
+
<xref target='N'>Clause 1, a)</xref>
|
2360
|
+
<xref target='note1'>Clause 1, a.1)</xref>
|
2361
|
+
<xref target='note2'>Clause 1, a.1.i)</xref>
|
2362
|
+
<xref target='AN'>Clause 1, a.1.i.A)</xref>
|
2363
|
+
<xref target='Anote1'>Clause 1, a.1.i.A.I)</xref>
|
2364
|
+
<xref target='Anote2'>Clause 1, a.1.i.A.I.a)</xref>
|
2365
|
+
</p>
|
2366
|
+
</foreword>
|
2367
|
+
OUTPUT
|
2368
|
+
expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
|
2369
|
+
.convert("test", input, true))
|
2370
|
+
.at("//xmlns:foreword").to_xml))
|
2371
|
+
.to be_equivalent_to xmlpp(output)
|
2372
|
+
end
|
2373
|
+
|
2374
|
+
it "cross-references definition lists" do
|
2375
|
+
input = <<~INPUT
|
2376
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
2377
|
+
<preface>
|
2378
|
+
<foreword>
|
2379
|
+
<p>
|
2380
|
+
<xref target="N1"/>
|
2381
|
+
<xref target="N2"/>
|
2382
|
+
<xref target="N"/>
|
2383
|
+
<xref target="note1"/>
|
2384
|
+
<xref target="note2"/>
|
2385
|
+
<xref target="AN"/>
|
2386
|
+
<xref target="Anote1"/>
|
2387
|
+
<xref target="Anote2"/>
|
2388
|
+
</p>
|
2538
2389
|
</foreword>
|
2539
|
-
|
2540
|
-
|
2541
|
-
|
2542
|
-
|
2543
|
-
|
2544
|
-
|
2545
|
-
|
2546
|
-
</
|
2547
|
-
|
2548
|
-
|
2549
|
-
|
2550
|
-
|
2551
|
-
|
2552
|
-
|
2553
|
-
|
2554
|
-
|
2555
|
-
<p>A</p>
|
2556
|
-
<ol>
|
2557
|
-
<li id='AN'>
|
2558
|
-
<p>A</p>
|
2559
|
-
<ol>
|
2560
|
-
<li id='Anote1'>
|
2561
|
-
<p>A</p>
|
2562
|
-
<ol>
|
2563
|
-
<li id='Anote2'>
|
2564
|
-
<p>A</p>
|
2565
|
-
</li>
|
2566
|
-
</ol>
|
2567
|
-
</li>
|
2568
|
-
</ol>
|
2569
|
-
</li>
|
2570
|
-
</ol>
|
2571
|
-
</li>
|
2572
|
-
</ol>
|
2573
|
-
</li>
|
2574
|
-
</ol>
|
2575
|
-
</li>
|
2576
|
-
</ol>
|
2390
|
+
<introduction id="intro">
|
2391
|
+
<dl id="N1">
|
2392
|
+
<li><p>A</p></li>
|
2393
|
+
</dl>
|
2394
|
+
<clause id="xyz"><title>Preparatory</title>
|
2395
|
+
<dl id="N2">
|
2396
|
+
<li><p>A</p></li>
|
2397
|
+
</dl>
|
2398
|
+
</clause>
|
2399
|
+
</introduction>
|
2400
|
+
</preface>
|
2401
|
+
<sections>
|
2402
|
+
<clause id="scope" type="scope"><title>Scope</title>
|
2403
|
+
<dl id="N">
|
2404
|
+
<li><p>A</p></li>
|
2405
|
+
</dl>
|
2577
2406
|
</clause>
|
2578
|
-
|
2579
|
-
|
2407
|
+
<terms id="terms"/>
|
2408
|
+
<clause id="widgets"><title>Widgets</title>
|
2409
|
+
<clause id="widgets1">
|
2410
|
+
<dl id="note1">
|
2411
|
+
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
|
2412
|
+
</dl>
|
2413
|
+
<dl id="note2">
|
2414
|
+
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83a">These results are based on a study carried out on three different types of kernel.</p>
|
2415
|
+
</dl>
|
2416
|
+
</clause>
|
2417
|
+
</clause>
|
2418
|
+
</sections>
|
2419
|
+
<annex id="annex1">
|
2420
|
+
<clause id="annex1a">
|
2421
|
+
<dl id="AN">
|
2422
|
+
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
|
2423
|
+
</dl>
|
2424
|
+
</clause>
|
2425
|
+
<clause id="annex1b">
|
2426
|
+
<dl id="Anote1">
|
2427
|
+
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
|
2428
|
+
</dl>
|
2429
|
+
<dl id="Anote2">
|
2430
|
+
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83a">These results are based on a study carried out on three different types of kernel.</p>
|
2431
|
+
</dl>
|
2432
|
+
</clause>
|
2433
|
+
</annex>
|
2434
|
+
</iso-standard>
|
2435
|
+
INPUT
|
2436
|
+
output = <<~OUTPUT
|
2437
|
+
<foreword displayorder='1'>
|
2438
|
+
<p>
|
2439
|
+
<xref target='N1'>Introduction, Definition List</xref>
|
2440
|
+
<xref target='N2'>Preparatory, Definition List</xref>
|
2441
|
+
<xref target='N'>Clause 1, Definition List</xref>
|
2442
|
+
<xref target='note1'>Clause 3.1, Definition List 1</xref>
|
2443
|
+
<xref target='note2'>Clause 3.1, Definition List 2</xref>
|
2444
|
+
<xref target='AN'>Annex A.1, Definition List</xref>
|
2445
|
+
<xref target='Anote1'>Annex A.2, Definition List 1</xref>
|
2446
|
+
<xref target='Anote2'>Annex A.2, Definition List 2</xref>
|
2447
|
+
</p>
|
2448
|
+
</foreword>
|
2580
2449
|
OUTPUT
|
2581
|
-
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
2582
|
-
.convert("test", input, true))
|
2450
|
+
expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
|
2451
|
+
.convert("test", input, true))
|
2452
|
+
.at("//xmlns:foreword").to_xml))
|
2453
|
+
.to be_equivalent_to xmlpp(output)
|
2583
2454
|
end
|
2584
2455
|
|
2456
|
+
it "cross-references definition list terms" do
|
2457
|
+
input = <<~INPUT
|
2458
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
2459
|
+
<preface>
|
2460
|
+
<foreword>
|
2461
|
+
<p>
|
2462
|
+
<xref target="N1"/>
|
2463
|
+
<xref target="N2"/>
|
2464
|
+
<xref target="N"/>
|
2465
|
+
<xref target="note1"/>
|
2466
|
+
<xref target="note2"/>
|
2467
|
+
<xref target="AN"/>
|
2468
|
+
<xref target="Anote1"/>
|
2469
|
+
<xref target="Anote2"/>
|
2470
|
+
</p>
|
2471
|
+
</foreword>
|
2472
|
+
<introduction id="intro">
|
2473
|
+
<dl id="N01">
|
2474
|
+
<dt id="N1"><p>A</p></dt>
|
2475
|
+
</dl>
|
2476
|
+
<clause id="xyz"><title>Preparatory</title>
|
2477
|
+
<dl id="N02" type="arabic">
|
2478
|
+
<dt id="N2"><p>A</p></dt>
|
2479
|
+
</dl>
|
2480
|
+
</clause>
|
2481
|
+
</introduction>
|
2482
|
+
</preface>
|
2483
|
+
<sections>
|
2484
|
+
<clause id="scope" type="scope"><title>Scope</title>
|
2485
|
+
<dl id="N0" type="roman">
|
2486
|
+
<dt id="N"><p>A</p></dt>
|
2487
|
+
</dl>
|
2488
|
+
</clause>
|
2489
|
+
<terms id="terms"/>
|
2490
|
+
<clause id="widgets"><title>Widgets</title>
|
2491
|
+
<clause id="widgets1">
|
2492
|
+
<dl id="note1l" type="alphabet">
|
2493
|
+
<dt id="note1"><p>A</p></dt>
|
2494
|
+
</dl>
|
2495
|
+
<dl id="note2l" type="roman_upper">
|
2496
|
+
<dt id="note2"><p>A</p></dt>
|
2497
|
+
</dl>
|
2498
|
+
</clause>
|
2499
|
+
</clause>
|
2500
|
+
</sections>
|
2501
|
+
<annex id="annex1">
|
2502
|
+
<clause id="annex1a">
|
2503
|
+
<dl id="ANl" type="alphabet_upper">
|
2504
|
+
<dt id="AN"><p>A</p></dt>
|
2505
|
+
</dl>
|
2506
|
+
</clause>
|
2507
|
+
<clause id="annex1b">
|
2508
|
+
<dl id="Anote1l" type="roman" start="4">
|
2509
|
+
<dt id="Anote1"><p>A</p></dt>
|
2510
|
+
</dl>
|
2511
|
+
<dl id="Anote2l">
|
2512
|
+
<dt id="Anote2"><p>A</p></dt>
|
2513
|
+
</dl>
|
2514
|
+
</clause>
|
2515
|
+
</annex>
|
2516
|
+
</iso-standard>
|
2517
|
+
INPUT
|
2518
|
+
output = <<~OUTPUT
|
2519
|
+
<foreword displayorder='1'>
|
2520
|
+
<p>
|
2521
|
+
<xref target='N1'>Introduction, Definition List: A</xref>
|
2522
|
+
<xref target='N2'>Preparatory, Definition List: A</xref>
|
2523
|
+
<xref target='N'>Clause 1, Definition List: A</xref>
|
2524
|
+
<xref target='note1'>Clause 3.1, Definition List 1: A</xref>
|
2525
|
+
<xref target='note2'>Clause 3.1, Definition List 2: A</xref>
|
2526
|
+
<xref target='AN'>Annex A.1, Definition List: A</xref>
|
2527
|
+
<xref target='Anote1'>Annex A.2, Definition List 1: A</xref>
|
2528
|
+
<xref target='Anote2'>Annex A.2, Definition List 2: A</xref>
|
2529
|
+
</p>
|
2530
|
+
</foreword>
|
2531
|
+
OUTPUT
|
2532
|
+
expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
|
2533
|
+
.convert("test", input, true))
|
2534
|
+
.at("//xmlns:foreword").to_xml))
|
2535
|
+
.to be_equivalent_to xmlpp(output)
|
2536
|
+
end
|
2537
|
+
|
2585
2538
|
it "cross-references bookmarks" do
|
2586
2539
|
input = <<~INPUT
|
2587
2540
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
@@ -2646,94 +2599,23 @@ RSpec.describe IsoDoc do
|
|
2646
2599
|
</iso-standard>
|
2647
2600
|
INPUT
|
2648
2601
|
output = <<~OUTPUT
|
2649
|
-
<
|
2650
|
-
|
2651
|
-
|
2652
|
-
|
2653
|
-
|
2654
|
-
|
2655
|
-
|
2656
|
-
|
2657
|
-
|
2658
|
-
|
2659
|
-
|
2660
|
-
|
2661
|
-
</p>
|
2662
|
-
</foreword>
|
2663
|
-
<introduction id='intro' displayorder='2'>
|
2664
|
-
<p id='N01'>
|
2665
|
-
<bookmark id='N1'/>
|
2666
|
-
</p>
|
2667
|
-
<clause id='xyz'>
|
2668
|
-
<title depth='2'>Preparatory</title>
|
2669
|
-
<p id='N02' type='arabic'>
|
2670
|
-
<bookmark id='N2'/>
|
2671
|
-
</p>
|
2672
|
-
</clause>
|
2673
|
-
</introduction>
|
2674
|
-
</preface>
|
2675
|
-
<sections>
|
2676
|
-
<clause id='scope' type='scope' displayorder='3'>
|
2677
|
-
<title depth='1'>
|
2678
|
-
1.
|
2679
|
-
<tab/>
|
2680
|
-
Scope
|
2681
|
-
</title>
|
2682
|
-
<p id='N0' type='roman'>
|
2683
|
-
<bookmark id='N'/>
|
2684
|
-
</p>
|
2685
|
-
</clause>
|
2686
|
-
<terms id='terms' displayorder='4'>
|
2687
|
-
<title>2.</title>
|
2688
|
-
</terms>
|
2689
|
-
<clause id='widgets' displayorder='5'>
|
2690
|
-
<title depth='1'>
|
2691
|
-
3.
|
2692
|
-
<tab/>
|
2693
|
-
Widgets
|
2694
|
-
</title>
|
2695
|
-
<clause id='widgets1'>
|
2696
|
-
<title>3.1.</title>
|
2697
|
-
<note id='note0'>
|
2698
|
-
<name>NOTE 1</name>
|
2699
|
-
</note>
|
2700
|
-
<note id='note1l' type='alphabet'>
|
2701
|
-
<name>NOTE 2</name>
|
2702
|
-
<bookmark id='note1'/>
|
2703
|
-
</note>
|
2704
|
-
<p id='note2l' type='roman_upper'>
|
2705
|
-
<bookmark id='note2'/>
|
2706
|
-
</p>
|
2707
|
-
</clause>
|
2708
|
-
</clause>
|
2709
|
-
</sections>
|
2710
|
-
<annex id='annex1' displayorder='6'>
|
2711
|
-
<title>
|
2712
|
-
<strong>Annex A</strong>
|
2713
|
-
<br/>
|
2714
|
-
(informative)
|
2715
|
-
</title>
|
2716
|
-
<clause id='annex1a'>
|
2717
|
-
<title>A.1.</title>
|
2718
|
-
<p id='ANl' type='alphabet_upper'>
|
2719
|
-
<bookmark id='AN'/>
|
2720
|
-
</p>
|
2721
|
-
</clause>
|
2722
|
-
<clause id='annex1b'>
|
2723
|
-
<title>A.2.</title>
|
2724
|
-
<figure id='Anote1l' type='roman' start='4'>
|
2725
|
-
<name>Figure A.1</name>
|
2726
|
-
<bookmark id='Anote1'/>
|
2727
|
-
</figure>
|
2728
|
-
<p id='Anote2l'>
|
2729
|
-
<bookmark id='Anote2'/>
|
2730
|
-
</p>
|
2731
|
-
</clause>
|
2732
|
-
</annex>
|
2733
|
-
</iso-standard>
|
2602
|
+
<foreword displayorder='1'>
|
2603
|
+
<p>
|
2604
|
+
<xref target='N1'>Introduction</xref>
|
2605
|
+
<xref target='N2'>Preparatory</xref>
|
2606
|
+
<xref target='N'>Clause 1</xref>
|
2607
|
+
<xref target='note1'>Note 2</xref>
|
2608
|
+
<xref target='note2'>Clause 3.1</xref>
|
2609
|
+
<xref target='AN'>Annex A.1</xref>
|
2610
|
+
<xref target='Anote1'>Figure A.1</xref>
|
2611
|
+
<xref target='Anote2'>Annex A.2</xref>
|
2612
|
+
</p>
|
2613
|
+
</foreword>
|
2734
2614
|
OUTPUT
|
2735
|
-
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
2736
|
-
.convert("test", input, true))
|
2615
|
+
expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
|
2616
|
+
.convert("test", input, true))
|
2617
|
+
.at("//xmlns:foreword").to_xml))
|
2618
|
+
.to be_equivalent_to xmlpp(output)
|
2737
2619
|
end
|
2738
2620
|
|
2739
2621
|
it "realises subsequences" do
|
@@ -2781,9 +2663,6 @@ RSpec.describe IsoDoc do
|
|
2781
2663
|
</iso-standard>
|
2782
2664
|
INPUT
|
2783
2665
|
output = <<~OUTPUT
|
2784
|
-
<?xml version='1.0'?>
|
2785
|
-
<iso-standard xmlns='http://riboseinc.com/isoxml' type="presentation">
|
2786
|
-
<preface>
|
2787
2666
|
<foreword id='fwd' displayorder="1">
|
2788
2667
|
<p>
|
2789
2668
|
<xref target='N1'>Figure 1</xref>
|
@@ -2796,45 +2675,11 @@ RSpec.describe IsoDoc do
|
|
2796
2675
|
<xref target='N8'>Figure 5</xref>
|
2797
2676
|
</p>
|
2798
2677
|
</foreword>
|
2799
|
-
<introduction id='intro' displayorder="2">
|
2800
|
-
<figure id='N1'>
|
2801
|
-
<name>Figure 1 — Split-it-right sample divider</name>
|
2802
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
2803
|
-
</figure>
|
2804
|
-
<figure id='N2' subsequence='A'>
|
2805
|
-
<name>Figure 2a — Split-it-right sample divider</name>
|
2806
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
2807
|
-
</figure>
|
2808
|
-
<figure id='N3' subsequence='A'>
|
2809
|
-
<name>Figure 2b — Split-it-right sample divider</name>
|
2810
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
2811
|
-
</figure>
|
2812
|
-
<figure id='N4' subsequence='B'>
|
2813
|
-
<name>Figure 3a — Split-it-right sample divider</name>
|
2814
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
2815
|
-
</figure>
|
2816
|
-
<figure id='N5' subsequence='B'>
|
2817
|
-
<name>Figure 3b — Split-it-right sample divider</name>
|
2818
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
2819
|
-
</figure>
|
2820
|
-
<figure id='N6' subsequence='B'>
|
2821
|
-
<name>Figure 3c — Split-it-right sample divider</name>
|
2822
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
2823
|
-
</figure>
|
2824
|
-
<figure id='N7'>
|
2825
|
-
<name>Figure 4 — Split-it-right sample divider</name>
|
2826
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
2827
|
-
</figure>
|
2828
|
-
<figure id='N8'>
|
2829
|
-
<name>Figure 5 — Split-it-right sample divider</name>
|
2830
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
2831
|
-
</figure>
|
2832
|
-
</introduction>
|
2833
|
-
</preface>
|
2834
|
-
</iso-standard>
|
2835
2678
|
OUTPUT
|
2836
|
-
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
2837
|
-
.convert("test", input, true))
|
2679
|
+
expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
|
2680
|
+
.convert("test", input, true))
|
2681
|
+
.at("//xmlns:foreword").to_xml))
|
2682
|
+
.to be_equivalent_to xmlpp(output)
|
2838
2683
|
end
|
2839
2684
|
|
2840
2685
|
it "realises numbering overrides" do
|
@@ -3004,276 +2849,53 @@ RSpec.describe IsoDoc do
|
|
3004
2849
|
</iso-standard>
|
3005
2850
|
INPUT
|
3006
2851
|
output = <<~OUTPUT
|
3007
|
-
|
3008
|
-
|
3009
|
-
|
3010
|
-
|
3011
|
-
|
3012
|
-
|
3013
|
-
|
3014
|
-
|
3015
|
-
|
3016
|
-
|
3017
|
-
|
3018
|
-
|
3019
|
-
|
3020
|
-
|
3021
|
-
|
3022
|
-
|
3023
|
-
|
3024
|
-
|
3025
|
-
|
3026
|
-
|
3027
|
-
|
3028
|
-
|
3029
|
-
|
3030
|
-
|
3031
|
-
|
3032
|
-
|
3033
|
-
|
3034
|
-
|
3035
|
-
|
3036
|
-
|
3037
|
-
|
3038
|
-
|
3039
|
-
|
3040
|
-
|
3041
|
-
|
3042
|
-
|
3043
|
-
|
3044
|
-
|
3045
|
-
|
3046
|
-
|
3047
|
-
|
3048
|
-
|
3049
|
-
<xref target='S30'>Bibliography Subsection</xref>
|
3050
|
-
</p>
|
3051
|
-
</foreword>
|
3052
|
-
<introduction id='intro' displayorder='2'>
|
3053
|
-
<figure id='N1'>
|
3054
|
-
<name>Figure 1 — Split-it-right sample divider</name>
|
3055
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3056
|
-
</figure>
|
3057
|
-
<figure id='N2' number='A'>
|
3058
|
-
<name>Figure A — Split-it-right sample divider</name>
|
3059
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3060
|
-
</figure>
|
3061
|
-
<figure id='N3'>
|
3062
|
-
<name>Figure B — Split-it-right sample divider</name>
|
3063
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3064
|
-
</figure>
|
3065
|
-
<figure id='N4' number='7'>
|
3066
|
-
<name>Figure 7 — Split-it-right sample divider</name>
|
3067
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3068
|
-
</figure>
|
3069
|
-
<figure id='N5'>
|
3070
|
-
<name>Figure 8 — Split-it-right sample divider</name>
|
3071
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3072
|
-
</figure>
|
3073
|
-
<figure id='N6' subsequence='B'>
|
3074
|
-
<name>Figure 9a — Split-it-right sample divider</name>
|
3075
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3076
|
-
</figure>
|
3077
|
-
<figure id='N7' subsequence='B' number='c'>
|
3078
|
-
<name>Figure 9c — Split-it-right sample divider</name>
|
3079
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3080
|
-
</figure>
|
3081
|
-
<figure id='N8' subsequence='B'>
|
3082
|
-
<name>Figure 9d — Split-it-right sample divider</name>
|
3083
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3084
|
-
</figure>
|
3085
|
-
<figure id='N9' subsequence='C' number='20f'>
|
3086
|
-
<name>Figure 20f — Split-it-right sample divider</name>
|
3087
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3088
|
-
</figure>
|
3089
|
-
<figure id='N10' subsequence='C'>
|
3090
|
-
<name>Figure 20g — Split-it-right sample divider</name>
|
3091
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3092
|
-
</figure>
|
3093
|
-
<figure id='N11' number='A.1'>
|
3094
|
-
<name>Figure A.1 — Split-it-right sample divider</name>
|
3095
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3096
|
-
</figure>
|
3097
|
-
<figure id='N12'>
|
3098
|
-
<name>Figure A.2 — Split-it-right sample divider</name>
|
3099
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3100
|
-
</figure>
|
3101
|
-
<figure id='N13' number='100'>
|
3102
|
-
<name>Figure 100 — Split-it-right sample divider</name>
|
3103
|
-
<image src='rice_images/rice_image1.png' id='_8357ede4-6d44-4672-bac4-9a85e82ab7f0' mimetype='image/png'/>
|
3104
|
-
</figure>
|
3105
|
-
</introduction>
|
3106
|
-
</preface>
|
3107
|
-
<sections>
|
3108
|
-
<clause id='S1' number='1bis' type='scope' inline-header='false' obligation='normative' displayorder='3'>
|
3109
|
-
<title depth='1'>
|
3110
|
-
1bis.
|
3111
|
-
<tab/>
|
3112
|
-
Scope
|
3113
|
-
</title>
|
3114
|
-
<p id='_'>Text</p>
|
3115
|
-
</clause>
|
3116
|
-
<terms id='S3' number='3bis' obligation='normative' displayorder='5'>
|
3117
|
-
<title depth='1'>
|
3118
|
-
3bis.
|
3119
|
-
<tab/>
|
3120
|
-
Terms and definitions
|
3121
|
-
</title>
|
3122
|
-
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
3123
|
-
<term id='S4' number='4bis'>
|
3124
|
-
<name>3bis.4bis.</name>
|
3125
|
-
<preferred>Term1</preferred>
|
3126
|
-
</term>
|
3127
|
-
</terms>
|
3128
|
-
<definitions id='S12' number='12bis' type='abbreviated_terms' obligation='normative' displayorder='6'>
|
3129
|
-
<title depth='1'>
|
3130
|
-
12bis.
|
3131
|
-
<tab/>
|
3132
|
-
Abbreviated terms
|
3133
|
-
</title>
|
3134
|
-
</definitions>
|
3135
|
-
<clause id='S13' number='13bis' inline-header='false' obligation='normative' displayorder='7'>
|
3136
|
-
<title depth='1'>
|
3137
|
-
13bis.
|
3138
|
-
<tab/>
|
3139
|
-
Clause 4
|
3140
|
-
</title>
|
3141
|
-
<clause id='S14' number='14bis' inline-header='false' obligation='normative'>
|
3142
|
-
<title depth='2'>
|
3143
|
-
13bis.14bis.
|
3144
|
-
<tab/>
|
3145
|
-
Introduction
|
3146
|
-
</title>
|
3147
|
-
</clause>
|
3148
|
-
<clause id='S15' inline-header='false' obligation='normative'>
|
3149
|
-
<title depth='2'>
|
3150
|
-
13bis.14bit.
|
3151
|
-
<tab/>
|
3152
|
-
Clause A
|
3153
|
-
</title>
|
3154
|
-
</clause>
|
3155
|
-
<clause id='S16' inline-header='false' obligation='normative'>
|
3156
|
-
<title depth='2'>
|
3157
|
-
13bis.14biu.
|
3158
|
-
<tab/>
|
3159
|
-
Clause B
|
3160
|
-
</title>
|
3161
|
-
</clause>
|
3162
|
-
<clause id='S17' number='0' inline-header='false' obligation='normative'>
|
3163
|
-
<title depth='2'>
|
3164
|
-
13bis.0.
|
3165
|
-
<tab/>
|
3166
|
-
Clause C
|
3167
|
-
</title>
|
3168
|
-
</clause>
|
3169
|
-
<clause id='S18' inline-header='false' obligation='normative'>
|
3170
|
-
<title depth='2'>
|
3171
|
-
13bis.1.
|
3172
|
-
<tab/>
|
3173
|
-
Clause D
|
3174
|
-
</title>
|
3175
|
-
</clause>
|
3176
|
-
<clause id='S19' inline-header='false' obligation='normative'>
|
3177
|
-
<title depth='2'>
|
3178
|
-
13bis.2.
|
3179
|
-
<tab/>
|
3180
|
-
Clause E
|
3181
|
-
</title>
|
3182
|
-
</clause>
|
3183
|
-
<clause id='S20' number='a' inline-header='false' obligation='normative'>
|
3184
|
-
<title depth='2'>
|
3185
|
-
13bis.a.
|
3186
|
-
<tab/>
|
3187
|
-
Clause F
|
3188
|
-
</title>
|
3189
|
-
</clause>
|
3190
|
-
<clause id='S21' inline-header='false' obligation='normative'>
|
3191
|
-
<title depth='2'>
|
3192
|
-
13bis.b.
|
3193
|
-
<tab/>
|
3194
|
-
Clause G
|
3195
|
-
</title>
|
3196
|
-
</clause>
|
3197
|
-
<clause id='S22' number='B' inline-header='false' obligation='normative'>
|
3198
|
-
<title depth='2'>
|
3199
|
-
13bis.B.
|
3200
|
-
<tab/>
|
3201
|
-
Clause H
|
3202
|
-
</title>
|
3203
|
-
</clause>
|
3204
|
-
<clause id='S23' inline-header='false' obligation='normative'>
|
3205
|
-
<title depth='2'>
|
3206
|
-
13bis.C.
|
3207
|
-
<tab/>
|
3208
|
-
Clause I
|
3209
|
-
</title>
|
3210
|
-
</clause>
|
3211
|
-
</clause>
|
3212
|
-
<clause id='S24' number='16bis' inline-header='false' obligation='normative' displayorder='8'>
|
3213
|
-
<title depth='1'>
|
3214
|
-
16bis.
|
3215
|
-
<tab/>
|
3216
|
-
Terms and Definitions
|
3217
|
-
</title>
|
3218
|
-
</clause>
|
3219
|
-
</sections>
|
3220
|
-
<annex id='S25' obligation='normative' displayorder='9'>
|
3221
|
-
<title>
|
3222
|
-
<strong>Annex A</strong>
|
3223
|
-
<br/>
|
3224
|
-
(normative)
|
3225
|
-
<br/>
|
3226
|
-
<br/>
|
3227
|
-
<strong>First Annex</strong>
|
3228
|
-
</title>
|
3229
|
-
</annex>
|
3230
|
-
<annex id='S26' number='17bis' inline-header='false' obligation='normative' displayorder='10'>
|
3231
|
-
<title>
|
3232
|
-
<strong>Annex 17bis</strong>
|
3233
|
-
<br/>
|
3234
|
-
(normative)
|
3235
|
-
<br/>
|
3236
|
-
<br/>
|
3237
|
-
<strong>Annex</strong>
|
3238
|
-
</title>
|
3239
|
-
<clause id='S27' number='18bis' inline-header='false' obligation='normative'>
|
3240
|
-
<title depth='2'>
|
3241
|
-
17bis.18bis.
|
3242
|
-
<tab/>
|
3243
|
-
Annex A.1
|
3244
|
-
</title>
|
3245
|
-
</clause>
|
3246
|
-
</annex>
|
3247
|
-
<annex id='S28' inline-header='false' obligation='normative' displayorder='11'>
|
3248
|
-
<title>
|
3249
|
-
<strong>Annex 17bit</strong>
|
3250
|
-
<br/>
|
3251
|
-
(normative)
|
3252
|
-
<br/>
|
3253
|
-
<br/>
|
3254
|
-
<strong>Another Annex</strong>
|
3255
|
-
</title>
|
3256
|
-
</annex>
|
3257
|
-
<bibliography>
|
3258
|
-
<references id='S2' number='2bis' normative='true' obligation='informative' displayorder='4'>
|
3259
|
-
<title depth='1'>
|
3260
|
-
2bis.
|
3261
|
-
<tab/>
|
3262
|
-
Normative references
|
3263
|
-
</title>
|
3264
|
-
<p id='_'>There are no normative references in this document.</p>
|
3265
|
-
</references>
|
3266
|
-
<clause id='S29' number='19bis' obligation='informative' displayorder='12'>
|
3267
|
-
<title depth='1'>Bibliography</title>
|
3268
|
-
<references id='S30' number='20bis' normative='false' obligation='informative'>
|
3269
|
-
<title depth='2'>Bibliography Subsection</title>
|
3270
|
-
</references>
|
3271
|
-
</clause>
|
3272
|
-
</bibliography>
|
3273
|
-
</iso-standard>
|
2852
|
+
<foreword id='fwd' displayorder='1'>
|
2853
|
+
<p>
|
2854
|
+
<xref target='N1'>Figure 1</xref>
|
2855
|
+
<xref target='N2'>Figure A</xref>
|
2856
|
+
<xref target='N3'>Figure B</xref>
|
2857
|
+
<xref target='N4'>Figure 7</xref>
|
2858
|
+
<xref target='N5'>Figure 8</xref>
|
2859
|
+
<xref target='N6'>Figure 9a</xref>
|
2860
|
+
<xref target='N7'>Figure 9c</xref>
|
2861
|
+
<xref target='N8'>Figure 9d</xref>
|
2862
|
+
<xref target='N9'>Figure 20f</xref>
|
2863
|
+
<xref target='N10'>Figure 20g</xref>
|
2864
|
+
<xref target='N11'>Figure A.1</xref>
|
2865
|
+
<xref target='N12'>Figure A.2</xref>
|
2866
|
+
<xref target='N13'>Figure 100</xref>
|
2867
|
+
</p>
|
2868
|
+
<p>
|
2869
|
+
<xref target='S1'>Clause 1bis</xref>
|
2870
|
+
<xref target='S2'>Clause 2bis</xref>
|
2871
|
+
<xref target='S3'>Clause 3bis</xref>
|
2872
|
+
<xref target='S4'>Clause 3bis.4bis</xref>
|
2873
|
+
<xref target='S12'>Clause 12bis</xref>
|
2874
|
+
<xref target='S13'>Clause 13bis</xref>
|
2875
|
+
<xref target='S14'>Clause 13bis.14bis</xref>
|
2876
|
+
<xref target='S15'>Clause 13bis.14bit</xref>
|
2877
|
+
<xref target='S16'>Clause 13bis.14biu</xref>
|
2878
|
+
<xref target='S17'>Clause 13bis.0</xref>
|
2879
|
+
<xref target='S18'>Clause 13bis.1</xref>
|
2880
|
+
<xref target='S19'>Clause 13bis.2</xref>
|
2881
|
+
<xref target='S20'>Clause 13bis.a</xref>
|
2882
|
+
<xref target='S21'>Clause 13bis.b</xref>
|
2883
|
+
<xref target='S22'>Clause 13bis.B</xref>
|
2884
|
+
<xref target='S23'>Clause 13bis.C</xref>
|
2885
|
+
<xref target='S24'>Clause 16bis</xref>
|
2886
|
+
<xref target='S25'>Annex A</xref>
|
2887
|
+
<xref target='S26'>Annex 17bis</xref>
|
2888
|
+
<xref target='S27'>Annex 17bis.18bis</xref>
|
2889
|
+
<xref target='S28'>Annex 17bit</xref>
|
2890
|
+
<xref target='S29'>Bibliography</xref>
|
2891
|
+
<xref target='S30'>Bibliography Subsection</xref>
|
2892
|
+
</p>
|
2893
|
+
</foreword>
|
3274
2894
|
OUTPUT
|
3275
|
-
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
3276
|
-
.convert("test", input, true))
|
2895
|
+
expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
|
2896
|
+
.convert("test", input, true))
|
2897
|
+
.at("//xmlns:foreword").to_xml))
|
2898
|
+
.to be_equivalent_to xmlpp(output)
|
3277
2899
|
end
|
3278
2900
|
|
3279
2901
|
it "realises roman counter for xrefs" do
|