isodoc 1.0.24 → 1.0.29
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/.github/workflows/macos.yml +14 -4
- data/.github/workflows/ubuntu.yml +19 -5
- data/.github/workflows/windows.yml +14 -4
- data/isodoc.gemspec +1 -1
- data/lib/isodoc-yaml/i18n-en.yaml +3 -1
- data/lib/isodoc-yaml/i18n-fr.yaml +3 -1
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +3 -1
- data/lib/isodoc/convert.rb +1 -0
- data/lib/isodoc/function/blocks.rb +43 -49
- data/lib/isodoc/function/{blocks_example.rb → blocks_example_note.rb} +57 -2
- data/lib/isodoc/function/cleanup.rb +16 -2
- data/lib/isodoc/function/i18n.rb +1 -0
- data/lib/isodoc/function/inline.rb +79 -77
- data/lib/isodoc/function/inline_simple.rb +72 -0
- data/lib/isodoc/function/lists.rb +12 -6
- data/lib/isodoc/function/references.rb +51 -39
- data/lib/isodoc/function/reqt.rb +13 -4
- data/lib/isodoc/function/section.rb +19 -8
- data/lib/isodoc/function/table.rb +3 -4
- data/lib/isodoc/function/terms.rb +1 -1
- data/lib/isodoc/function/to_word_html.rb +23 -13
- data/lib/isodoc/function/utils.rb +13 -6
- data/lib/isodoc/function/xref_counter.rb +43 -9
- data/lib/isodoc/function/xref_gen.rb +2 -1
- data/lib/isodoc/function/xref_gen_seq.rb +11 -10
- data/lib/isodoc/function/xref_sect_gen.rb +24 -24
- data/lib/isodoc/headlesshtml_convert.rb +5 -0
- data/lib/isodoc/html_convert.rb +5 -0
- data/lib/isodoc/html_function/footnotes.rb +3 -3
- data/lib/isodoc/html_function/html.rb +16 -1
- data/lib/isodoc/html_function/postprocess.rb +6 -5
- data/lib/isodoc/metadata.rb +10 -3
- data/lib/isodoc/metadata_date.rb +19 -7
- data/lib/isodoc/pdf_convert.rb +5 -0
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_convert.rb +5 -0
- data/lib/isodoc/word_function/body.rb +13 -51
- data/lib/isodoc/word_function/footnotes.rb +3 -3
- data/lib/isodoc/word_function/inline.rb +75 -0
- data/lib/isodoc/word_function/postprocess.rb +13 -2
- data/lib/isodoc/word_function/table.rb +3 -3
- data/lib/isodoc/xslfo_convert.rb +5 -0
- data/spec/assets/i18n.yaml +4 -1
- data/spec/assets/odf.emf +0 -0
- data/spec/assets/odf.svg +4 -0
- data/spec/assets/odf1.svg +4 -0
- data/spec/isodoc/blocks_spec.rb +274 -51
- data/spec/isodoc/cleanup_spec.rb +317 -25
- data/spec/isodoc/footnotes_spec.rb +20 -5
- data/spec/isodoc/i18n_spec.rb +12 -12
- data/spec/isodoc/inline_spec.rb +299 -4
- data/spec/isodoc/lists_spec.rb +8 -8
- data/spec/isodoc/metadata_spec.rb +112 -3
- data/spec/isodoc/postproc_spec.rb +39 -21
- data/spec/isodoc/ref_spec.rb +121 -52
- data/spec/isodoc/section_spec.rb +236 -207
- data/spec/isodoc/table_spec.rb +28 -28
- data/spec/isodoc/terms_spec.rb +57 -13
- data/spec/isodoc/xref_spec.rb +218 -71
- metadata +10 -5
@@ -33,12 +33,12 @@ module IsoDoc::WordFunction
|
|
33
33
|
align: td["align"], style: style.gsub(/\n/, "") }
|
34
34
|
end
|
35
35
|
|
36
|
-
def
|
36
|
+
def table_attrs(node)
|
37
37
|
super.merge(attr_code({
|
38
38
|
summary: node["summary"],
|
39
39
|
width: node["width"],
|
40
40
|
style: "mso-table-anchor-horizontal:column;"\
|
41
|
-
"mso-table-overlap:never;border-spacing:0;border-width:1px
|
41
|
+
"mso-table-overlap:never;border-spacing:0;border-width:1px;#{keep_style(node)}"
|
42
42
|
}))
|
43
43
|
end
|
44
44
|
|
@@ -46,7 +46,7 @@ module IsoDoc::WordFunction
|
|
46
46
|
@in_table = true
|
47
47
|
table_title_parse(node, out)
|
48
48
|
out.div **{ align: "center", class: "table_container" } do |div|
|
49
|
-
div.table **
|
49
|
+
div.table **table_attrs(node) do |t|
|
50
50
|
thead_parse(node, t)
|
51
51
|
tbody_parse(node, t)
|
52
52
|
tfoot_parse(node, t)
|
data/lib/isodoc/xslfo_convert.rb
CHANGED
@@ -13,6 +13,11 @@ module IsoDoc
|
|
13
13
|
"_pdfimages"
|
14
14
|
end
|
15
15
|
|
16
|
+
def initialize(options)
|
17
|
+
@format = :pdf
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
16
21
|
def convert(filename, file = nil, debug = false)
|
17
22
|
file = File.read(filename, encoding: "utf-8") if file.nil?
|
18
23
|
docxml, outname_html, dir = convert_init(file, filename, debug)
|
data/spec/assets/i18n.yaml
CHANGED
data/spec/assets/odf.emf
ADDED
Binary file
|
data/spec/assets/odf.svg
ADDED
data/spec/isodoc/blocks_spec.rb
CHANGED
@@ -5,7 +5,7 @@ RSpec.describe IsoDoc do
|
|
5
5
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<preface><foreword>
|
8
|
-
<note>
|
8
|
+
<note id="A" keep-with-next="true" keep-lines-together="true">
|
9
9
|
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
|
10
10
|
</note>
|
11
11
|
</foreword></preface>
|
@@ -15,7 +15,7 @@ RSpec.describe IsoDoc do
|
|
15
15
|
<br/>
|
16
16
|
<div>
|
17
17
|
<h1 class="ForewordTitle">Foreword</h1>
|
18
|
-
<div id="" class="Note">
|
18
|
+
<div id="A" class="Note" style="page-break-after: avoid;page-break-inside: avoid;">
|
19
19
|
<p><span class="note_label">NOTE</span>  These results are based on a study carried out on three different types of kernel.</p>
|
20
20
|
</div>
|
21
21
|
</div>
|
@@ -30,7 +30,7 @@ RSpec.describe IsoDoc do
|
|
30
30
|
expect(xmlpp(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
31
31
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
32
32
|
<preface><foreword>
|
33
|
-
<note>
|
33
|
+
<note id="A">
|
34
34
|
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
|
35
35
|
</note>
|
36
36
|
</foreword></preface>
|
@@ -47,7 +47,7 @@ RSpec.describe IsoDoc do
|
|
47
47
|
<p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
|
48
48
|
<div>
|
49
49
|
<h1 class="ForewordTitle">Foreword</h1>
|
50
|
-
<div id="" class="Note">
|
50
|
+
<div id="A" class="Note">
|
51
51
|
<p class="Note"><span class="note_label">NOTE</span><span style="mso-tab-count:1">  </span>These results are based on a study carried out on three different types of kernel.</p>
|
52
52
|
</div>
|
53
53
|
</div>
|
@@ -134,7 +134,7 @@ INPUT
|
|
134
134
|
<br/>
|
135
135
|
<div>
|
136
136
|
<h1 class="ForewordTitle">Foreword</h1>
|
137
|
-
<div
|
137
|
+
<div class="Note">
|
138
138
|
<p><span class="note_label">NOTE</span>  These results are based on a study carried out on three different types of kernel.</p>
|
139
139
|
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83a">These results are based on a study carried out on three different types of kernel.</p>
|
140
140
|
</div>
|
@@ -150,7 +150,7 @@ INPUT
|
|
150
150
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
151
151
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
152
152
|
<preface><foreword>
|
153
|
-
<note>
|
153
|
+
<note id="A">
|
154
154
|
<dl>
|
155
155
|
<dt>A</dt>
|
156
156
|
<dd><p>B</p></dd>
|
@@ -165,7 +165,7 @@ INPUT
|
|
165
165
|
<br/>
|
166
166
|
<div>
|
167
167
|
<h1 class="ForewordTitle">Foreword</h1>
|
168
|
-
<div id="" class="Note"><p><span class="note_label">NOTE</span>  </p>
|
168
|
+
<div id="A" class="Note"><p><span class="note_label">NOTE</span>  </p>
|
169
169
|
<dl><dt><p>A</p></dt><dd><p>B</p></dd></dl>
|
170
170
|
<ul>
|
171
171
|
<li>C</li></ul>
|
@@ -183,7 +183,7 @@ INPUT
|
|
183
183
|
expect(xmlpp(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
184
184
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
185
185
|
<preface><foreword>
|
186
|
-
<note>
|
186
|
+
<note id="A">
|
187
187
|
<dl>
|
188
188
|
<dt>A</dt>
|
189
189
|
<dd><p>B</p></dd>
|
@@ -205,7 +205,7 @@ INPUT
|
|
205
205
|
<p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
|
206
206
|
<div>
|
207
207
|
<h1 class="ForewordTitle">Foreword</h1>
|
208
|
-
<div id="" class="Note"><p class="Note"><span class="note_label">NOTE</span><span style="mso-tab-count:1">  </span></p>
|
208
|
+
<div id="A" class="Note"><p class="Note"><span class="note_label">NOTE</span><span style="mso-tab-count:1">  </span></p>
|
209
209
|
<table class="dl"><tr><td valign="top" align="left"><p align="left" style="margin-left:0pt;text-align:left;">A</p></td><td valign="top"><p class="Note">B</p></td></tr></table>
|
210
210
|
<ul>
|
211
211
|
<li>C</li></ul>
|
@@ -317,7 +317,7 @@ OUTPUT
|
|
317
317
|
expect(xmlpp(strip_guid(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
318
318
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
319
319
|
<preface><foreword>
|
320
|
-
<figure id="figureA-1">
|
320
|
+
<figure id="figureA-1" keep-with-next="true" keep-lines-together="true">
|
321
321
|
<name>Split-it-right <em>sample</em> divider<fn reference="1"><p>X</p></fn></name>
|
322
322
|
<image src="rice_images/rice_image1.png" height="20" width="30" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png" alt="alttext" title="titletxt"/>
|
323
323
|
<image src="rice_images/rice_image1.png" height="20" width="auto" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f1" mimetype="image/png"/>
|
@@ -345,7 +345,7 @@ B
|
|
345
345
|
<br/>
|
346
346
|
<div>
|
347
347
|
<h1 class="ForewordTitle">Foreword</h1>
|
348
|
-
<div id="figureA-1" class="figure">
|
348
|
+
<div id="figureA-1" class="figure" style='page-break-after: avoid;page-break-inside: avoid;'>
|
349
349
|
|
350
350
|
<img src="rice_images/rice_image1.png" height="20" width="30" alt="alttext" title="titletxt"/>
|
351
351
|
<img src="rice_images/rice_image1.png" height="20" width="auto"/>
|
@@ -355,7 +355,7 @@ B
|
|
355
355
|
</div></aside>
|
356
356
|
<p style='page-break-after:avoid;'><b>Key</b></p><dl><dt><p>A</p></dt><dd><p>B</p></dd></dl>
|
357
357
|
<p class="FigureTitle" style="text-align:center;">Figure 1 — Split-it-right <i>sample</i> divider
|
358
|
-
<a
|
358
|
+
<a class='FootnoteRef' href='#fn:1'>
|
359
359
|
<sup>1</sup>
|
360
360
|
</a>
|
361
361
|
</p></div>
|
@@ -380,6 +380,7 @@ B
|
|
380
380
|
end
|
381
381
|
|
382
382
|
it "processes figures (Word)" do
|
383
|
+
FileUtils.rm_rf "spec/assets/odf1.emf"
|
383
384
|
expect(xmlpp(strip_guid(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(/['"][^'".]+\.gif['"]/, "'_.gif'").gsub(/mso-bookmark:_Ref\d+/, "mso-bookmark:_Ref")))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
384
385
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
385
386
|
<preface><foreword>
|
@@ -417,8 +418,8 @@ B
|
|
417
418
|
<div id="figureA-1" class="figure">
|
418
419
|
|
419
420
|
<img src="rice_images/rice_image1.png" height="20" width="30" alt="alttext" title="titletext"/>
|
420
|
-
<img src="rice_images/rice_image1.png"/>
|
421
|
-
<img src=
|
421
|
+
<img src="rice_images/rice_image1.png" height='20' width='auto'/>
|
422
|
+
<img src='_.gif' height='20' width='auto'/>
|
422
423
|
<a href="#_" class="TableFootnoteRef">a</a><aside><div id="ftn_"><span><span id="_" class="TableFootnoteRef">a</span><span style="mso-tab-count:1">  </span></span>
|
423
424
|
<p id="_">The time <span class="stem">(#(t_90)#)</span> was estimated to be 18,2 min for this example.</p>
|
424
425
|
</div></aside>
|
@@ -426,7 +427,7 @@ B
|
|
426
427
|
<p class='FigureTitle' style='text-align:center;'>
|
427
428
|
Figure 1 — Split-it-right sample divider
|
428
429
|
<span style='mso-bookmark:_Ref'>
|
429
|
-
<a href='#ftn1' epub:type='footnote'>
|
430
|
+
<a href='#ftn1' epub:type='footnote' class='FootnoteRef'>
|
430
431
|
<sup>1</sup>
|
431
432
|
</a>
|
432
433
|
</span>
|
@@ -452,11 +453,122 @@ B
|
|
452
453
|
OUTPUT
|
453
454
|
end
|
454
455
|
|
456
|
+
it "converts SVG (Word)" do
|
457
|
+
FileUtils.rm_rf "spec/assets/odf1.emf"
|
458
|
+
expect(xmlpp(strip_guid(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true).gsub(/['"][^'".]+(?<!odf1)(?<!odf)\.emf['"]/, "'_.emf'").gsub(/mso-bookmark:_Ref\d+/, "mso-bookmark:_Ref")))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
459
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
460
|
+
<preface><foreword>
|
461
|
+
<figure id="figureA-1">
|
462
|
+
<image src="spec/assets/odf.svg" mimetype="image/svg+xml"/>
|
463
|
+
<image src="spec/assets/odf1.svg" mimetype="image/svg+xml"/>
|
464
|
+
<image src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICA8Y2lyY2xlIGZpbGw9IiMwMDkiIHI9IjQ1IiBjeD0iNTAiIGN5PSI1MCIvPgogIDxwYXRoIGQ9Ik0zMywyNkg3OEEzNywzNywwLDAsMSwzMyw4M1Y1N0g1OVY0M0gzM1oiIGZpbGw9IiNGRkYiLz4KPC9zdmc+Cg==" id="_d3731866-1a07-435a-a6c2-1acd41023a4e" mimetype="image/svg+xml" height="auto" width="auto"/>
|
465
|
+
</figure>
|
466
|
+
</foreword></preface>
|
467
|
+
</iso-standard>
|
468
|
+
INPUT
|
469
|
+
<html xmlns:epub='http://www.idpf.org/2007/ops' lang='en'>
|
470
|
+
<head>
|
471
|
+
<style>
|
472
|
+
</style>
|
473
|
+
</head>
|
474
|
+
<body lang='EN-US' link='blue' vlink='#954F72'>
|
475
|
+
<div class='WordSection1'>
|
476
|
+
<p> </p>
|
477
|
+
</div>
|
478
|
+
<p>
|
479
|
+
<br clear='all' class='section'/>
|
480
|
+
</p>
|
481
|
+
<div class='WordSection2'>
|
482
|
+
<p>
|
483
|
+
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
484
|
+
</p>
|
485
|
+
<div>
|
486
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
487
|
+
<div id='figureA-1' class='figure'>
|
488
|
+
<img src='spec/assets/odf.emf'/>
|
489
|
+
<img src='spec/assets/odf1.emf'/>
|
490
|
+
<img src='_.emf' height='auto' width='auto'/>
|
491
|
+
<p class='FigureTitle' style='text-align:center;'>Figure 1</p>
|
492
|
+
</div>
|
493
|
+
</div>
|
494
|
+
<p> </p>
|
495
|
+
</div>
|
496
|
+
<p>
|
497
|
+
<br clear='all' class='section'/>
|
498
|
+
</p>
|
499
|
+
<div class='WordSection3'>
|
500
|
+
<p class='zzSTDTitle1'/>
|
501
|
+
</div>
|
502
|
+
</body>
|
503
|
+
</html>
|
504
|
+
|
505
|
+
OUTPUT
|
506
|
+
end
|
507
|
+
|
508
|
+
context "disable inkscape" do
|
509
|
+
|
510
|
+
it "converts SVG (Word) with inkscape disabled" do
|
511
|
+
FileUtils.rm_rf "spec/assets/odf1.emf"
|
512
|
+
allow(IsoDoc::WordFunction::Body).to receive(:inkscape_installed?).and_return(nil)
|
513
|
+
allow_any_instance_of(IsoDoc::WordFunction::Body).to receive(:inkscape_installed?)
|
514
|
+
|
515
|
+
expect(xmlpp(strip_guid(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true).gsub(/['"][^'".]+(?<!odf1)(?<!odf)\.svg['"]/, "'_.svg'").gsub(/mso-bookmark:_Ref\d+/, "mso-bookmark:_Ref")))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
516
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
517
|
+
<preface><foreword>
|
518
|
+
<figure id="figureA-1">
|
519
|
+
<image src="spec/assets/odf.svg" mimetype="image/svg+xml"/>
|
520
|
+
<image src="spec/assets/odf1.svg" mimetype="image/svg+xml"/>
|
521
|
+
<image src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICA8Y2lyY2xlIGZpbGw9IiMwMDkiIHI9IjQ1IiBjeD0iNTAiIGN5PSI1MCIvPgogIDxwYXRoIGQ9Ik0zMywyNkg3OEEzNywzNywwLDAsMSwzMyw4M1Y1N0g1OVY0M0gzM1oiIGZpbGw9IiNGRkYiLz4KPC9zdmc+Cg==" id="_d3731866-1a07-435a-a6c2-1acd41023a4e" mimetype="image/svg+xml" height="auto" width="auto"/>
|
522
|
+
</figure>
|
523
|
+
</foreword></preface>
|
524
|
+
</iso-standard>
|
525
|
+
INPUT
|
526
|
+
<html xmlns:epub='http://www.idpf.org/2007/ops' lang='en'>
|
527
|
+
<head>
|
528
|
+
<style>
|
529
|
+
</style>
|
530
|
+
</head>
|
531
|
+
<body lang='EN-US' link='blue' vlink='#954F72'>
|
532
|
+
<div class='WordSection1'>
|
533
|
+
<p> </p>
|
534
|
+
</div>
|
535
|
+
<p>
|
536
|
+
<br clear='all' class='section'/>
|
537
|
+
</p>
|
538
|
+
<div class='WordSection2'>
|
539
|
+
<p>
|
540
|
+
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
541
|
+
</p>
|
542
|
+
<div>
|
543
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
544
|
+
<div id='figureA-1' class='figure'>
|
545
|
+
<img src='spec/assets/odf.emf'/>
|
546
|
+
<img src='spec/assets/odf1.svg'/>
|
547
|
+
<img src='_.svg' height='auto' width='auto'/>
|
548
|
+
<p class='FigureTitle' style='text-align:center;'>Figure 1</p>
|
549
|
+
</div>
|
550
|
+
</div>
|
551
|
+
<p> </p>
|
552
|
+
</div>
|
553
|
+
<p>
|
554
|
+
<br clear='all' class='section'/>
|
555
|
+
</p>
|
556
|
+
<div class='WordSection3'>
|
557
|
+
<p class='zzSTDTitle1'/>
|
558
|
+
</div>
|
559
|
+
</body>
|
560
|
+
</html>
|
561
|
+
|
562
|
+
OUTPUT
|
563
|
+
end
|
564
|
+
end
|
565
|
+
|
566
|
+
|
455
567
|
it "processes examples" do
|
456
568
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
457
569
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
458
570
|
<preface><foreword>
|
459
|
-
<example id="samplecode">
|
571
|
+
<example id="samplecode" keep-with-next="true" keep-lines-together="true">
|
460
572
|
<name>Title</name>
|
461
573
|
<p>Hello</p>
|
462
574
|
<sourcecode id="X">
|
@@ -470,7 +582,7 @@ B
|
|
470
582
|
<br/>
|
471
583
|
<div>
|
472
584
|
<h1 class="ForewordTitle">Foreword</h1>
|
473
|
-
<div id="samplecode" class="example">
|
585
|
+
<div id="samplecode" class="example" style="page-break-after: avoid;page-break-inside: avoid;">
|
474
586
|
<p class="example-title">EXAMPLE — Title</p>
|
475
587
|
<p>Hello</p>
|
476
588
|
<pre id='X' class='prettyprint '>
|
@@ -489,6 +601,60 @@ B
|
|
489
601
|
OUTPUT
|
490
602
|
end
|
491
603
|
|
604
|
+
it "processes examples (Word)" do
|
605
|
+
expect(xmlpp(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
606
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
607
|
+
<preface><foreword>
|
608
|
+
<example id="samplecode" keep-with-next="true" keep-lines-together="true">
|
609
|
+
<name>Title</name>
|
610
|
+
<p>Hello</p>
|
611
|
+
<sourcecode id="X">
|
612
|
+
<name>Sample</name>
|
613
|
+
</sourcecode>
|
614
|
+
</example>
|
615
|
+
</foreword></preface>
|
616
|
+
</iso-standard>
|
617
|
+
INPUT
|
618
|
+
<html xmlns:epub='http://www.idpf.org/2007/ops' lang='en'><head><style>
|
619
|
+
</style>
|
620
|
+
</head>
|
621
|
+
<body lang='EN-US' link='blue' vlink='#954F72'>
|
622
|
+
<div class='WordSection1'>
|
623
|
+
<p> </p>
|
624
|
+
</div>
|
625
|
+
<p>
|
626
|
+
<br clear='all' class='section'/>
|
627
|
+
</p>
|
628
|
+
<div class='WordSection2'>
|
629
|
+
<p>
|
630
|
+
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
631
|
+
</p>
|
632
|
+
<div>
|
633
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
634
|
+
<div id='samplecode' class='example' style='page-break-after: avoid;page-break-inside: avoid;'>
|
635
|
+
<p class='example-title'>EXAMPLE — Title</p>
|
636
|
+
<p>Hello</p>
|
637
|
+
<p id='X' class='Sourcecode'>
|
638
|
+
<br/>
|
639
|
+
 
|
640
|
+
<br/>
|
641
|
+
 
|
642
|
+
</p>
|
643
|
+
<p class='SourceTitle' style='text-align:center;'>Sample</p>
|
644
|
+
</div>
|
645
|
+
</div>
|
646
|
+
<p> </p>
|
647
|
+
</div>
|
648
|
+
<p>
|
649
|
+
<br clear='all' class='section'/>
|
650
|
+
</p>
|
651
|
+
<div class='WordSection3'>
|
652
|
+
<p class='zzSTDTitle1'/>
|
653
|
+
</div>
|
654
|
+
</body>
|
655
|
+
</html>
|
656
|
+
OUTPUT
|
657
|
+
end
|
492
658
|
|
493
659
|
it "processes sequences of examples" do
|
494
660
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
@@ -671,7 +837,7 @@ Que?
|
|
671
837
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
672
838
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
673
839
|
<preface><foreword>
|
674
|
-
<admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a" type="caution">
|
840
|
+
<admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a" type="caution" keep-with-next="true" keep-lines-together="true">
|
675
841
|
<p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
|
676
842
|
</admonition>
|
677
843
|
</foreword></preface>
|
@@ -681,7 +847,7 @@ Que?
|
|
681
847
|
<br/>
|
682
848
|
<div>
|
683
849
|
<h1 class="ForewordTitle">Foreword</h1>
|
684
|
-
<div class="Admonition"><p class="AdmonitionTitle" style="text-align:center;">CAUTION</p>
|
850
|
+
<div class="Admonition" id='_70234f78-64e5-4dfc-8b6f-f3f037348b6a' style='page-break-after: avoid;page-break-inside: avoid;'><p class="AdmonitionTitle" style="text-align:center;">CAUTION</p>
|
685
851
|
<p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
|
686
852
|
</div>
|
687
853
|
</div>
|
@@ -707,7 +873,7 @@ Que?
|
|
707
873
|
<br/>
|
708
874
|
<div>
|
709
875
|
<h1 class="ForewordTitle">Foreword</h1>
|
710
|
-
<div class="Admonition"><p class="AdmonitionTitle" style="text-align:center;">Title</p>
|
876
|
+
<div class="Admonition" id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a"><p class="AdmonitionTitle" style="text-align:center;">Title</p>
|
711
877
|
<p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
|
712
878
|
</div>
|
713
879
|
</div>
|
@@ -723,7 +889,7 @@ Que?
|
|
723
889
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
724
890
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
725
891
|
<preface><foreword>
|
726
|
-
<formula id="_be9158af-7e93-4ee2-90c5-26d31c181934" unnumbered="true">
|
892
|
+
<formula id="_be9158af-7e93-4ee2-90c5-26d31c181934" unnumbered="true" keep-with-next="true" keep-lines-together="true">
|
727
893
|
<stem type="AsciiMath">r = 1 %</stem>
|
728
894
|
<dl id="_e4fe94fe-1cde-49d9-b1ad-743293b7e21d">
|
729
895
|
<dt>
|
@@ -747,16 +913,16 @@ Que?
|
|
747
913
|
<br/>
|
748
914
|
<div>
|
749
915
|
<h1 class="ForewordTitle">Foreword</h1>
|
750
|
-
<div id="_be9158af-7e93-4ee2-90c5-26d31c181934" class="formula"><p><span class="stem">(#(r = 1 %)#)</span></p></div><p style='page-break-after:avoid;'>where</p><dl id="_e4fe94fe-1cde-49d9-b1ad-743293b7e21d" class="formula_dl"><dt>
|
916
|
+
<div id="_be9158af-7e93-4ee2-90c5-26d31c181934" style='page-break-after: avoid;page-break-inside: avoid;'><div class="formula"><p><span class="stem">(#(r = 1 %)#)</span></p></div><p style='page-break-after:avoid;'>where</p><dl id="_e4fe94fe-1cde-49d9-b1ad-743293b7e21d" class="formula_dl"><dt>
|
751
917
|
<span class="stem">(#(r)#)</span>
|
752
918
|
</dt><dd>
|
753
919
|
<p id="_1b99995d-ff03-40f5-8f2e-ab9665a69b77">is the repeatability limit.</p>
|
754
920
|
</dd></dl>
|
755
921
|
|
756
922
|
|
757
|
-
<div id="_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0" class="Note"><p><span class="note_label">NOTE</span>  [durationUnits] is essentially a duration statement without the "P" prefix. "P" is unnecessary because between "G" and "U" duration is always expressed.</p></div>
|
923
|
+
<div id="_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0" class="Note"><p><span class="note_label">NOTE</span>  [durationUnits] is essentially a duration statement without the "P" prefix. "P" is unnecessary because between "G" and "U" duration is always expressed.</p></div></div>
|
758
924
|
|
759
|
-
<div id="_be9158af-7e93-4ee2-90c5-26d31c181935" class="formula"><p><span class="stem">(#(r = 1 %)#)</span>  (1)</p></div>
|
925
|
+
<div id="_be9158af-7e93-4ee2-90c5-26d31c181935"><div class="formula"><p><span class="stem">(#(r = 1 %)#)</span>  (1)</p></div></div>
|
760
926
|
</div>
|
761
927
|
<p class="zzSTDTitle1"/>
|
762
928
|
</div>
|
@@ -769,7 +935,7 @@ Que?
|
|
769
935
|
expect(xmlpp(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
770
936
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
771
937
|
<preface><foreword>
|
772
|
-
<formula id="_be9158af-7e93-4ee2-90c5-26d31c181934" unnumbered="true">
|
938
|
+
<formula id="_be9158af-7e93-4ee2-90c5-26d31c181934" unnumbered="true" keep-with-next="true" keep-lines-together="true">
|
773
939
|
<stem type="AsciiMath">r = 1 %</stem>
|
774
940
|
<dl id="_e4fe94fe-1cde-49d9-b1ad-743293b7e21d">
|
775
941
|
<dt>
|
@@ -807,7 +973,7 @@ Que?
|
|
807
973
|
</p>
|
808
974
|
<div>
|
809
975
|
<h1 class='ForewordTitle'>Foreword</h1>
|
810
|
-
<div id='_be9158af-7e93-4ee2-90c5-26d31c181934' class='formula'>
|
976
|
+
<div id='_be9158af-7e93-4ee2-90c5-26d31c181934' style='page-break-after: avoid;page-break-inside: avoid;'><div class='formula'>
|
811
977
|
<p>
|
812
978
|
<span class='stem'>(#(r = 1 %)#)</span>
|
813
979
|
</p>
|
@@ -834,12 +1000,14 @@ Que?
|
|
834
1000
|
always expressed.
|
835
1001
|
</p>
|
836
1002
|
</div>
|
837
|
-
|
1003
|
+
</div>
|
1004
|
+
<div id='_be9158af-7e93-4ee2-90c5-26d31c181935'><div class='formula'>
|
838
1005
|
<p>
|
839
1006
|
<span class='stem'>(#(r = 1 %)#)</span>
|
840
1007
|
<span style='mso-tab-count:1'>  </span>
|
841
1008
|
(1)
|
842
1009
|
</p>
|
1010
|
+
</div>
|
843
1011
|
</div>
|
844
1012
|
</div>
|
845
1013
|
<p> </p>
|
@@ -855,14 +1023,14 @@ Que?
|
|
855
1023
|
OUTPUT
|
856
1024
|
end
|
857
1025
|
|
858
|
-
it "processes paragraph
|
1026
|
+
it "processes paragraph attributes" do
|
859
1027
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
860
1028
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
861
1029
|
<preface><foreword>
|
862
1030
|
<p align="left" id="_08bfe952-d57f-4150-9c95-5d52098cc2a8">Vache Equipment<br/>
|
863
1031
|
Fictitious<br/>
|
864
1032
|
World</p>
|
865
|
-
<p align="justify">Justify</p>
|
1033
|
+
<p align="justify" keep-with-next="true" keep-lines-together="true">Justify</p>
|
866
1034
|
</foreword></preface>
|
867
1035
|
</iso-standard>
|
868
1036
|
INPUT
|
@@ -874,7 +1042,7 @@ World
|
|
874
1042
|
Fictitious<br/>
|
875
1043
|
World
|
876
1044
|
</p>
|
877
|
-
<p style="text-align:justify;">Justify</p>
|
1045
|
+
<p style="text-align:justify;page-break-after: avoid;page-break-inside: avoid;">Justify</p>
|
878
1046
|
</div>
|
879
1047
|
<p class="zzSTDTitle1"/>
|
880
1048
|
</div>
|
@@ -883,14 +1051,14 @@ World
|
|
883
1051
|
OUTPUT
|
884
1052
|
end
|
885
1053
|
|
886
|
-
it "processes paragraph
|
1054
|
+
it "processes paragraph attributes (Word)" do
|
887
1055
|
expect(xmlpp(IsoDoc::WordConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
888
1056
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
889
1057
|
<preface><foreword>
|
890
1058
|
<p align="left" id="_08bfe952-d57f-4150-9c95-5d52098cc2a8">Vache Equipment<br/>
|
891
1059
|
Fictitious<br/>
|
892
1060
|
World</p>
|
893
|
-
<p align="justify">Justify</p>
|
1061
|
+
<p align="justify" keep-with-next="true" keep-lines-together="true">Justify</p>
|
894
1062
|
</foreword></preface>
|
895
1063
|
</iso-standard>
|
896
1064
|
INPUT
|
@@ -905,11 +1073,11 @@ World
|
|
905
1073
|
<p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
|
906
1074
|
<div>
|
907
1075
|
<h1 class="ForewordTitle">Foreword</h1>
|
908
|
-
<p id="_08bfe952-d57f-4150-9c95-5d52098cc2a8" align="left" style="text-align:left">Vache Equipment<br/>
|
1076
|
+
<p id="_08bfe952-d57f-4150-9c95-5d52098cc2a8" align="left" style="text-align:left;">Vache Equipment<br/>
|
909
1077
|
Fictitious<br/>
|
910
1078
|
World
|
911
1079
|
</p>
|
912
|
-
<p style="text-align:justify">Justify</p>
|
1080
|
+
<p style="text-align:justify;page-break-after: avoid;page-break-inside: avoid;">Justify</p>
|
913
1081
|
</div>
|
914
1082
|
<p> </p>
|
915
1083
|
</div>
|
@@ -969,7 +1137,7 @@ World
|
|
969
1137
|
INPUT
|
970
1138
|
#{HTML_HDR}
|
971
1139
|
<p class="zzSTDTitle1"/>
|
972
|
-
<div><h1>1. 
|
1140
|
+
<div><h1>1.  </h1>
|
973
1141
|
<p class="TermNum" id="_extraneous_matter">1.1.</p><p class="Terms" style="text-align:left;">extraneous matter</p><p class="AltTerms" style="text-align:left;">EM</p>
|
974
1142
|
|
975
1143
|
<p id="_318b3939-be09-46c4-a284-93f9826b981e"><rice> organic and inorganic components other than whole or broken kernels</p>
|
@@ -984,7 +1152,7 @@ World
|
|
984
1152
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
985
1153
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
986
1154
|
<preface><foreword>
|
987
|
-
<permission id="_">
|
1155
|
+
<permission id="_" keep-with-next="true" keep-lines-together="true">
|
988
1156
|
<label>/ogc/recommendation/wfs/2</label>
|
989
1157
|
<inherit>/ss/584/2015/level/1</inherit>
|
990
1158
|
<inherit><eref type="inline" bibitemid="rfc2616" citeas="RFC 2616">RFC 2616 (HTTP/1.1)</eref></inherit>
|
@@ -1030,7 +1198,7 @@ World
|
|
1030
1198
|
</import>
|
1031
1199
|
</permission>
|
1032
1200
|
</foreword></preface>
|
1033
|
-
<bibliography><references id="_bibliography" obligation="informative">
|
1201
|
+
<bibliography><references id="_bibliography" obligation="informative" normative="false">
|
1034
1202
|
<title>Bibliography</title>
|
1035
1203
|
<bibitem id="rfc2616" type="standard"> <fetched>2020-03-27</fetched> <title format="text/plain" language="en" script="Latn">Hypertext Transfer Protocol — HTTP/1.1</title> <uri type="xml">https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2616.xml</uri> <uri type="src">https://www.rfc-editor.org/info/rfc2616</uri> <docidentifier type="IETF">RFC 2616</docidentifier> <docidentifier type="rfc-anchor">RFC2616</docidentifier> <docidentifier type="DOI">10.17487/RFC2616</docidentifier> <date type="published"> <on>1999-06</on> </date> <contributor> <role type="author"/> <person> <name> <completename language="en">R. Fielding</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">J. Gettys</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">J. Mogul</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">H. Frystyk</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">L. Masinter</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">P. Leach</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">T. Berners-Lee</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <language>en</language> <script>Latn</script> <abstract format="text/plain" language="en" script="Latn">HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as “HTTP/1.1”, and is an update to RFC 2068. [STANDARDS-TRACK]</abstract> <series type="main"> <title format="text/plain" language="en" script="Latn">RFC</title> <number>2616</number> </series> <place>Fremont, CA</place></bibitem>
|
1036
1204
|
|
@@ -1042,7 +1210,8 @@ World
|
|
1042
1210
|
<br/>
|
1043
1211
|
<div>
|
1044
1212
|
<h1 class="ForewordTitle">Foreword</h1>
|
1045
|
-
<div class="permission"
|
1213
|
+
<div class="permission" id='_' style='page-break-after: avoid;page-break-inside: avoid;'>
|
1214
|
+
<p class="RecommendationTitle">Permission 1:<br/>/ogc/recommendation/wfs/2</p>
|
1046
1215
|
<p><i>Subject: user<br/>
|
1047
1216
|
Inherits: /ss/584/2015/level/1
|
1048
1217
|
<br/>
|
@@ -1058,7 +1227,7 @@ Inherits: RFC 2616 (HTTP/1.1)
|
|
1058
1227
|
</div>
|
1059
1228
|
<div class="requirement-measurement-target">
|
1060
1229
|
<p id="_">The measurement target shall be measured as:</p>
|
1061
|
-
<div id="_" class="formula"><p><span class="stem">(#(r/1 = 0)#)</span>  (1)</p></div>
|
1230
|
+
<div id="_"><div class="formula"><p><span class="stem">(#(r/1 = 0)#)</span>  (1)</p></div></div>
|
1062
1231
|
|
1063
1232
|
|
1064
1233
|
</div>
|
@@ -1088,7 +1257,7 @@ Inherits: RFC 2616 (HTTP/1.1)
|
|
1088
1257
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1089
1258
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1090
1259
|
<preface><foreword>
|
1091
|
-
<requirement id="A" unnumbered="true">
|
1260
|
+
<requirement id="A" unnumbered="true" keep-with-next="true" keep-lines-together="true">
|
1092
1261
|
<title>A New Requirement</title>
|
1093
1262
|
<label>/ogc/recommendation/wfs/2</label>
|
1094
1263
|
<inherit>/ss/584/2015/level/1</inherit>
|
@@ -1114,7 +1283,7 @@ Inherits: RFC 2616 (HTTP/1.1)
|
|
1114
1283
|
<description>
|
1115
1284
|
<p id="_">As for the measurement targets,</p>
|
1116
1285
|
</description>
|
1117
|
-
<measurement-target exclude="false">
|
1286
|
+
<measurement-target exclude="false" keep-with-next="true" keep-lines-together="true">
|
1118
1287
|
<p id="_">The measurement target shall be measured as:</p>
|
1119
1288
|
<formula id="B">
|
1120
1289
|
<stem type="AsciiMath">r/1 = 0</stem>
|
@@ -1139,7 +1308,8 @@ Inherits: RFC 2616 (HTTP/1.1)
|
|
1139
1308
|
<br/>
|
1140
1309
|
<div>
|
1141
1310
|
<h1 class="ForewordTitle">Foreword</h1>
|
1142
|
-
<div class="require"
|
1311
|
+
<div class="require" id='A' style='page-break-after: avoid;page-break-inside: avoid;'>
|
1312
|
+
<p class="RecommendationTitle">Requirement:<br/>/ogc/recommendation/wfs/2. A New Requirement</p><p><i>Subject: user<br/>Inherits: /ss/584/2015/level/1</i></p>
|
1143
1313
|
|
1144
1314
|
<div class="requirement-description">
|
1145
1315
|
<p id="_">I recommend <i>this</i>.</p>
|
@@ -1148,9 +1318,9 @@ Inherits: RFC 2616 (HTTP/1.1)
|
|
1148
1318
|
<div class="requirement-description">
|
1149
1319
|
<p id="_">As for the measurement targets,</p>
|
1150
1320
|
</div>
|
1151
|
-
<div class="requirement-measurement-target">
|
1321
|
+
<div class="requirement-measurement-target" style='page-break-after: avoid;page-break-inside: avoid;'>
|
1152
1322
|
<p id="_">The measurement target shall be measured as:</p>
|
1153
|
-
<div id="B" class="formula"><p><span class="stem">(#(r/1 = 0)#)</span>  (1)</p></div>
|
1323
|
+
<div id="B"><div class="formula"><p><span class="stem">(#(r/1 = 0)#)</span>  (1)</p></div></div>
|
1154
1324
|
|
1155
1325
|
|
1156
1326
|
</div>
|
@@ -1227,7 +1397,7 @@ Inherits: RFC 2616 (HTTP/1.1)
|
|
1227
1397
|
<br/>
|
1228
1398
|
<div>
|
1229
1399
|
<h1 class='ForewordTitle'>Avant-propos</h1>
|
1230
|
-
<div class='require'>
|
1400
|
+
<div class='require' id="A">
|
1231
1401
|
<p class='RecommendationTitle'>
|
1232
1402
|
Exigence:
|
1233
1403
|
<br/>
|
@@ -1252,11 +1422,12 @@ Inherits: RFC 2616 (HTTP/1.1)
|
|
1252
1422
|
</div>
|
1253
1423
|
<div class='requirement-measurement-target'>
|
1254
1424
|
<p id='_'>The measurement target shall be measured as:</p>
|
1255
|
-
<div id='B' class='formula'>
|
1425
|
+
<div id='B'><div class='formula'>
|
1256
1426
|
<p>
|
1257
1427
|
<span class='stem'>(#(r/1 = 0)#)</span>
|
1258
1428
|
  (1)
|
1259
1429
|
</p>
|
1430
|
+
</div>
|
1260
1431
|
</div>
|
1261
1432
|
</div>
|
1262
1433
|
<div class='requirement-verification'>
|
@@ -1287,7 +1458,7 @@ end
|
|
1287
1458
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1288
1459
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1289
1460
|
<preface><foreword>
|
1290
|
-
<recommendation id="_" obligation="shall,could">
|
1461
|
+
<recommendation id="_" obligation="shall,could" keep-with-next="true" keep-lines-together="true">
|
1291
1462
|
<label>/ogc/recommendation/wfs/2</label>
|
1292
1463
|
<inherit>/ss/584/2015/level/1</inherit>
|
1293
1464
|
<classification><tag>type</tag><value>text</value></classification>
|
@@ -1339,7 +1510,8 @@ end
|
|
1339
1510
|
<br/>
|
1340
1511
|
<div>
|
1341
1512
|
<h1 class="ForewordTitle">Foreword</h1>
|
1342
|
-
<div class="recommend"
|
1513
|
+
<div class="recommend" id='_' style='page-break-after: avoid;page-break-inside: avoid;'>
|
1514
|
+
<p class="RecommendationTitle">Recommendation 1:<br/>/ogc/recommendation/wfs/2</p><p><i>Obligation: shall,could<br/>Subject: user<br/>Inherits: /ss/584/2015/level/1<br/>Type: text<br/>Language: BASIC</i></p>
|
1343
1515
|
<div class="requirement-description">
|
1344
1516
|
<p id="_">I recommend <i>this</i>.</p>
|
1345
1517
|
</div>
|
@@ -1349,7 +1521,7 @@ end
|
|
1349
1521
|
</div>
|
1350
1522
|
<div class="requirement-measurement-target">
|
1351
1523
|
<p id="_">The measurement target shall be measured as:</p>
|
1352
|
-
<div id="_" class="formula"><p><span class="stem">(#(r/1 = 0)#)</span>  (1)</p></div>
|
1524
|
+
<div id="_"><div class="formula"><p><span class="stem">(#(r/1 = 0)#)</span>  (1)</p></div></div>
|
1353
1525
|
|
1354
1526
|
|
1355
1527
|
</div>
|
@@ -1374,7 +1546,7 @@ end
|
|
1374
1546
|
<language>en</language>
|
1375
1547
|
</bibdata>
|
1376
1548
|
<preface><foreword>
|
1377
|
-
<figure id="_" class="pseudocode"><name>Label</name><p id="_"> <strong>A</strong><br/>
|
1549
|
+
<figure id="_" class="pseudocode" keep-with-next="true" keep-lines-together="true"><name>Label</name><p id="_"> <strong>A</strong><br/>
|
1378
1550
|
<smallcap>B</smallcap></p>
|
1379
1551
|
<p id="_"> <em>C</em></p></figure>
|
1380
1552
|
</preface></itu-standard>
|
@@ -1383,7 +1555,7 @@ INPUT
|
|
1383
1555
|
<br/>
|
1384
1556
|
<div>
|
1385
1557
|
<h1 class="ForewordTitle">Foreword</h1>
|
1386
|
-
<div id="_" class="pseudocode"><p id="_">  <b>A</b><br/>
|
1558
|
+
<div id="_" class="pseudocode" style='page-break-after: avoid;page-break-inside: avoid;'><p id="_">  <b>A</b><br/>
|
1387
1559
|
        <span style="font-variant:small-caps;">B</span></p>
|
1388
1560
|
<p id="_">  <i>C</i></p><p class="SourceTitle" style="text-align:center;">Figure 1 — Label</p></div>
|
1389
1561
|
</div>
|
@@ -1462,5 +1634,56 @@ INPUT
|
|
1462
1634
|
OUTPUT
|
1463
1635
|
end
|
1464
1636
|
|
1637
|
+
it "processes passthrough with compatible format" do
|
1638
|
+
FileUtils.rm_f "test.html"
|
1639
|
+
IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", false)
|
1640
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1641
|
+
<preface><foreword>
|
1642
|
+
<passthrough format="html,rfc"><A></passthrough><em>Hello</em><passthrough format="html,rfc"></A></passthrough>
|
1643
|
+
</foreword></preface>
|
1644
|
+
</iso-standard>
|
1645
|
+
INPUT
|
1646
|
+
expect(( File.read("test.html").gsub(%r{^.*<h1 class="ForewordTitle">Foreword</h1>}m, "").gsub(%r{</div>.*}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1647
|
+
<A><i>Hello</i></A>
|
1648
|
+
OUTPUT
|
1649
|
+
end
|
1650
|
+
|
1651
|
+
it "aborts if passthrough results in malformed XML" do
|
1652
|
+
FileUtils.rm_f "test.html"
|
1653
|
+
FileUtils.rm_f "test.html.err"
|
1654
|
+
begin
|
1655
|
+
expect { IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", false) }.to raise_error(SystemExit)
|
1656
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1657
|
+
<preface><foreword>
|
1658
|
+
<passthrough format="html,rfc"><A></passthrough><em>Hello</em>
|
1659
|
+
</foreword></preface>
|
1660
|
+
</iso-standard>
|
1661
|
+
INPUT
|
1662
|
+
rescue SystemExit
|
1663
|
+
end
|
1664
|
+
expect(File.exist?("test.html.err")).to be true
|
1665
|
+
end
|
1666
|
+
|
1667
|
+
it "ignore passthrough with incompatible format" do
|
1668
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1669
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
1670
|
+
<preface><foreword>
|
1671
|
+
<passthrough format="doc,rfc"><A></passthrough>
|
1672
|
+
</foreword></preface>
|
1673
|
+
</iso-standard>
|
1674
|
+
INPUT
|
1675
|
+
#{HTML_HDR}
|
1676
|
+
<br/>
|
1677
|
+
<div>
|
1678
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
1679
|
+
</div>
|
1680
|
+
<p class='zzSTDTitle1'/>
|
1681
|
+
</div>
|
1682
|
+
</body>
|
1683
|
+
</html>
|
1684
|
+
OUTPUT
|
1685
|
+
end
|
1686
|
+
|
1687
|
+
|
1465
1688
|
|
1466
1689
|
end
|