isodoc 1.2.7 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +14 -9
- data/README.adoc +1 -3
- data/isodoc.gemspec +1 -1
- data/lib/isodoc-yaml/i18n-en.yaml +56 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +64 -7
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +1 -0
- data/lib/isodoc/base_style/blocks.scss +2 -2
- data/lib/isodoc/base_style/typography.scss +1 -1
- data/lib/isodoc/convert.rb +13 -85
- data/lib/isodoc/css.rb +95 -0
- data/lib/isodoc/function/inline.rb +0 -33
- data/lib/isodoc/function/inline_simple.rb +10 -1
- data/lib/isodoc/function/lists.rb +2 -1
- data/lib/isodoc/function/references.rb +8 -13
- data/lib/isodoc/function/section.rb +1 -1
- data/lib/isodoc/function/table.rb +10 -0
- data/lib/isodoc/function/to_word_html.rb +2 -2
- data/lib/isodoc/gem_tasks.rb +4 -0
- data/lib/isodoc/html_function/html.rb +7 -0
- data/lib/isodoc/html_function/mathvariant_to_plain.rb +82 -0
- data/lib/isodoc/html_function/postprocess.rb +41 -20
- data/lib/isodoc/i18n.rb +15 -2
- data/lib/isodoc/metadata_contributor.rb +4 -3
- data/lib/isodoc/presentation_function/bibdata.rb +3 -3
- data/lib/isodoc/presentation_function/block.rb +14 -9
- data/lib/isodoc/presentation_function/inline.rb +126 -22
- data/lib/isodoc/presentation_function/section.rb +9 -0
- data/lib/isodoc/presentation_xml_convert.rb +5 -0
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_convert.rb +0 -20
- data/lib/isodoc/word_function/body.rb +12 -0
- data/lib/isodoc/word_function/postprocess.rb +38 -80
- data/lib/isodoc/word_function/postprocess_cover.rb +55 -0
- data/lib/isodoc/word_function/table.rb +10 -0
- data/lib/isodoc/xref.rb +1 -0
- data/lib/isodoc/xref/xref_counter.rb +20 -9
- data/lib/isodoc/xref/xref_gen.rb +20 -2
- data/lib/isodoc/xref/xref_sect_gen.rb +1 -1
- data/spec/assets/html.scss +14 -0
- data/spec/assets/i18n.yaml +7 -6
- data/spec/isodoc/blocks_spec.rb +2 -1
- data/spec/isodoc/cleanup_spec.rb +0 -1
- data/spec/isodoc/footnotes_spec.rb +4 -5
- data/spec/isodoc/i18n_spec.rb +23 -2
- data/spec/isodoc/inline_spec.rb +182 -202
- data/spec/isodoc/lists_spec.rb +1 -1
- data/spec/isodoc/metadata_spec.rb +3 -1
- data/spec/isodoc/postproc_spec.rb +472 -11
- data/spec/isodoc/presentation_xml_spec.rb +584 -1
- data/spec/isodoc/ref_spec.rb +325 -7
- data/spec/isodoc/table_spec.rb +28 -0
- data/spec/isodoc/xref_spec.rb +162 -17
- metadata +18 -16
data/spec/isodoc/lists_spec.rb
CHANGED
@@ -203,7 +203,7 @@ RSpec.describe IsoDoc do
|
|
203
203
|
<br/>
|
204
204
|
<div>
|
205
205
|
<h1 class="ForewordTitle">Foreword</h1>
|
206
|
-
<ol type="
|
206
|
+
<ol type="I" id="_ae34a226-aab4-496d-987b-1aa7b6314026">
|
207
207
|
<li id="_ae34a226-aab4-496d-987b-1aa7b6314027">
|
208
208
|
<p id="_0091a277-fb0e-424a-aea8-f0001303fe78">all information necessary for the complete identification of the sample;</p>
|
209
209
|
</li>
|
@@ -60,6 +60,8 @@ RSpec.describe IsoDoc do
|
|
60
60
|
</name>
|
61
61
|
<affiliation>
|
62
62
|
<organization><name>Slate Inc.</name>
|
63
|
+
<subdivision>Hermeneutics Unit</subdivision>
|
64
|
+
<subdivision>Exegesis Subunit</subdivision>
|
63
65
|
<address>
|
64
66
|
<formattedAddress>Bedrock</formattedAddress>
|
65
67
|
</address>
|
@@ -106,7 +108,7 @@ INPUT
|
|
106
108
|
:activateddate=>"2013",
|
107
109
|
:agency=>"ISO",
|
108
110
|
:authors=>["Barney Rubble", "Fred Flintstone"],
|
109
|
-
:authors_affiliations=>{"Slate Inc., Bedrock"=>["Barney Rubble"], ""=>["Fred Flintstone"]},
|
111
|
+
:authors_affiliations=>{"Slate Inc., Hermeneutics Unit, Exegesis Subunit, Bedrock"=>["Barney Rubble"], ""=>["Fred Flintstone"]},
|
110
112
|
:circulateddate=>"2015",
|
111
113
|
:confirmeddate=>"2017",
|
112
114
|
:copieddate=>"2016",
|
@@ -139,7 +139,7 @@ expect(File.exist?("test.doc")).to be true
|
|
139
139
|
it "generates HTML output docs with complete configuration" do
|
140
140
|
FileUtils.rm_f "test.doc"
|
141
141
|
FileUtils.rm_f "test.html"
|
142
|
-
IsoDoc::HtmlConvert.new({bodyfont: "Zapf", htmlstylesheet: "spec/assets/html.scss", htmlcoverpage: "spec/assets/htmlcover.html", htmlintropage: "spec/assets/htmlintro.html", scripts: "spec/assets/scripts.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
|
142
|
+
IsoDoc::HtmlConvert.new({bodyfont: "Zapf", monospacefont: "Consolas", headerfont: "Comic Sans", normalfontsize: "30pt", monospacefontsize: "29pt", smallerfontsize: "28pt", footnotefontsize: "27pt", htmlstylesheet: "spec/assets/html.scss", htmlcoverpage: "spec/assets/htmlcover.html", htmlintropage: "spec/assets/htmlintro.html", scripts: "spec/assets/scripts.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
|
143
143
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
144
144
|
<preface><foreword>
|
145
145
|
<note>
|
@@ -150,7 +150,13 @@ expect(File.exist?("test.doc")).to be true
|
|
150
150
|
INPUT
|
151
151
|
html = File.read("test.html")
|
152
152
|
expect(html).to match(/another empty stylesheet/)
|
153
|
-
expect(html).to match(/font-family: Zapf/)
|
153
|
+
expect(html).to match(/p \{[^}]*?font-family: Zapf/m)
|
154
|
+
expect(html).to match(/code \{[^}]*?font-family: Consolas/m)
|
155
|
+
expect(html).to match(/h1 \{[^}]*?font-family: Comic Sans/m)
|
156
|
+
expect(html).to match(/p \{[^}]*?font-size: 30pt/m)
|
157
|
+
expect(html).to match(/code \{[^}]*?font-size: 29pt/m)
|
158
|
+
expect(html).to match(/p\.note \{[^}]*?font-size: 28pt/m)
|
159
|
+
expect(html).to match(/aside \{[^}]*?font-size: 27pt/m)
|
154
160
|
expect(html).to match(/an empty html cover page/)
|
155
161
|
expect(html).to match(/an empty html intro page/)
|
156
162
|
expect(html).to match(/This is > a script/)
|
@@ -172,7 +178,13 @@ expect(File.exist?("test.doc")).to be true
|
|
172
178
|
INPUT
|
173
179
|
html = File.read("test.html")
|
174
180
|
expect(html).to match(/another empty stylesheet/)
|
175
|
-
expect(html).to match(/font-family: Arial/)
|
181
|
+
expect(html).to match(/p \{[^}]*?font-family: Arial/m)
|
182
|
+
expect(html).to match(/code \{[^}]*?font-family: Courier/m)
|
183
|
+
expect(html).to match(/h1 \{[^}]*?font-family: Arial/m)
|
184
|
+
expect(html).to match(/p \{[^}]*?font-size: 1em;/m)
|
185
|
+
expect(html).to match(/code \{[^}]*?font-size: 0.8em/m)
|
186
|
+
expect(html).to match(/p\.note \{[^}]*?font-size: 0.9em/m)
|
187
|
+
expect(html).to match(/aside \{[^}]*?font-size: 0.9em/m)
|
176
188
|
expect(html).to match(/an empty html cover page/)
|
177
189
|
expect(html).to match(/an empty html intro page/)
|
178
190
|
expect(html).to match(/This is > a script/)
|
@@ -183,7 +195,7 @@ expect(File.exist?("test.doc")).to be true
|
|
183
195
|
it "generates Word output docs with complete configuration" do
|
184
196
|
FileUtils.rm_f "test.doc"
|
185
197
|
FileUtils.rm_f "test.html"
|
186
|
-
IsoDoc::WordConvert.new({bodyfont: "Zapf", wordstylesheet: "spec/assets/html.scss", standardstylesheet: "spec/assets/std.css", header: "spec/assets/header.html", wordcoverpage: "spec/assets/wordcover.html", wordintropage: "spec/assets/wordintro.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
|
198
|
+
IsoDoc::WordConvert.new({bodyfont: "Zapf", monospacefont: "Consolas", headerfont: "Comic Sans", normalfontsize: "30pt", monospacefontsize: "29pt", smallerfontsize: "28pt", footnotefontsize: "27pt", wordstylesheet: "spec/assets/html.scss", standardstylesheet: "spec/assets/std.css", header: "spec/assets/header.html", wordcoverpage: "spec/assets/wordcover.html", wordintropage: "spec/assets/wordintro.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
|
187
199
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
188
200
|
<preface><foreword>
|
189
201
|
<note>
|
@@ -194,7 +206,13 @@ expect(File.exist?("test.doc")).to be true
|
|
194
206
|
INPUT
|
195
207
|
word = File.read("test.doc")
|
196
208
|
expect(word).to match(/another empty stylesheet/)
|
197
|
-
expect(word).to match(/font-family: Zapf/)
|
209
|
+
expect(word).to match(/p \{[^}]*?font-family: Zapf/m)
|
210
|
+
expect(word).to match(/code \{[^}]*?font-family: Consolas/m)
|
211
|
+
expect(word).to match(/h1 \{[^}]*?font-family: Comic Sans/m)
|
212
|
+
expect(word).to match(/p \{[^}]*?font-size: 30pt/m)
|
213
|
+
expect(word).to match(/code \{[^}]*?font-size: 29pt/m)
|
214
|
+
expect(word).to match(/p\.note \{[^}]*?font-size: 28pt/m)
|
215
|
+
expect(word).to match(/aside \{[^}]*?font-size: 27pt/m)
|
198
216
|
expect(word).to match(/a third empty stylesheet/)
|
199
217
|
#expect(word).to match(/<title>test<\/title>/)
|
200
218
|
expect(word).to match(/test_files\/header.html/)
|
@@ -217,7 +235,13 @@ expect(File.exist?("test.doc")).to be true
|
|
217
235
|
INPUT
|
218
236
|
word = File.read("test.doc")
|
219
237
|
expect(word).to match(/another empty stylesheet/)
|
220
|
-
expect(word).to match(/font-family: Arial/)
|
238
|
+
expect(word).to match(/p \{[^}]*?font-family: Arial/m)
|
239
|
+
expect(word).to match(/code \{[^}]*?font-family: Courier/m)
|
240
|
+
expect(word).to match(/h1 \{[^}]*?font-family: Arial/m)
|
241
|
+
expect(word).to match(/p \{[^}]*?font-size: 12pt/m)
|
242
|
+
expect(word).to match(/code \{[^}]*?font-size: 11pt/m)
|
243
|
+
expect(word).to match(/p\.note \{[^}]*?font-size: 10pt/m)
|
244
|
+
expect(word).to match(/aside \{[^}]*?font-size: 9pt/m)
|
221
245
|
expect(word).to match(/a third empty stylesheet/)
|
222
246
|
#expect(word).to match(/<title>test<\/title>/)
|
223
247
|
expect(word).to match(/test_files\/header.html/)
|
@@ -512,7 +536,7 @@ TOCLEVEL
|
|
512
536
|
<p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">This is a footnote.</p>
|
513
537
|
</fn><clause id="N" inline-header="false" obligation="normative">
|
514
538
|
<title>Introduction to this<fn reference="2">
|
515
|
-
|
539
|
+
Formerly denoted as 15 % (m/m).
|
516
540
|
</fn></title>
|
517
541
|
</clause>
|
518
542
|
<clause id="O" inline-header="false" obligation="normative">
|
@@ -548,7 +572,7 @@ TOCLEVEL
|
|
548
572
|
</a>This is a footnote.</p>
|
549
573
|
<a href="#fnref:1">↩</a></aside>
|
550
574
|
<aside id="fn:2" class="footnote">
|
551
|
-
<
|
575
|
+
<a class='FootnoteRef' href='#fn:2'><sup>2</sup></a>Formerly denoted as 15 % (m/m).
|
552
576
|
<a href="#fnref:2">↩</a></aside>
|
553
577
|
</main>
|
554
578
|
OUTPUT
|
@@ -593,6 +617,169 @@ TOCLEVEL
|
|
593
617
|
|
594
618
|
end
|
595
619
|
|
620
|
+
describe "mathvariant to plain" do
|
621
|
+
context "when `mathvariant` attr equal to `script`" do
|
622
|
+
it "converts mathvariant text chars into associated plain chars" do
|
623
|
+
FileUtils.rm_f "test.html"
|
624
|
+
FileUtils.rm_rf "test_htmlimages"
|
625
|
+
input = <<~INPUT
|
626
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
627
|
+
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="1.5.14">
|
628
|
+
<sections>
|
629
|
+
<clause id="_clause" inline-header="false" obligation="normative">
|
630
|
+
<title>Clause</title>
|
631
|
+
<p id="_20514f5a-9f86-454e-b6ce-927f65ba6441">
|
632
|
+
<stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML">
|
633
|
+
<mi>x</mi>
|
634
|
+
<mo>=</mo>
|
635
|
+
<mstyle mathvariant="script">
|
636
|
+
<mi>l</mi>
|
637
|
+
</mstyle>
|
638
|
+
<mo>+</mo>
|
639
|
+
<mn>1</mn>
|
640
|
+
</math></stem>
|
641
|
+
</p>
|
642
|
+
</clause>
|
643
|
+
</sections>
|
644
|
+
</iso-standard>
|
645
|
+
INPUT
|
646
|
+
output = <<~OUTPUT
|
647
|
+
<main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
|
648
|
+
<p class="zzSTDTitle1"></p>
|
649
|
+
<div id="_clause">
|
650
|
+
<h1>Clause</h1>
|
651
|
+
<p id="_20514f5a-9f86-454e-b6ce-927f65ba6441">
|
652
|
+
<span class="stem"><math xmlns="http://www.w3.org/1998/Math/MathML">
|
653
|
+
<mi>x</mi>
|
654
|
+
<mo>=</mo>
|
655
|
+
<mstyle mathvariant="script">
|
656
|
+
<mi>𝓁</mi>
|
657
|
+
</mstyle>
|
658
|
+
<mo>+</mo>
|
659
|
+
<mn>1</mn>
|
660
|
+
</math></span>
|
661
|
+
</p>
|
662
|
+
</div>
|
663
|
+
</main>
|
664
|
+
OUTPUT
|
665
|
+
IsoDoc::HtmlConvert.new({}).convert("test", input, false)
|
666
|
+
html = File.read("test.html")
|
667
|
+
.sub(/^.*<main class="main-section">/m, '<main class="main-section">')
|
668
|
+
.sub(%r{</main>.*$}m, "</main>")
|
669
|
+
expect(html).to(be_equivalent_to(output))
|
670
|
+
end
|
671
|
+
end
|
672
|
+
|
673
|
+
context "when complex `mathvariant` combinations" do
|
674
|
+
it "converts mathvariant text chars into associated plain chars" do
|
675
|
+
FileUtils.rm_f "test.html"
|
676
|
+
FileUtils.rm_rf "test_htmlimages"
|
677
|
+
input = <<~INPUT
|
678
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
679
|
+
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="1.5.14">
|
680
|
+
<sections>
|
681
|
+
<clause id="_clause" inline-header="false" obligation="normative">
|
682
|
+
<title>Clause</title>
|
683
|
+
<p id="_20514f5a-9f86-454e-b6ce-927f65ba6441">
|
684
|
+
<stem type="MathML">
|
685
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
686
|
+
<mstyle mathvariant="sans-serif">
|
687
|
+
<mfrac>
|
688
|
+
<mrow>
|
689
|
+
<mrow>
|
690
|
+
<mi>n</mi>
|
691
|
+
<mfenced open="(" close=")">
|
692
|
+
<mrow>
|
693
|
+
<mstyle mathvariant="bold">
|
694
|
+
<mrow>
|
695
|
+
<mi>n</mi>
|
696
|
+
<mo>+</mo>
|
697
|
+
<mn>1</mn>
|
698
|
+
<mo>+</mo>
|
699
|
+
<mstyle mathvariant="italic">
|
700
|
+
<mi>x</mi>
|
701
|
+
</mstyle>
|
702
|
+
</mrow>
|
703
|
+
</mstyle>
|
704
|
+
</mrow>
|
705
|
+
</mfenced>
|
706
|
+
</mrow>
|
707
|
+
</mrow>
|
708
|
+
<mrow>
|
709
|
+
<mstyle mathvariant="bold">
|
710
|
+
<mrow>
|
711
|
+
<mi>y</mi>
|
712
|
+
<mo>+</mo>
|
713
|
+
<mstyle mathvariant="fraktur">
|
714
|
+
<mi>z</mi>
|
715
|
+
</mstyle>
|
716
|
+
</mrow>
|
717
|
+
</mstyle>
|
718
|
+
</mrow>
|
719
|
+
</mfrac>
|
720
|
+
</mstyle>
|
721
|
+
</math>
|
722
|
+
</stem>
|
723
|
+
</p>
|
724
|
+
</clause>
|
725
|
+
</sections>
|
726
|
+
</iso-standard>
|
727
|
+
INPUT
|
728
|
+
output = <<~OUTPUT
|
729
|
+
<main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
|
730
|
+
<p class="zzSTDTitle1"></p>
|
731
|
+
<div id="_clause">
|
732
|
+
<h1>Clause</h1>
|
733
|
+
<p id="_20514f5a-9f86-454e-b6ce-927f65ba6441">
|
734
|
+
<span class="stem"><math xmlns="http://www.w3.org/1998/Math/MathML">
|
735
|
+
<mstyle mathvariant="sans-serif">
|
736
|
+
<mfrac>
|
737
|
+
<mrow>
|
738
|
+
<mrow>
|
739
|
+
<mi>𝗇</mi>
|
740
|
+
<mfenced open="(" close=")">
|
741
|
+
<mrow>
|
742
|
+
<mstyle mathvariant="bold">
|
743
|
+
<mrow>
|
744
|
+
<mi>𝗻</mi>
|
745
|
+
<mo>+</mo>
|
746
|
+
<mn>𝟭</mn>
|
747
|
+
<mo>+</mo>
|
748
|
+
<mstyle mathvariant="italic">
|
749
|
+
<mi>𝙭</mi>
|
750
|
+
</mstyle>
|
751
|
+
</mrow>
|
752
|
+
</mstyle>
|
753
|
+
</mrow>
|
754
|
+
</mfenced>
|
755
|
+
</mrow>
|
756
|
+
</mrow>
|
757
|
+
<mrow>
|
758
|
+
<mstyle mathvariant="bold">
|
759
|
+
<mrow>
|
760
|
+
<mi>𝘆</mi>
|
761
|
+
<mo>+</mo>
|
762
|
+
<mstyle mathvariant="fraktur">
|
763
|
+
<mi>𝖟</mi>
|
764
|
+
</mstyle>
|
765
|
+
</mrow>
|
766
|
+
</mstyle>
|
767
|
+
</mrow>
|
768
|
+
</mfrac>
|
769
|
+
</mstyle>
|
770
|
+
</math></span>
|
771
|
+
</p>
|
772
|
+
</div>
|
773
|
+
</main>
|
774
|
+
OUTPUT
|
775
|
+
IsoDoc::HtmlConvert.new({}).convert("test", input, false)
|
776
|
+
html = File.read("test.html")
|
777
|
+
.sub(/^.*<main class="main-section">/m, '<main class="main-section">')
|
778
|
+
.sub(%r{</main>.*$}m, "</main>")
|
779
|
+
expect(html).to(be_equivalent_to(output))
|
780
|
+
end
|
781
|
+
end
|
782
|
+
end
|
596
783
|
|
597
784
|
it "moves images in HTML with no file suffix" do
|
598
785
|
FileUtils.rm_f "test.html"
|
@@ -905,6 +1092,7 @@ TOCLEVEL
|
|
905
1092
|
</m:r>
|
906
1093
|
</m:oMath>
|
907
1094
|
</span>
|
1095
|
+
<span style='mso-tab-count:1'>  </span>
|
908
1096
|
</p>
|
909
1097
|
</div>
|
910
1098
|
</div>
|
@@ -1022,7 +1210,7 @@ TOCLEVEL
|
|
1022
1210
|
OUTPUT
|
1023
1211
|
end
|
1024
1212
|
|
1025
|
-
it "deals with image captions (Word)" do
|
1213
|
+
it "deals with image captions (Word)" do
|
1026
1214
|
FileUtils.rm_f "test.doc"
|
1027
1215
|
FileUtils.rm_f "test.html"
|
1028
1216
|
IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
|
@@ -1341,7 +1529,7 @@ expect(xmlpp(html.sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>"))).
|
|
1341
1529
|
<div class='Section3' id=''>
|
1342
1530
|
<h1 class='IntroTitle'>Preface 1</h1>
|
1343
1531
|
<p align='center' style='text-align:center;' class='MsoNormal'>
|
1344
|
-
This is a
|
1532
|
+
This is a
|
1345
1533
|
<p class='MsoNormal'>
|
1346
1534
|
<br clear='all' class='section'/>
|
1347
1535
|
</p>
|
@@ -1387,7 +1575,7 @@ expect(xmlpp(html.sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>"))).
|
|
1387
1575
|
<p class='Note'>
|
1388
1576
|
<span class='note_label'/>
|
1389
1577
|
<span style='mso-tab-count:1'>  </span>
|
1390
|
-
For further information on the Foreword, see
|
1578
|
+
For further information on the Foreword, see
|
1391
1579
|
<b>ISO/IEC Directives, Part 2, 2016, Clause 12.</b>
|
1392
1580
|
</p>
|
1393
1581
|
<p class='Note'>
|
@@ -1569,4 +1757,277 @@ OUTPUT
|
|
1569
1757
|
OUTPUT
|
1570
1758
|
end
|
1571
1759
|
|
1760
|
+
|
1761
|
+
it "allocate widths to tables (Word)" do
|
1762
|
+
expect(xmlpp(IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", filename: "test"}).word_cleanup(Nokogiri::XML(<<~INPUT)).to_xml).sub(/^.*<main/m, "<main").sub(%r{</main>.*$}m, "</main>")).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
1763
|
+
<html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
|
1764
|
+
<head><style/></head>
|
1765
|
+
<body lang='EN-US' link='blue' vlink='#954F72'>
|
1766
|
+
<div class='WordSection1'>
|
1767
|
+
<p> </p>
|
1768
|
+
</div>
|
1769
|
+
<p>
|
1770
|
+
<br clear='all' class='section'/>
|
1771
|
+
</p>
|
1772
|
+
<div class='WordSection2'>
|
1773
|
+
<p>
|
1774
|
+
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
1775
|
+
</p>
|
1776
|
+
<div>
|
1777
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
1778
|
+
<p class='TableTitle' style='text-align:center;'>
|
1779
|
+
Table 1 — Repeatability and reproducibility of
|
1780
|
+
<i>husked</i>
|
1781
|
+
rice yield
|
1782
|
+
<span style='mso-bookmark:_Ref'>
|
1783
|
+
<a class='FootnoteRef' href='#ftn1' epub:type='footnote'>
|
1784
|
+
<sup>1</sup>
|
1785
|
+
</a>
|
1786
|
+
</span>
|
1787
|
+
</p>
|
1788
|
+
<div align='center' class='table_container'>
|
1789
|
+
<table id='tableD-1' class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;page-break-after: avoid;page-break-inside: avoid;' title='tool tip' summary='long desc' width='70%'>
|
1790
|
+
<colgroup>
|
1791
|
+
<col width='30%'/>
|
1792
|
+
<col width='20%'/>
|
1793
|
+
<col width='20%'/>
|
1794
|
+
<col width='20%'/>
|
1795
|
+
<col width='10%'/>
|
1796
|
+
</colgroup>
|
1797
|
+
<thead>
|
1798
|
+
<tr>
|
1799
|
+
<td rowspan='2' align='left' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>Description</td>
|
1800
|
+
<td colspan='4' align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Rice sample</td>
|
1801
|
+
</tr>
|
1802
|
+
<tr>
|
1803
|
+
<td align='left' valign="top" style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>Arborio</td>
|
1804
|
+
<td align='center' valign="middle" style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>
|
1805
|
+
Drago
|
1806
|
+
<a href='#tableD-1a' class='TableFootnoteRef'>a</a>
|
1807
|
+
<aside>
|
1808
|
+
<div id='ftntableD-1a'>
|
1809
|
+
<span>
|
1810
|
+
<span id='tableD-1a' class='TableFootnoteRef'>a</span>
|
1811
|
+
<span style='mso-tab-count:1'>  </span>
|
1812
|
+
</span>
|
1813
|
+
<p id='_0fe65e9a-5531-408e-8295-eeff35f41a55'>Parboiled rice.</p>
|
1814
|
+
</div>
|
1815
|
+
</aside>
|
1816
|
+
</td>
|
1817
|
+
<td align='center' valign="bottom" style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>
|
1818
|
+
Balilla
|
1819
|
+
<a href='#tableD-1a' class='TableFootnoteRef'>a</a>
|
1820
|
+
</td>
|
1821
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>Thaibonnet</td>
|
1822
|
+
</tr>
|
1823
|
+
</thead>
|
1824
|
+
<tbody>
|
1825
|
+
<tr>
|
1826
|
+
<th align='left' style='font-weight:bold;border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Number of laboratories retained after eliminating outliers</th>
|
1827
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>13</td>
|
1828
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>11</td>
|
1829
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>13</td>
|
1830
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>13</td>
|
1831
|
+
</tr>
|
1832
|
+
<tr>
|
1833
|
+
<td align='left' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>Mean value, g/100 g</td>
|
1834
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>81,2</td>
|
1835
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>82,0</td>
|
1836
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>81,8</td>
|
1837
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>77,7</td>
|
1838
|
+
</tr>
|
1839
|
+
</tbody>
|
1840
|
+
<tfoot>
|
1841
|
+
<tr>
|
1842
|
+
<td align='left' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>
|
1843
|
+
Reproducibility limit,
|
1844
|
+
<span class='stem'>(#(R)#)</span>
|
1845
|
+
(= 2,83
|
1846
|
+
<span class='stem'>(#(s_R)#)</span>
|
1847
|
+
)
|
1848
|
+
</td>
|
1849
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>2,89</td>
|
1850
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>0,57</td>
|
1851
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>2,26</td>
|
1852
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>6,06</td>
|
1853
|
+
</tr>
|
1854
|
+
</tfoot>
|
1855
|
+
<table class='dl'>
|
1856
|
+
<tr>
|
1857
|
+
<td valign='top' align='left'>
|
1858
|
+
<p align='left' style='margin-left:0pt;text-align:left;'>Drago</p>
|
1859
|
+
</td>
|
1860
|
+
<td valign='top'>A type of rice</td>
|
1861
|
+
</tr>
|
1862
|
+
</table>
|
1863
|
+
<div class='Note'>
|
1864
|
+
<p class='Note'>
|
1865
|
+
<span class='note_label'>NOTE</span>
|
1866
|
+
<span style='mso-tab-count:1'>  </span>
|
1867
|
+
This is a table about rice
|
1868
|
+
</p>
|
1869
|
+
</div>
|
1870
|
+
</table>
|
1871
|
+
</div>
|
1872
|
+
<div align='center' class='table_container'>
|
1873
|
+
<table id='tableD-2' class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;'>
|
1874
|
+
<tbody>
|
1875
|
+
<tr>
|
1876
|
+
<td style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>A</td>
|
1877
|
+
</tr>
|
1878
|
+
</tbody>
|
1879
|
+
</table>
|
1880
|
+
</div>
|
1881
|
+
</div>
|
1882
|
+
<p> </p>
|
1883
|
+
</div>
|
1884
|
+
<p>
|
1885
|
+
<br clear='all' class='section'/>
|
1886
|
+
</p>
|
1887
|
+
<div class='WordSection3'>
|
1888
|
+
<p class='zzSTDTitle1'/>
|
1889
|
+
<aside id='ftn1'>
|
1890
|
+
<p>X</p>
|
1891
|
+
</aside>
|
1892
|
+
</div>
|
1893
|
+
</body>
|
1894
|
+
</html>
|
1895
|
+
INPUT
|
1896
|
+
<html xmlns:epub='http://www.idpf.org/2007/ops' lang='en'>
|
1897
|
+
<head>
|
1898
|
+
<style/>
|
1899
|
+
</head>
|
1900
|
+
<body lang='EN-US' link='blue' vlink='#954F72'>
|
1901
|
+
<div class='WordSection1'>
|
1902
|
+
<p> </p>
|
1903
|
+
</div>
|
1904
|
+
<p>
|
1905
|
+
<br clear='all' class='section'/>
|
1906
|
+
</p>
|
1907
|
+
<div class='WordSection2'>
|
1908
|
+
<p>
|
1909
|
+
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
1910
|
+
</p>
|
1911
|
+
<div>
|
1912
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
1913
|
+
<p class='TableTitle' style='text-align:center;'>
|
1914
|
+
Table 1 — Repeatability and reproducibility of
|
1915
|
+
<i>husked</i>
|
1916
|
+
rice yield
|
1917
|
+
<span style='mso-bookmark:_Ref'>
|
1918
|
+
<a class='FootnoteRef' href='#ftn1' epub:type='footnote'>
|
1919
|
+
<sup>1</sup>
|
1920
|
+
</a>
|
1921
|
+
</span>
|
1922
|
+
</p>
|
1923
|
+
<div align='center' class='table_container'>
|
1924
|
+
<table id='tableD-1' class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;page-break-after: avoid;page-break-inside: avoid;' title='tool tip' summary='long desc' width='70%'>
|
1925
|
+
<colgroup>
|
1926
|
+
<col width='30%'/>
|
1927
|
+
<col width='20%'/>
|
1928
|
+
<col width='20%'/>
|
1929
|
+
<col width='20%'/>
|
1930
|
+
<col width='10%'/>
|
1931
|
+
</colgroup>
|
1932
|
+
<thead>
|
1933
|
+
<tr>
|
1934
|
+
<td rowspan='2' align='left' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='30.0%'>Description</td>
|
1935
|
+
<td colspan='4' align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;' width='70.0%'>Rice sample</td>
|
1936
|
+
</tr>
|
1937
|
+
<tr>
|
1938
|
+
<td align='left' valign='top' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>Arborio</td>
|
1939
|
+
<td align='center' valign='middle' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>
|
1940
|
+
Drago
|
1941
|
+
<a href='#tableD-1a' class='TableFootnoteRef'>a</a>
|
1942
|
+
<aside>
|
1943
|
+
<div id='ftntableD-1a'>
|
1944
|
+
<span>
|
1945
|
+
<span id='tableD-1a' class='TableFootnoteRef'>a</span>
|
1946
|
+
<span style='mso-tab-count:1'>  </span>
|
1947
|
+
</span>
|
1948
|
+
<p id='_0fe65e9a-5531-408e-8295-eeff35f41a55'>Parboiled rice.</p>
|
1949
|
+
</div>
|
1950
|
+
</aside>
|
1951
|
+
</td>
|
1952
|
+
<td align='center' valign='bottom' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>
|
1953
|
+
Balilla
|
1954
|
+
<a href='#tableD-1a' class='TableFootnoteRef'>a</a>
|
1955
|
+
</td>
|
1956
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='10.0%'>Thaibonnet</td>
|
1957
|
+
</tr>
|
1958
|
+
</thead>
|
1959
|
+
<tbody>
|
1960
|
+
<tr>
|
1961
|
+
<th align='left' style='font-weight:bold;border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;' width='30.0%'>Number of laboratories retained after eliminating outliers</th>
|
1962
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;' width='20.0%'>13</td>
|
1963
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;' width='20.0%'>11</td>
|
1964
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;' width='20.0%'>13</td>
|
1965
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;' width='10.0%'>13</td>
|
1966
|
+
</tr>
|
1967
|
+
<tr>
|
1968
|
+
<td align='left' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='30.0%'>Mean value, g/100 g</td>
|
1969
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>81,2</td>
|
1970
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>82,0</td>
|
1971
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>81,8</td>
|
1972
|
+
<td align='center' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='10.0%'>77,7</td>
|
1973
|
+
</tr>
|
1974
|
+
</tbody>
|
1975
|
+
<tfoot>
|
1976
|
+
<tr>
|
1977
|
+
<td align='left' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='30.0%'>
|
1978
|
+
Reproducibility limit,
|
1979
|
+
<span class='stem'>(#(R)#)</span>
|
1980
|
+
(= 2,83
|
1981
|
+
<span class='stem'>(#(s_R)#)</span>
|
1982
|
+
)
|
1983
|
+
</td>
|
1984
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>2,89</td>
|
1985
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>0,57</td>
|
1986
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='20.0%'>2,26</td>
|
1987
|
+
<td align='center' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;' width='10.0%'>6,06</td>
|
1988
|
+
</tr>
|
1989
|
+
</tfoot>
|
1990
|
+
<div class='Note'>
|
1991
|
+
<p class='Note'>
|
1992
|
+
<span class='note_label'>NOTE</span>
|
1993
|
+
<span style='mso-tab-count:1'>  </span>
|
1994
|
+
This is a table about rice
|
1995
|
+
</p>
|
1996
|
+
</div>
|
1997
|
+
</table>
|
1998
|
+
<table class='dl'>
|
1999
|
+
<tr>
|
2000
|
+
<td valign='top' align='left'>
|
2001
|
+
<p align='left' style='margin-left:0pt;text-align:left;'>Drago</p>
|
2002
|
+
</td>
|
2003
|
+
<td valign='top'>A type of rice</td>
|
2004
|
+
</tr>
|
2005
|
+
</table>
|
2006
|
+
</div>
|
2007
|
+
<div align='center' class='table_container'>
|
2008
|
+
<table id='tableD-2' class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;'>
|
2009
|
+
<tbody>
|
2010
|
+
<tr>
|
2011
|
+
<td style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>A</td>
|
2012
|
+
</tr>
|
2013
|
+
</tbody>
|
2014
|
+
</table>
|
2015
|
+
</div>
|
2016
|
+
</div>
|
2017
|
+
<p> </p>
|
2018
|
+
</div>
|
2019
|
+
<p>
|
2020
|
+
<br clear='all' class='section'/>
|
2021
|
+
</p>
|
2022
|
+
<div class='WordSection3'>
|
2023
|
+
<p class='zzSTDTitle1'/>
|
2024
|
+
<aside id='ftn1'>
|
2025
|
+
<p>X</p>
|
2026
|
+
</aside>
|
2027
|
+
</div>
|
2028
|
+
</body>
|
2029
|
+
</html>
|
2030
|
+
OUTPUT
|
2031
|
+
end
|
2032
|
+
|
1572
2033
|
end
|