metanorma-iso 1.3.19 → 1.3.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/asciidoctor/iso/base.rb +1 -0
- data/lib/asciidoctor/iso/cleanup.rb +3 -1
- data/lib/asciidoctor/iso/isodoc.rng +5 -0
- data/lib/asciidoctor/iso/isostandard.rng +80 -0
- data/lib/asciidoctor/iso/validate.rb +19 -19
- data/lib/asciidoctor/iso/validate_section.rb +19 -19
- data/lib/asciidoctor/iso/validate_title.rb +11 -11
- data/lib/isodoc/iso/base_convert.rb +42 -1
- data/lib/isodoc/iso/html/isodoc.scss +4 -0
- data/lib/isodoc/iso/html/style-human.scss +7 -0
- data/lib/isodoc/iso/html/style-iso.scss +6 -0
- data/lib/isodoc/iso/html_convert.rb +6 -0
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +0 -1
- data/spec/asciidoctor-iso/cleanup_spec.rb +57 -21
- data/spec/asciidoctor-iso/validate_spec.rb +225 -75
- data/spec/isodoc/postproc_spec.rb +123 -3
- data/spec/isodoc/section_spec.rb +45 -0
- data/spec/isodoc/table_spec.rb +289 -0
- data/spec/isodoc/xref_spec.rb +92 -25
- metadata +3 -16
@@ -555,6 +555,14 @@ RSpec.describe IsoDoc do
|
|
555
555
|
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
556
556
|
</p>
|
557
557
|
<div class="Section3"><a name="P" id="P"></a>
|
558
|
+
<h1 class='Annex'>
|
559
|
+
<b>Annex A</b>
|
560
|
+
<br/>
|
561
|
+
(normative)
|
562
|
+
<br/>
|
563
|
+
<br/>
|
564
|
+
<b/>
|
565
|
+
</h1>
|
558
566
|
<div class="example"><a name="_63112cbc-cde0-435f-9553-e0b8c4f5851c" id="_63112cbc-cde0-435f-9553-e0b8c4f5851c"></a>
|
559
567
|
<p class="example"><span class="example_label">EXAMPLE 1</span><span style="mso-tab-count:1">  </span>'1M', '01M', and '0001M' all describe the calendar month January.</p>
|
560
568
|
</div>
|
@@ -592,10 +600,18 @@ RSpec.describe IsoDoc do
|
|
592
600
|
<br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
|
593
601
|
</p>
|
594
602
|
<div class="Section3"><a name="P" id="P"></a>
|
603
|
+
<h1 class='Annex'>
|
604
|
+
<b>Annex A</b>
|
605
|
+
<br/>
|
606
|
+
(normative)
|
607
|
+
<br/>
|
608
|
+
<br/>
|
609
|
+
<b/>
|
610
|
+
</h1>
|
595
611
|
<div class="figure"><a name="samplecode" id="samplecode"></a>
|
596
612
|
<p class="MsoNormal">Hello</p>
|
597
613
|
<p class="MsoNormal">Key</p>
|
598
|
-
<p class=
|
614
|
+
<p style='page-break-after:avoid;' class='MsoNormal'><b>Key</b></p><div class="figdl" style="page-break-after:avoid;"><table class="figdl"><tr><td valign="top" align="left"><p align="left" style="margin-left:0pt;text-align:left;" class="MsoNormal"><p class="MsoNormal">A</p></p></td><td valign="top"><p class="MsoNormal">B</p></td></tr></table></div>
|
599
615
|
<p class="FigureTitle" style="text-align:center;">Figure A.1</p></div>
|
600
616
|
</div>
|
601
617
|
</div>
|
@@ -696,10 +712,9 @@ end
|
|
696
712
|
expect(xmlpp(word.sub(%r{^.*<div class="boilerplate-copyright">}m, '<div class="boilerplate-copyright">').sub(%r{</div>.*$}m, '</div></div>'))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
697
713
|
<div class='boilerplate-copyright'>
|
698
714
|
<div>
|
699
|
-
<p class='zzCopyrightHdr'/>
|
700
715
|
<p class='zzCopyright'>
|
701
716
|
<a name='boilerplate-year' id='boilerplate-year'/>
|
702
|
-
Published in Elbonia
|
717
|
+
<span><b/></span>Published in Elbonia
|
703
718
|
</p>
|
704
719
|
<p class='zzCopyright1'>
|
705
720
|
<a name='boilerplate-message' id='boilerplate-message'/>
|
@@ -719,4 +734,109 @@ end
|
|
719
734
|
expect(word).to include '<p class="zzWarning">I am the Walrus</p>'
|
720
735
|
end
|
721
736
|
|
737
|
+
it "skips internal hyperlinks" do
|
738
|
+
FileUtils.rm_f "test.html"
|
739
|
+
FileUtils.rm_f "test.doc"
|
740
|
+
IsoDoc::Iso::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", <<~"INPUT", false)
|
741
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
742
|
+
<preface>
|
743
|
+
<foreword>
|
744
|
+
<p>
|
745
|
+
<xref target="scope"/>
|
746
|
+
<xref target="terms"/>
|
747
|
+
<xref target="_waxy_rice"/>
|
748
|
+
<xref target="N"/>
|
749
|
+
<xref target="N1"/>
|
750
|
+
<xref target="N2"/>
|
751
|
+
<xref target="N3"/>
|
752
|
+
<xref target="N4"/>
|
753
|
+
<xref target="N5"/>
|
754
|
+
<xref target="N6"/>
|
755
|
+
<xref target="N7"/>
|
756
|
+
<xref target="N8"/>
|
757
|
+
<xref target="N9"/>
|
758
|
+
<xref target="N10"/>
|
759
|
+
<eref bibitemid="ISO712"/>
|
760
|
+
</p>
|
761
|
+
</foreword>
|
762
|
+
</preface>
|
763
|
+
<sections>
|
764
|
+
<clause id="scope"><title>Scope</title>
|
765
|
+
<note id="N">
|
766
|
+
<p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
|
767
|
+
</note>
|
768
|
+
<figure id="N1">
|
769
|
+
<name>Split-it-right sample divider</name>
|
770
|
+
</figure>
|
771
|
+
<example id="N2">
|
772
|
+
<p>Hello</p>
|
773
|
+
</example>
|
774
|
+
<formula id="N3">
|
775
|
+
<stem type="AsciiMath">r = 1 %</stem>
|
776
|
+
</formula>
|
777
|
+
<table id="N4">
|
778
|
+
<name>Repeatability and reproducibility of husked rice yield</name>
|
779
|
+
<tbody>
|
780
|
+
<tr>
|
781
|
+
<td align="left">Number of laboratories retained after eliminating outliers</td>
|
782
|
+
<td align="center">13</td>
|
783
|
+
<td align="center">11</td>
|
784
|
+
</tr>
|
785
|
+
</tbody>
|
786
|
+
</table>
|
787
|
+
<ol id="N6">
|
788
|
+
<li id="N7"><p>A</p></li>
|
789
|
+
</ol>
|
790
|
+
<requirement id="N8">
|
791
|
+
<stem type="AsciiMath">r = 1 %</stem>
|
792
|
+
</requirement>
|
793
|
+
<recommendation id="N9">
|
794
|
+
<stem type="AsciiMath">r = 1 %</stem>
|
795
|
+
</requirement>
|
796
|
+
<permission id="N10">
|
797
|
+
<stem type="AsciiMath">r = 1 %</stem>
|
798
|
+
</requirement>
|
799
|
+
</clause>
|
800
|
+
<terms id="terms">
|
801
|
+
<term id="_waxy_rice"><preferred>waxy rice</preferred>
|
802
|
+
<termnote id="N5">
|
803
|
+
<p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
|
804
|
+
</termnote></term>
|
805
|
+
</terms>
|
806
|
+
</sections>
|
807
|
+
<bibliography><references id="_normative_references" obligation="informative"><title>Normative References</title>
|
808
|
+
<p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
809
|
+
<bibitem id="ISO712" type="standard">
|
810
|
+
<title format="text/plain">Cereals or cereal products</title>
|
811
|
+
<title type="main" format="text/plain">Cereals and cereal products</title>
|
812
|
+
<docidentifier type="ISO">ISO 712</docidentifier>
|
813
|
+
<contributor>
|
814
|
+
<role type="publisher"/>
|
815
|
+
<organization>
|
816
|
+
<name>International Organization for Standardization</name>
|
817
|
+
</organization>
|
818
|
+
</contributor>
|
819
|
+
</bibitem>
|
820
|
+
</references>
|
821
|
+
</bibliography>
|
822
|
+
</iso-standard>
|
823
|
+
INPUT
|
824
|
+
expect(File.exist?("test.html")).to be true
|
825
|
+
html = File.read("test.html", encoding: "UTF-8").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
|
826
|
+
sub(%r{</main>.*$}m, "</main>").sub(%r{^.*?<div>}m, "<div>").sub(%r{</div>.*$}m, "</div>")
|
827
|
+
expect(xmlpp(html)).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
828
|
+
<div>
|
829
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
830
|
+
<p>
|
831
|
+
<a href='#scope'>Clause 1</a>
|
832
|
+
<a href='#terms'>Clause 3</a>
|
833
|
+
<a href='#_waxy_rice'>3.1</a>
|
834
|
+
Clause 1, Note Figure 1 Clause 1, Example Clause 1, Formula (1) Table 1
|
835
|
+
3.1, Note 1 Clause 1, List Clause 1 a) Clause 1, Requirement 1 Clause 1,
|
836
|
+
Recommendation 1 Clause 1, Permission 1
|
837
|
+
<a href='#ISO712'>ISO 712</a>
|
838
|
+
</p>
|
839
|
+
</div>
|
840
|
+
OUTPUT
|
841
|
+
end
|
722
842
|
end
|
data/spec/isodoc/section_spec.rb
CHANGED
@@ -304,6 +304,51 @@ OUTPUT
|
|
304
304
|
OUTPUT
|
305
305
|
end
|
306
306
|
|
307
|
+
it "processes subclauses with and without titles" do
|
308
|
+
expect(xmlpp(IsoDoc::Iso::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
309
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
310
|
+
<sections>
|
311
|
+
<clause id="D" obligation="normative">
|
312
|
+
<title>Scope</title>
|
313
|
+
<clause id="D1" obligation="normative">
|
314
|
+
<title>Scope 1</title>
|
315
|
+
</clause>
|
316
|
+
<clause id="D2" obligation="normative">
|
317
|
+
</clause>
|
318
|
+
</clause>
|
319
|
+
</sections>
|
320
|
+
</iso-standard>
|
321
|
+
INPUT
|
322
|
+
<html xmlns:epub='http://www.idpf.org/2007/ops' lang='en'>
|
323
|
+
<head/>
|
324
|
+
<body lang='en'>
|
325
|
+
<div class='title-section'>
|
326
|
+
<p> </p>
|
327
|
+
</div>
|
328
|
+
<br/>
|
329
|
+
<div class='prefatory-section'>
|
330
|
+
<p> </p>
|
331
|
+
</div>
|
332
|
+
<br/>
|
333
|
+
<div class='main-section'>
|
334
|
+
<p class='zzSTDTitle1'/>
|
335
|
+
<div id='D'>
|
336
|
+
<h1>1  Scope</h1>
|
337
|
+
<div id='D1'>
|
338
|
+
<h2>1.1  Scope 1</h2>
|
339
|
+
</div>
|
340
|
+
<div id='D2'>
|
341
|
+
<span class='zzMoveToFollowing'>
|
342
|
+
<b>1.2  </b>
|
343
|
+
</span>
|
344
|
+
</div>
|
345
|
+
</div>
|
346
|
+
</div>
|
347
|
+
</body>
|
348
|
+
</html>
|
349
|
+
OUTPUT
|
350
|
+
end
|
351
|
+
|
307
352
|
it "processes simple terms & definitions" do
|
308
353
|
expect(xmlpp(IsoDoc::Iso::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
309
354
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
@@ -0,0 +1,289 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe IsoDoc do
|
4
|
+
it "processes IsoXML tables" do
|
5
|
+
FileUtils.rm_f("test.html")
|
6
|
+
IsoDoc::Iso::HtmlConvert.new({}).convert("test", <<~"INPUT", false)
|
7
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
8
|
+
<preface>
|
9
|
+
<foreword>
|
10
|
+
<table id="tableD-1" alt="tool tip" summary="long desc">
|
11
|
+
<name>Repeatability and reproducibility of <em>husked</em> rice yield</name>
|
12
|
+
<thead>
|
13
|
+
<tr>
|
14
|
+
<td rowspan="2" align="left">Description</td>
|
15
|
+
<td colspan="4" align="center">Rice sample</td>
|
16
|
+
</tr>
|
17
|
+
<tr>
|
18
|
+
<td align="left">Arborio</td>
|
19
|
+
<td align="center">Drago<fn reference="a">
|
20
|
+
<p id="_0fe65e9a-5531-408e-8295-eeff35f41a55">Parboiled rice.</p>
|
21
|
+
</fn></td>
|
22
|
+
<td align="center">Balilla<fn reference="a">
|
23
|
+
<p id="_0fe65e9a-5531-408e-8295-eeff35f41a55">Parboiled rice.</p>
|
24
|
+
</fn></td>
|
25
|
+
<td align="center">Thaibonnet</td>
|
26
|
+
</tr>
|
27
|
+
</thead>
|
28
|
+
<tbody>
|
29
|
+
<tr>
|
30
|
+
<th align="left">Number of laboratories retained after eliminating outliers</th>
|
31
|
+
<td align="center">13</td>
|
32
|
+
<td align="center">11</td>
|
33
|
+
<td align="center">13</td>
|
34
|
+
<td align="center">13</td>
|
35
|
+
</tr>
|
36
|
+
<tr>
|
37
|
+
<td align="left">Mean value, g/100 g</td>
|
38
|
+
<td align="center">81,2</td>
|
39
|
+
<td align="center">82,0</td>
|
40
|
+
<td align="center">81,8</td>
|
41
|
+
<td align="center">77,7</td>
|
42
|
+
</tr>
|
43
|
+
</tbody>
|
44
|
+
<tfoot>
|
45
|
+
<tr>
|
46
|
+
<td align="left">Reproducibility limit, <stem type="AsciiMath">R</stem> (= 2,83 <stem type="AsciiMath">s_R</stem>)</td>
|
47
|
+
<td align="center">2,89</td>
|
48
|
+
<td align="center">0,57</td>
|
49
|
+
<td align="center">2,26</td>
|
50
|
+
<td align="center">6,06</td>
|
51
|
+
</tr>
|
52
|
+
</tfoot>
|
53
|
+
<dl>
|
54
|
+
<dt>Drago</dt>
|
55
|
+
<dd>A type of rice</dd>
|
56
|
+
</dl>
|
57
|
+
<note><p>This is a table about rice</p></note>
|
58
|
+
</table>
|
59
|
+
|
60
|
+
</foreword>
|
61
|
+
</preface>
|
62
|
+
</iso-standard>
|
63
|
+
INPUT
|
64
|
+
expect(File.exist?("test.html")).to be true
|
65
|
+
html = File.read("test.html").sub(/^.*<main /m, '<main ').sub(%r{</main>.*$}m, "</main>")
|
66
|
+
expect(xmlpp(html)).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
67
|
+
<main class='main-section'>
|
68
|
+
<button onclick='topFunction()' id='myBtn' title='Go to top'>Top</button>
|
69
|
+
<br/>
|
70
|
+
<div>
|
71
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
72
|
+
<p class='TableTitle' style='text-align:center;'>
|
73
|
+
Table 1 — Repeatability and reproducibility of
|
74
|
+
<i>husked</i>
|
75
|
+
rice yield
|
76
|
+
</p>
|
77
|
+
<table id='tableD-1' class='MsoISOTable' style='border-width:1px;border-spacing:0;' title='tool tip'>
|
78
|
+
<caption>
|
79
|
+
<span style='display:none'>long desc</span>
|
80
|
+
</caption>
|
81
|
+
<thead>
|
82
|
+
<tr>
|
83
|
+
<td rowspan='2' style='text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;;text-align:center;vertical-align:middle;' scope='col'>Description</td>
|
84
|
+
<td colspan='4' style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;;text-align:center;vertical-align:middle;' scope='colgroup'>Rice sample</td>
|
85
|
+
</tr>
|
86
|
+
<tr>
|
87
|
+
<td style='text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;;text-align:center;vertical-align:middle;' scope='col'>Arborio</td>
|
88
|
+
<td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;;text-align:center;vertical-align:middle;' scope='col'>
|
89
|
+
Drago
|
90
|
+
<a href='#tableD-1a' class='TableFootnoteRef'>a)</a>
|
91
|
+
</td>
|
92
|
+
<td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;;text-align:center;vertical-align:middle;' scope='col'>
|
93
|
+
Balilla
|
94
|
+
<a href='#tableD-1a' class='TableFootnoteRef'>a)</a>
|
95
|
+
</td>
|
96
|
+
<td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;;text-align:center;vertical-align:middle;' scope='col'>Thaibonnet</td>
|
97
|
+
</tr>
|
98
|
+
</thead>
|
99
|
+
<tbody>
|
100
|
+
<tr>
|
101
|
+
<th style='font-weight:bold;text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;' scope='row'>Number of laboratories retained after eliminating outliers</th>
|
102
|
+
<td style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;'>13</td>
|
103
|
+
<td style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;'>11</td>
|
104
|
+
<td style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;'>13</td>
|
105
|
+
<td style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;'>13</td>
|
106
|
+
</tr>
|
107
|
+
<tr>
|
108
|
+
<td style='text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;'>Mean value, g/100 g</td>
|
109
|
+
<td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;'>81,2</td>
|
110
|
+
<td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;'>82,0</td>
|
111
|
+
<td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;'>81,8</td>
|
112
|
+
<td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;'>77,7</td>
|
113
|
+
</tr>
|
114
|
+
</tbody>
|
115
|
+
<tfoot>
|
116
|
+
<tr>
|
117
|
+
<td style='text-align:left;border-top:solid windowtext 1.5pt;border-bottom:0pt;padding:0;'>
|
118
|
+
Reproducibility limit,
|
119
|
+
<span class='stem'>(#(R)#)</span>
|
120
|
+
(= 2,83
|
121
|
+
<span class='stem'>(#(s_R)#)</span>
|
122
|
+
)
|
123
|
+
</td>
|
124
|
+
<td style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:0pt;padding:0;'>2,89</td>
|
125
|
+
<td style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:0pt;padding:0;'>0,57</td>
|
126
|
+
<td style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:0pt;padding:0;'>2,26</td>
|
127
|
+
<td style='text-align:center;border-top:solid windowtext 1.5pt;border-bottom:0pt;padding:0;'>6,06</td>
|
128
|
+
</tr>
|
129
|
+
<tr>
|
130
|
+
<td colspan='5' style='border-top:0pt;border-bottom:solid windowtext 1.5pt;'>
|
131
|
+
<div id='' class='Note'>
|
132
|
+
<p>
|
133
|
+
<span class='note_label'>NOTE</span>
|
134
|
+
  This is a table about rice
|
135
|
+
</p>
|
136
|
+
</div>
|
137
|
+
<div class='TableFootnote'>
|
138
|
+
<div id='fn:tableD-1a'>
|
139
|
+
<p id='_0fe65e9a-5531-408e-8295-eeff35f41a55' class='TableFootnote'>
|
140
|
+
<span>
|
141
|
+
<span id='tableD-1a' class='TableFootnoteRef'>a)</span>
|
142
|
+
 
|
143
|
+
</span>
|
144
|
+
Parboiled rice.
|
145
|
+
</p>
|
146
|
+
</div>
|
147
|
+
</div>
|
148
|
+
</td>
|
149
|
+
</tr>
|
150
|
+
</tfoot>
|
151
|
+
<dl>
|
152
|
+
<dt>
|
153
|
+
<p>Drago</p>
|
154
|
+
</dt>
|
155
|
+
<dd>A type of rice</dd>
|
156
|
+
</dl>
|
157
|
+
</table>
|
158
|
+
</div>
|
159
|
+
<p class='zzSTDTitle1'/>
|
160
|
+
</main>
|
161
|
+
OUTPUT
|
162
|
+
end
|
163
|
+
|
164
|
+
it "processes IsoXML tables (Word)" do
|
165
|
+
FileUtils.rm_f("test.doc")
|
166
|
+
IsoDoc::Iso::WordConvert.new({}).convert("test", <<~"INPUT", false)
|
167
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
168
|
+
<preface>
|
169
|
+
<foreword>
|
170
|
+
<table id="tableD-1" alt="tool tip" summary="long desc">
|
171
|
+
<name>Repeatability and reproducibility of <em>husked</em> rice yield</name>
|
172
|
+
<thead>
|
173
|
+
<tr>
|
174
|
+
<td rowspan="2" align="left">Description</td>
|
175
|
+
<td colspan="4" align="center">Rice sample</td>
|
176
|
+
</tr>
|
177
|
+
<tr>
|
178
|
+
<td align="left">Arborio</td>
|
179
|
+
<td align="center">Drago<fn reference="a">
|
180
|
+
<p id="_0fe65e9a-5531-408e-8295-eeff35f41a55">Parboiled rice.</p>
|
181
|
+
</fn></td>
|
182
|
+
<td align="center">Balilla<fn reference="a">
|
183
|
+
<p id="_0fe65e9a-5531-408e-8295-eeff35f41a55">Parboiled rice.</p>
|
184
|
+
</fn></td>
|
185
|
+
<td align="center">Thaibonnet</td>
|
186
|
+
</tr>
|
187
|
+
</thead>
|
188
|
+
<tbody>
|
189
|
+
<tr>
|
190
|
+
<th align="left">Number of laboratories retained after eliminating outliers</th>
|
191
|
+
<td align="center">13</td>
|
192
|
+
<td align="center">11</td>
|
193
|
+
<td align="center">13</td>
|
194
|
+
<td align="center">13</td>
|
195
|
+
</tr>
|
196
|
+
<tr>
|
197
|
+
<td align="left">Mean value, g/100 g</td>
|
198
|
+
<td align="center">81,2</td>
|
199
|
+
<td align="center">82,0</td>
|
200
|
+
<td align="center">81,8</td>
|
201
|
+
<td align="center">77,7</td>
|
202
|
+
</tr>
|
203
|
+
</tbody>
|
204
|
+
<tfoot>
|
205
|
+
<tr>
|
206
|
+
<td align="left">Reproducibility limit, <stem type="AsciiMath">R</stem> (= 2,83 <stem type="AsciiMath">s_R</stem>)</td>
|
207
|
+
<td align="center">2,89</td>
|
208
|
+
<td align="center">0,57</td>
|
209
|
+
<td align="center">2,26</td>
|
210
|
+
<td align="center">6,06</td>
|
211
|
+
</tr>
|
212
|
+
</tfoot>
|
213
|
+
<dl>
|
214
|
+
<dt>Drago</dt>
|
215
|
+
<dd>A type of rice</dd>
|
216
|
+
</dl>
|
217
|
+
<note><p>This is a table about rice</p></note>
|
218
|
+
</table>
|
219
|
+
|
220
|
+
</foreword>
|
221
|
+
</preface>
|
222
|
+
</iso-standard>
|
223
|
+
INPUT
|
224
|
+
|
225
|
+
expect(File.exist?("test.doc")).to be true
|
226
|
+
html = File.read("test.doc").sub(/^.+?<table /m, '<table xmlns:m="m" ').sub(%r{</div>\s*<p class="MsoNormal">.*$}m, "")
|
227
|
+
expect(("<div>#{html}")).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
228
|
+
<div><table xmlns:m="m" class="MsoISOTable" style="mso-table-lspace:15.0cm;margin-left:423.0pt;mso-table-rspace:15.0cm;margin-right:423.0pt;mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;" title="tool tip" summary="long desc"><a name="tableD-1" id="tableD-1"></a>
|
229
|
+
<thead>
|
230
|
+
<tr>
|
231
|
+
<td rowspan="2" 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;" valign="middle">Description</td>
|
232
|
+
<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;" valign="middle">Rice sample</td>
|
233
|
+
</tr>
|
234
|
+
<tr>
|
235
|
+
<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;" valign="middle">Arborio</td>
|
236
|
+
<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;" valign="middle">Drago<a href="#tableD-1a" class="TableFootnoteRef">a)</a></td>
|
237
|
+
<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;" valign="middle">Balilla<a href="#tableD-1a" class="TableFootnoteRef">a)</a></td>
|
238
|
+
<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;" valign="middle">Thaibonnet</td>
|
239
|
+
</tr>
|
240
|
+
</thead>
|
241
|
+
<tbody>
|
242
|
+
<tr>
|
243
|
+
<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>
|
244
|
+
<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>
|
245
|
+
<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>
|
246
|
+
<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>
|
247
|
+
<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>
|
248
|
+
</tr>
|
249
|
+
<tr>
|
250
|
+
<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>
|
251
|
+
<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>
|
252
|
+
<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>
|
253
|
+
<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>
|
254
|
+
<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>
|
255
|
+
</tr>
|
256
|
+
</tbody>
|
257
|
+
<tfoot>
|
258
|
+
<tr>
|
259
|
+
<td align="left" style="border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:0pt;mso-border-bottom-alt:0pt;">Reproducibility limit, <span class="stem"><m:oMath>
|
260
|
+
<m:r><m:t>R</m:t></m:r>
|
261
|
+
</m:oMath>
|
262
|
+
</span> (= 2,83 <span class="stem"><m:oMath>
|
263
|
+
<m:sSub><m:e><m:r><m:t>s</m:t></m:r></m:e><m:sub><m:r><m:t>R</m:t></m:r></m:sub></m:sSub>
|
264
|
+
</m:oMath>
|
265
|
+
</span>)</td>
|
266
|
+
<td align="center" style="border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:0pt;mso-border-bottom-alt:0pt;">2,89</td>
|
267
|
+
<td align="center" style="border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:0pt;mso-border-bottom-alt:0pt;">0,57</td>
|
268
|
+
<td align="center" style="border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:0pt;mso-border-bottom-alt:0pt;">2,26</td>
|
269
|
+
<td align="center" style="border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:0pt;mso-border-bottom-alt:0pt;">6,06</td>
|
270
|
+
</tr>
|
271
|
+
<tr><td colspan="5" style="border-top:0pt;mso-border-top-alt:0pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;"><div id="" class="Note">
|
272
|
+
<p class="Note"><span class="note_label">NOTE</span><span style="mso-tab-count:1">  </span>This is a table about rice</p>
|
273
|
+
</div><div class="TableFootnote"><div><a name="ftntableD-1a" id="ftntableD-1a"></a>
|
274
|
+
<p class="TableFootnote"><a name="_0fe65e9a-5531-408e-8295-eeff35f41a55" id="_0fe65e9a-5531-408e-8295-eeff35f41a55"></a><span><span class="TableFootnoteRef"><a name="tableD-1a" id="tableD-1a"></a>a)</span><span style="mso-tab-count:1">  </span></span>Parboiled rice.</p>
|
275
|
+
</div></div></td></tr></tfoot>
|
276
|
+
|
277
|
+
|
278
|
+
</table><table class="dl">
|
279
|
+
<tr>
|
280
|
+
<td valign="top" align="left">
|
281
|
+
<p align="left" style="margin-left:0pt;text-align:left;" class="MsoNormal">Drago</p>
|
282
|
+
</td>
|
283
|
+
<td valign="top">A type of rice</td>
|
284
|
+
</tr>
|
285
|
+
</table>
|
286
|
+
</div>
|
287
|
+
OUTPUT
|
288
|
+
end
|
289
|
+
end
|