metanorma-iso 1.3.26 → 1.4.3.pre.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +0 -1
  3. data/.github/workflows/ubuntu.yml +6 -3
  4. data/.github/workflows/windows.yml +0 -1
  5. data/Gemfile +1 -0
  6. data/Rakefile +2 -0
  7. data/lib/asciidoctor/iso/base.rb +11 -14
  8. data/lib/asciidoctor/iso/biblio.rng +1 -1
  9. data/lib/asciidoctor/iso/cleanup.rb +1 -1
  10. data/lib/asciidoctor/iso/front_id.rb +1 -1
  11. data/lib/asciidoctor/iso/isodoc.rng +427 -0
  12. data/lib/asciidoctor/iso/isostandard.rng +3 -0
  13. data/lib/asciidoctor/iso/reqt.rng +23 -0
  14. data/lib/asciidoctor/iso/term_lookup_cleanup.rb +2 -2
  15. data/lib/asciidoctor/iso/validate.rb +1 -5
  16. data/lib/asciidoctor/iso/validate_title.rb +1 -1
  17. data/lib/isodoc/iso/base_convert.rb +66 -79
  18. data/lib/isodoc/iso/html/htmlstyle.css +47 -0
  19. data/lib/isodoc/iso/html/htmlstyle.scss +0 -1
  20. data/lib/isodoc/iso/html/isodoc.css +862 -0
  21. data/lib/isodoc/iso/html/isodoc.scss +4 -1
  22. data/lib/isodoc/iso/html/style-human.css +968 -0
  23. data/lib/isodoc/iso/html/style-human.scss +3 -0
  24. data/lib/isodoc/iso/html/style-iso.css +996 -0
  25. data/lib/isodoc/iso/html/style-iso.scss +3 -0
  26. data/lib/isodoc/iso/html/word_iso_intro.html +4 -0
  27. data/lib/isodoc/iso/html/wordstyle.css +1515 -0
  28. data/lib/isodoc/iso/html/wordstyle.scss +0 -1
  29. data/lib/isodoc/iso/iso.amendment.xsl +778 -261
  30. data/lib/isodoc/iso/iso.international-standard.xsl +778 -261
  31. data/lib/isodoc/iso/metadata.rb +1 -1
  32. data/lib/isodoc/iso/pdf_convert.rb +1 -14
  33. data/lib/isodoc/iso/presentation_xml_convert.rb +13 -0
  34. data/lib/isodoc/iso/sections.rb +2 -2
  35. data/lib/isodoc/iso/sts_convert.rb +8 -6
  36. data/lib/isodoc/iso/xref.rb +111 -0
  37. data/lib/metanorma-iso.rb +1 -0
  38. data/lib/metanorma/iso/processor.rb +11 -8
  39. data/lib/metanorma/iso/version.rb +1 -1
  40. data/metanorma-iso.gemspec +3 -2
  41. data/spec/asciidoctor-iso/amd_spec.rb +7 -7
  42. data/spec/asciidoctor-iso/base_spec.rb +5 -5
  43. data/spec/asciidoctor-iso/cleanup_spec.rb +2 -2
  44. data/spec/asciidoctor-iso/macros_spec.rb +20 -6
  45. data/spec/asciidoctor-iso/refs_spec.rb +1 -1
  46. data/spec/asciidoctor-iso/table_spec.rb +1 -1
  47. data/spec/isodoc/amd_spec.rb +48 -2
  48. data/spec/isodoc/blocks_spec.rb +112 -27
  49. data/spec/isodoc/inline_spec.rb +2 -2
  50. data/spec/isodoc/metadata_spec.rb +86 -4
  51. data/spec/isodoc/postproc_spec.rb +1 -1
  52. data/spec/isodoc/ref_spec.rb +5 -5
  53. data/spec/isodoc/table_spec.rb +8 -8
  54. data/spec/isodoc/terms_spec.rb +4 -4
  55. data/spec/isodoc/xref_spec.rb +24 -18
  56. data/spec/metanorma/processor_spec.rb +2 -2
  57. metadata +35 -15
@@ -150,7 +150,7 @@ RSpec.describe Asciidoctor::ISO do
150
150
  <tr>
151
151
  <th rowspan="2" align="left">Defect</th>
152
152
  <th colspan="4" align="center">Maximum permissible mass fraction of defects in husked rice<br/>
153
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>w</mi><mi>max</mi></msub></math></stem></th>
153
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>w</mi><mo>max</mo></msub></math></stem></th>
154
154
  </tr>
155
155
  <tr>
156
156
  <th align="left">in husked rice</th>
@@ -491,7 +491,7 @@ OUTPUT
491
491
  <title language='fr' format='text/plain' type='title-main'>Titre Principal</title>
492
492
  <title language='fr' format='text/plain' type='title-part'>Part du Titre</title>
493
493
  <title language='fr' format='text/plain' type='title-amd'>Fraction massique de matière étrangère, riz usiné (non gluant), diviseurs d’échantillon et recommandations relatives aux conditions d’entreposage et de transport</title>
494
- <docidentifier type='iso'>ISO/PreNWIP3 17301-1:2016/Amd.1</docidentifier>
494
+ <docidentifier type='ISO'>ISO/PreNWIP3 17301-1:2016/Amd.1</docidentifier>
495
495
  <docidentifier type='iso-with-lang'>ISO/PreNWIP3 17301-1:2016/Amd.1(E)</docidentifier>
496
496
  <docidentifier type='iso-reference'>ISO/PreNWIP3 17301-1:2016/Amd.1:2017(E)</docidentifier>
497
497
  <docnumber>17301</docnumber>
@@ -563,7 +563,53 @@ OUTPUT
563
563
  <sections/>
564
564
  </iso-standard>
565
565
  INPUT
566
- {:agency=>"ISO", :authors=>[], :authors_affiliations=>{}, :createddate=>"2016-05-01", :docnumber=>"ISO/PreNWIP3 17301-1:2016/Amd.1", :docnumber_lang=>"ISO/PreNWIP3 17301-1:2016/Amd.1(E)", :docnumber_reference=>"ISO/PreNWIP3 17301-1:2016/Amd.1:2017(E)", :docnumeric=>"17301", :docsubtitle=>"Introduction Fran&#xe7;aise&nbsp;&mdash; Titre Principal&nbsp;&mdash; Partie&nbsp;1: Part du Titre", :docsubtitleamd=>"Fraction massique de mati&#xe8;re &#xe9;trang&#xe8;re, riz usin&#xe9; (non gluant), diviseurs d&#x2019;&#xe9;chantillon et recommandations relatives aux conditions d&#x2019;entreposage et de transport", :docsubtitleamdlabel=>"AMENDMENT&nbsp;1", :docsubtitlecorrlabel=>"RECTIFICATIF TECHNIQUE&nbsp;2", :docsubtitleintro=>"Introduction Fran&#xe7;aise", :docsubtitlemain=>"Titre Principal", :docsubtitlepart=>"Part du Titre", :docsubtitlepartlabel=>"Partie&nbsp;1", :doctitle=>"Introduction&nbsp;&mdash; Main Title&#x2009;&#x2014;&#x2009;Title&nbsp;&mdash; Part&nbsp;1: Title Part", :doctitleamd=>"Mass fraction of extraneous matter, milled rice (nonglutinous), sample dividers and recommendations relating to storage and transport conditions", :doctitleamdlabel=>"AMENDMENT&nbsp;1", :doctitlecorrlabel=>"TECHNICAL CORRIGENDUM&nbsp;2", :doctitleintro=>"Introduction", :doctitlemain=>"Main Title&#x2009;&#x2014;&#x2009;Title", :doctitlepart=>"Title Part", :doctitlepartlabel=>"Part&nbsp;1", :doctype=>"Amendment", :docyear=>"2017", :draft=>"0.3.4", :draftinfo=>" (draft 0.3.4, 2000-01-01)", :edition=>"2", :editorialgroup=>["A 1", "B 2", "C 3"], :ics=>"1, 2, 3", :keywords=>[], :obsoletes=>nil, :obsoletes_part=>nil, :publisher=>"International Organization for Standardization", :revdate=>"2000-01-01", :revdate_monthyear=>"January 2000", :sc=>"B 2", :secretariat=>"SECRETARIAT", :stage=>"10", :stage_int=>10, :stageabbr=>"NWIP", :statusabbr=>"PreNWIP3", :tc=>"A 1", :tc_docnumber=>[], :unpublished=>true, :wg=>"C 3"}
566
+ {:agency=>"ISO",
567
+ :authors=>[],
568
+ :authors_affiliations=>{},
569
+ :createddate=>"2016-05-01",
570
+ :docnumber=>"ISO/PreNWIP3 17301-1:2016/Amd.1",
571
+ :docnumber_lang=>"ISO/PreNWIP3 17301-1:2016/Amd.1(E)",
572
+ :docnumber_reference=>"ISO/PreNWIP3 17301-1:2016/Amd.1:2017(E)",
573
+ :docnumeric=>"17301",
574
+ :docsubtitle=>"Introduction Fran&#xe7;aise&nbsp;&mdash; Titre Principal&nbsp;&mdash; Partie&nbsp;1: Part du Titre",
575
+ :docsubtitleamd=>"Fraction massique de mati&#xe8;re &#xe9;trang&#xe8;re, riz usin&#xe9; (non gluant), diviseurs d&#x2019;&#xe9;chantillon et recommandations relatives aux conditions d&#x2019;entreposage et de transport",
576
+ :docsubtitleamdlabel=>"AMENDMENT&nbsp;1",
577
+ :docsubtitlecorrlabel=>"RECTIFICATIF TECHNIQUE&nbsp;2",
578
+ :docsubtitleintro=>"Introduction Fran&#xe7;aise",
579
+ :docsubtitlemain=>"Titre Principal",
580
+ :docsubtitlepart=>"Part du Titre",
581
+ :docsubtitlepartlabel=>"Partie&nbsp;1",
582
+ :doctitle=>"Introduction&nbsp;&mdash; Main Title&#x2009;&#x2014;&#x2009;Title&nbsp;&mdash; Part&nbsp;1: Title Part",
583
+ :doctitleamd=>"Mass fraction of extraneous matter, milled rice (nonglutinous), sample dividers and recommendations relating to storage and transport conditions",
584
+ :doctitleamdlabel=>"AMENDMENT&nbsp;1",
585
+ :doctitlecorrlabel=>"TECHNICAL CORRIGENDUM&nbsp;2",
586
+ :doctitleintro=>"Introduction",
587
+ :doctitlemain=>"Main Title&#x2009;&#x2014;&#x2009;Title",
588
+ :doctitlepart=>"Title Part",
589
+ :doctitlepartlabel=>"Part&nbsp;1",
590
+ :doctype=>"Amendment",
591
+ :docyear=>"2017",
592
+ :draft=>"0.3.4",
593
+ :draftinfo=>" (draft 0.3.4, 2000-01-01)",
594
+ :edition=>"2",
595
+ :editorialgroup=>["A 1", "B 2", "C 3"],
596
+ :ics=>"1, 2, 3",
597
+ :keywords=>[],
598
+ :obsoletes=>nil,
599
+ :obsoletes_part=>nil,
600
+ :publisher=>"International Organization for Standardization",
601
+ :revdate=>"2000-01-01",
602
+ :revdate_monthyear=>"January 2000",
603
+ :sc=>"B 2",
604
+ :secretariat=>"SECRETARIAT",
605
+ :stage=>"10",
606
+ :stage_int=>10,
607
+ :stageabbr=>"NWIP",
608
+ :statusabbr=>"PreNWIP3",
609
+ :tc=>"A 1",
610
+ :tc_docnumber=>[],
611
+ :unpublished=>true,
612
+ :wg=>"C 3"}
567
613
  OUTPUT
568
614
  end
569
615
 
@@ -8,12 +8,10 @@ RSpec.describe IsoDoc do
8
8
  <formula id="_be9158af-7e93-4ee2-90c5-26d31c181934" unnumbered="true">
9
9
  <stem type="AsciiMath">r = 1 %</stem>
10
10
  <dl id="_e4fe94fe-1cde-49d9-b1ad-743293b7e21d">
11
- <dt>
12
- <stem type="AsciiMath">r</stem>
13
- </dt>
14
- <dd>
15
- <p id="_1b99995d-ff03-40f5-8f2e-ab9665a69b77">is the repeatability limit.</p>
16
- </dd>
11
+ <dt> <stem type="AsciiMath">r</stem> </dt>
12
+ <dd> <p id="_1b99995d-ff03-40f5-8f2e-ab9665a69b77">is the repeatability limit.</p> </dd>
13
+ <dt> <stem type="AsciiMath">s_1</stem> </dt>
14
+ <dd> <p id="_1b99995d-ff03-40f5-8f2e-ab9665a69b77">is the other repeatability limit.</p> </dd>
17
15
  </dl>
18
16
  <note id="_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0">
19
17
  <p id="_511aaa98-4116-42af-8e5b-c87cdf5bfdc8">[durationUnits] is essentially a duration statement without the "P" prefix. "P" is unnecessary because between "G" and "U" duration is always expressed.</p>
@@ -26,29 +24,55 @@ RSpec.describe IsoDoc do
26
24
  </iso-standard>
27
25
  INPUT
28
26
  #{HTML_HDR}
29
- <br/>
30
- <div>
31
- <h1 class="ForewordTitle">Foreword</h1>
32
- <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>
33
- <span class="stem">(#(r)#)</span>
34
- </dt><dd>
35
- <p id="_1b99995d-ff03-40f5-8f2e-ab9665a69b77">is the repeatability limit.</p>
36
- </dd></dl>
37
-
38
-
39
- <div id="_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0" class="Note"><p><span class="note_label">NOTE</span>&#160; [durationUnits] is essentially a duration statement without the "P" prefix. "P" is unnecessary because between "G" and "U" duration is always expressed.</p></div>
40
-
41
- <div id="_be9158af-7e93-4ee2-90c5-26d31c181935" class="formula"><p><span class="stem">(#(r = 1 %)#)</span>&#160; (1)</p></div>
42
- </div>
43
- <p class="zzSTDTitle1"/>
44
- </div>
45
- </body>
46
- </html>
27
+ <br/>
28
+ <div>
29
+ <h1 class='ForewordTitle'>Foreword</h1>
30
+ <div id='_be9158af-7e93-4ee2-90c5-26d31c181934'><div class='formula'>
31
+ <p>
32
+ <span class='stem'>(#(r = 1 %)#)</span>
33
+ </p>
34
+ </div>
35
+ <p style='page-break-after:avoid;'>where</p>
36
+ <dl id='_e4fe94fe-1cde-49d9-b1ad-743293b7e21d' class='formula_dl'>
37
+ <dt>
38
+ <span class='stem'>(#(r)#)</span>
39
+ </dt>
40
+ <dd>
41
+ <p id='_1b99995d-ff03-40f5-8f2e-ab9665a69b77'>is the repeatability limit.</p>
42
+ </dd>
43
+ <dt>
44
+ <span class='stem'>(#(s_1)#)</span>
45
+ </dt>
46
+ <dd>
47
+ <p id='_1b99995d-ff03-40f5-8f2e-ab9665a69b77'>is the other repeatability limit.</p>
48
+ </dd>
49
+ </dl>
50
+ <div id='_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0' class='Note'>
51
+ <p>
52
+ <span class='note_label'>NOTE</span>
53
+ &#160; [durationUnits] is essentially a duration statement without
54
+ the "P" prefix. "P" is unnecessary because between "G" and "U"
55
+ duration is always expressed.
56
+ </p>
57
+ </div>
58
+ </div>
59
+ <div id='_be9158af-7e93-4ee2-90c5-26d31c181935'><div class='formula'>
60
+ <p>
61
+ <span class='stem'>(#(r = 1 %)#)</span>
62
+ &#160; (1)
63
+ </p>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ <p class='zzSTDTitle1'/>
68
+ </div>
69
+ </body>
70
+ </html>
47
71
  OUTPUT
48
72
  end
49
73
 
50
74
  it "processes formulae (Word)" do
51
- expect((IsoDoc::Iso::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(%r{^.*<div>\s*<h1 class="ForewordTitle">}m, '<div><h1 class="ForewordTitle">').sub(%r{<p>\&#160;</p>\s*</div>.*$}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
75
+ expect(xmlpp(IsoDoc::Iso::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(%r{^.*<div>\s*<h1 class="ForewordTitle">}m, '<div><h1 class="ForewordTitle">').sub(%r{<p>\&#160;</p>\s*</div>.*$}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
52
76
  <iso-standard xmlns="http://riboseinc.com/isoxml">
53
77
  <preface><foreword>
54
78
  <formula id="_be9158af-7e93-4ee2-90c5-26d31c181934" unnumbered="true">
@@ -60,6 +84,8 @@ RSpec.describe IsoDoc do
60
84
  <dd>
61
85
  <p id="_1b99995d-ff03-40f5-8f2e-ab9665a69b77">is the repeatability limit.</p>
62
86
  </dd>
87
+ <dt> <stem type="AsciiMath">s_1</stem> </dt>
88
+ <dd> <p id="_1b99995d-ff03-40f5-8f2e-ab9665a69b77">is the other repeatability limit.</p> </dd>
63
89
  </dl>
64
90
  <note id="_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0">
65
91
  <p id="_511aaa98-4116-42af-8e5b-c87cdf5bfdc8">[durationUnits] is essentially a duration statement without the "P" prefix. "P" is unnecessary because between "G" and "U" duration is always expressed.</p>
@@ -73,7 +99,7 @@ RSpec.describe IsoDoc do
73
99
  INPUT
74
100
  <div>
75
101
  <h1 class='ForewordTitle'>Foreword</h1>
76
- <div id='_be9158af-7e93-4ee2-90c5-26d31c181934' class='formula'>
102
+ <div id='_be9158af-7e93-4ee2-90c5-26d31c181934'><div class='formula'>
77
103
  <p>
78
104
  <span class='stem'>(#(r = 1 %)#)</span>
79
105
  </p>
@@ -90,6 +116,16 @@ RSpec.describe IsoDoc do
90
116
  <p id='_1b99995d-ff03-40f5-8f2e-ab9665a69b77'>is the repeatability limit.</p>
91
117
  </td>
92
118
  </tr>
119
+ <tr>
120
+ <td valign='top' align='left'>
121
+ <p align='left' style='margin-left:0pt;text-align:left;'>
122
+ <span class='stem'>(#(s_1)#)</span>
123
+ </p>
124
+ </td>
125
+ <td valign='top'>
126
+ <p id='_1b99995d-ff03-40f5-8f2e-ab9665a69b77'>is the other repeatability limit.</p>
127
+ </td>
128
+ </tr>
93
129
  </table>
94
130
  <div id='_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0' class='Note'>
95
131
  <p class='Note'>
@@ -100,16 +136,65 @@ RSpec.describe IsoDoc do
100
136
  always expressed.
101
137
  </p>
102
138
  </div>
103
- <div id='_be9158af-7e93-4ee2-90c5-26d31c181935' class='formula'>
139
+ </div>
140
+ <div id='_be9158af-7e93-4ee2-90c5-26d31c181935'><div class='formula'>
104
141
  <p>
105
142
  <span class='stem'>(#(r = 1 %)#)</span>
106
143
  <span style='mso-tab-count:1'>&#160; </span>
107
144
  (1)
108
145
  </p>
109
146
  </div>
147
+ </div>
110
148
  </div>
111
149
  OUTPUT
112
150
  end
113
151
 
152
+ it "processes formulae with single definition list entry" do
153
+ expect(xmlpp(IsoDoc::Iso::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
154
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
155
+ <preface><foreword>
156
+ <formula id="_be9158af-7e93-4ee2-90c5-26d31c181934" unnumbered="true">
157
+ <stem type="AsciiMath">r = 1 %</stem>
158
+ <dl id="_e4fe94fe-1cde-49d9-b1ad-743293b7e21d">
159
+ <dt>
160
+ <stem type="AsciiMath">r</stem>
161
+ </dt>
162
+ <dd>
163
+ <p id="_1b99995d-ff03-40f5-8f2e-ab9665a69b77">is the repeatability limit.</p>
164
+ </dd>
165
+ </dl>
166
+ <note id="_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0">
167
+ <p id="_511aaa98-4116-42af-8e5b-c87cdf5bfdc8">[durationUnits] is essentially a duration statement without the "P" prefix. "P" is unnecessary because between "G" and "U" duration is always expressed.</p>
168
+ </note>
169
+ </formula>
170
+ <formula id="_be9158af-7e93-4ee2-90c5-26d31c181935">
171
+ <stem type="AsciiMath">r = 1 %</stem>
172
+ </formula>
173
+ </foreword></preface>
174
+ </iso-standard>
175
+ INPUT
176
+ #{HTML_HDR}
177
+ <br/>
178
+ <div>
179
+ <h1 class="ForewordTitle">Foreword</h1>
180
+ <div id="_be9158af-7e93-4ee2-90c5-26d31c181934"><div class="formula"><p><span class="stem">(#(r = 1 %)#)</span></p></div>
181
+ <span class='zzMoveToFollowing'>
182
+ where
183
+ <span class='stem'>(#(r)#)</span>
184
+ </span>
185
+ <p id='_1b99995d-ff03-40f5-8f2e-ab9665a69b77'>is the repeatability limit.</p>
186
+
187
+ <div id="_83083c7a-6c85-43db-a9fa-4d8edd0c9fc0" class="Note"><p><span class="note_label">NOTE</span>&#160; [durationUnits] is essentially a duration statement without the "P" prefix. "P" is unnecessary because between "G" and "U" duration is always expressed.</p></div>
188
+ </div>
189
+
190
+ <div id="_be9158af-7e93-4ee2-90c5-26d31c181935"><div class="formula"><p><span class="stem">(#(r = 1 %)#)</span>&#160; (1)</p></div></div>
191
+ </div>
192
+ <p class="zzSTDTitle1"/>
193
+ </div>
194
+ </body>
195
+ </html>
196
+ OUTPUT
197
+ end
198
+
114
199
 
115
200
  end
@@ -243,7 +243,7 @@ RSpec.describe IsoDoc do
243
243
  <a href="#ISO712">ISO 712, Clause 1</a>
244
244
  <a href="#ISO712">ISO 712, 1.5</a>
245
245
  <a href="#ISO712">A</a>
246
- <a href="#ISO712">ISO 712, </a>
246
+ <a href="#ISO712">ISO 712, Whole of text</a>
247
247
  <a href="#ISO712">ISO 712, Prelude 7</a>
248
248
  <a href="#ISO712">A</a>
249
249
  </p>
@@ -251,7 +251,7 @@ RSpec.describe IsoDoc do
251
251
  <p class="zzSTDTitle1"/>
252
252
  <div>
253
253
  <h1>1&#160; Normative references</h1>
254
- <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
254
+ <p id="ISO712" class="NormRef">ISO 712, <i>Cereals and cereal products</i></p>
255
255
  </div>
256
256
  </div>
257
257
  </body>
@@ -16,7 +16,7 @@ RSpec.describe IsoDoc::Iso::Metadata do
16
16
  <title type="title-intro" language="fr" format="text/plain">Céréales et légumineuses</title>
17
17
  <title type="title-main" language="fr" format="text/plain">Spécification et méthodes d'essai</title>
18
18
  <title type="title-part" language="fr" format="text/plain">Riz</title>
19
- <docidentifier type="iso">ISO/PreCD3 17301-1</docidentifier>
19
+ <docidentifier type="ISO">ISO/PreCD3 17301-1</docidentifier>
20
20
  <docidentifier type="iso-with-lang">ISO/PreCD3 17301-1 (E)</docidentifier>
21
21
  <docidentifier type="iso-reference">ISO/PreCD3 17301-1:2000 (E)</docidentifier>
22
22
  <docidentifier type="iso-tc">17301</docidentifier>
@@ -78,7 +78,51 @@ RSpec.describe IsoDoc::Iso::Metadata do
78
78
  </bibdata>
79
79
  </iso-standard>
80
80
  INPUT
81
- {:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :authors=>[], :authors_affiliations=>{}, :createddate=>"2010&ndash;2011", :docnumber=>"ISO/PreCD3 17301-1", :docnumber_lang=>"ISO/PreCD3 17301-1 (E)", :docnumber_reference=>"ISO/PreCD3 17301-1:2000 (E)", :docnumeric=>"1730", :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1: Riz", :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses", :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie&nbsp;1", :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part&nbsp;1", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :edition=>"2", :editorialgroup=>["TC 34", "SC 4", "WG 3"], :ics=>nil, :keywords=>["kw2", "kw1"], :obsoleteddate=>"2014", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"2011", :publisher=>"International Organization for Standardization", :revdate=>"2016-05-01", :revdate_monthyear=>"May 2016", :sc=>"SC 4", :secretariat=>"GB", :stage=>"30", :stage_int=>30, :stageabbr=>"CD", :statusabbr=>"PreCD3", :tc=>"TC 34", :tc_docnumber=>["17301", "17302"], :unpublished=>true, :wg=>"WG 3"}
81
+ {:accesseddate=>"2012",
82
+ :activateddate=>"2013",
83
+ :agency=>"ISO",
84
+ :authors=>[],
85
+ :authors_affiliations=>{},
86
+ :createddate=>"2010&ndash;2011",
87
+ :docnumber=>"ISO/PreCD3 17301-1",
88
+ :docnumber_lang=>"ISO/PreCD3 17301-1 (E)",
89
+ :docnumber_reference=>"ISO/PreCD3 17301-1:2000 (E)",
90
+ :docnumeric=>"1730",
91
+ :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1: Riz",
92
+ :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses",
93
+ :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai",
94
+ :docsubtitlepart=>"Riz",
95
+ :docsubtitlepartlabel=>"Partie&nbsp;1",
96
+ :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1: Rice",
97
+ :doctitleintro=>"Cereals and pulses",
98
+ :doctitlemain=>"Specifications and test methods",
99
+ :doctitlepart=>"Rice",
100
+ :doctitlepartlabel=>"Part&nbsp;1",
101
+ :doctype=>"International Standard",
102
+ :docyear=>"2016",
103
+ :draft=>"0.4",
104
+ :draftinfo=>" (draft 0.4, 2016-05-01)",
105
+ :edition=>"2",
106
+ :editorialgroup=>["TC 34", "SC 4", "WG 3"],
107
+ :ics=>nil,
108
+ :keywords=>["kw2", "kw1"],
109
+ :obsoleteddate=>"2014",
110
+ :obsoletes=>nil,
111
+ :obsoletes_part=>nil,
112
+ :publisheddate=>"2011",
113
+ :publisher=>"International Organization for Standardization",
114
+ :revdate=>"2016-05-01",
115
+ :revdate_monthyear=>"May 2016",
116
+ :sc=>"SC 4",
117
+ :secretariat=>"GB",
118
+ :stage=>"30",
119
+ :stage_int=>30,
120
+ :stageabbr=>"CD",
121
+ :statusabbr=>"PreCD3",
122
+ :tc=>"TC 34",
123
+ :tc_docnumber=>["17301", "17302"],
124
+ :unpublished=>true,
125
+ :wg=>"WG 3"}
82
126
  OUTPUT
83
127
  end
84
128
 
@@ -100,7 +144,7 @@ OUTPUT
100
144
  <title type="title-main" language="fr" format="text/plain">Spécification et méthodes d'essai</title>
101
145
  <title type="title-part" language="fr" format="text/plain">Riz</title>
102
146
  </title>
103
- <docidentifier type="iso">ISO/IEC/CD 17301-1-3</docidentifier>
147
+ <docidentifier type="ISO">ISO/IEC/CD 17301-1-3</docidentifier>
104
148
  <docidentifier type="iso-with-lang">ISO/IEC/CD 17301-1-3 (E)</docidentifier>
105
149
  <docidentifier type="iso-reference">ISO/IEC/CD 17301-1-3 (E)</docidentifier>
106
150
  <docidentifier type="iso-tc">17301</docidentifier>
@@ -159,7 +203,45 @@ OUTPUT
159
203
  </bibdata>
160
204
  </iso-standard>
161
205
  INPUT
162
- {:agency=>"ISO/IEC", :authors=>[], :authors_affiliations=>{}, :docnumber=>"ISO/IEC/CD 17301-1-3", :docnumber_lang=>"ISO/IEC/CD 17301-1-3 (E)", :docnumber_reference=>"ISO/IEC/CD 17301-1-3 (E)", :docnumeric=>nil, :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1&ndash;3: Riz", :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses", :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie&nbsp;1&ndash;3", :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1&ndash;3: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part&nbsp;1&ndash;3", :doctype=>"International Standard", :docyear=>"2016", :draft=>nil, :draftinfo=>"", :edition=>nil, :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"], :ics=>"1.2.3, 1.2.3", :keywords=>[], :obsoletes=>"IEC 8121", :obsoletes_part=>"3.1", :publisher=>"International Organization for Standardization and International Electrotechnical Commission", :revdate=>nil, :revdate_monthyear=>nil, :sc=>"DEF 4", :secretariat=>"XXXX", :stage=>"60", :stage_int=>60, :statusabbr=>"IS", :tc=>"ABC 34", :tc_docnumber=>["17301"], :unpublished=>false, :wg=>"GHI 3"}
206
+ {:agency=>"ISO/IEC",
207
+ :authors=>[],
208
+ :authors_affiliations=>{},
209
+ :docnumber=>"ISO/IEC/CD 17301-1-3",
210
+ :docnumber_lang=>"ISO/IEC/CD 17301-1-3 (E)",
211
+ :docnumber_reference=>"ISO/IEC/CD 17301-1-3 (E)",
212
+ :docnumeric=>nil,
213
+ :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1&ndash;3: Riz",
214
+ :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses",
215
+ :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai",
216
+ :docsubtitlepart=>"Riz",
217
+ :docsubtitlepartlabel=>"Partie&nbsp;1&ndash;3",
218
+ :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1&ndash;3: Rice",
219
+ :doctitleintro=>"Cereals and pulses",
220
+ :doctitlemain=>"Specifications and test methods",
221
+ :doctitlepart=>"Rice",
222
+ :doctitlepartlabel=>"Part&nbsp;1&ndash;3",
223
+ :doctype=>"International Standard",
224
+ :docyear=>"2016",
225
+ :draft=>nil,
226
+ :draftinfo=>"",
227
+ :edition=>nil,
228
+ :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"],
229
+ :ics=>"1.2.3, 1.2.3",
230
+ :keywords=>[],
231
+ :obsoletes=>"IEC 8121",
232
+ :obsoletes_part=>"3.1",
233
+ :publisher=>"International Organization for Standardization and International Electrotechnical Commission",
234
+ :revdate=>nil,
235
+ :revdate_monthyear=>nil,
236
+ :sc=>"DEF 4",
237
+ :secretariat=>"XXXX",
238
+ :stage=>"60",
239
+ :stage_int=>60,
240
+ :statusabbr=>"IS",
241
+ :tc=>"ABC 34",
242
+ :tc_docnumber=>["17301"],
243
+ :unpublished=>false,
244
+ :wg=>"GHI 3"}
163
245
  OUTPUT
164
246
  end
165
247
 
@@ -730,7 +730,7 @@ end
730
730
  <a name='boilerplate-place' id='boilerplate-place'/>
731
731
  Dilbert Associates
732
732
  </p>
733
- <p align='left' style='text-align:left' class='zzAddress'>
733
+ <p align='left' style='text-align:left;' class='zzAddress'>
734
734
  <a name='boilerplate-address' id='boilerplate-address'/>
735
735
  Elbonia 5000
736
736
  </p>
@@ -42,7 +42,7 @@ RSpec.describe IsoDoc do
42
42
  <abbreviation>ISO</abbreviation>
43
43
  </organization>
44
44
  </contributor>
45
- <note format="text/plain" reference="1">ISO DATE: Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
45
+ <note format="text/plain" reference="1" type="ISO DATE">Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
46
46
  <extent type="part">
47
47
  <referenceFrom>all</referenceFrom>
48
48
  </extent>
@@ -142,7 +142,7 @@ RSpec.describe IsoDoc do
142
142
  <p id="ISO16634" class="NormRef">ISO 16634:-- (all parts)<a class="FootnoteRef" href="#fn:1"><sup>1</sup></a>, <i>Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</i></p>
143
143
  <p id="ISO20483" class="NormRef">ISO 20483:2013-2014, <i>Cereals and pulses</i></p>
144
144
  <p id="ref1" class="NormRef">ICC 167, <span style="font-variant:small-caps;">Standard No I.C.C 167</span>. <i>Determination of the protein content in cereal and cereal products for food and animal feeding stuffs according to the Dumas combustion method</i> (see <a href="http://www.icc.or.at">http://www.icc.or.at</a>)</p>
145
- <div id="" class="Note">
145
+ <div class="Note">
146
146
  <p><span class="note_label">NOTE</span>&#160; This is an annotation of ISO 20483:2013-2014</p>
147
147
  </div>
148
148
  </div>
@@ -151,16 +151,16 @@ RSpec.describe IsoDoc do
151
151
  <h1 class="Section3">Bibliography</h1>
152
152
  <p id="ISBN" class="Biblio">[1]&#160; <i>Chemicals for analytical laboratory use</i></p>
153
153
  <p id="ISSN" class="Biblio">[2]&#160; <i>Instruments for analytical laboratory use</i></p>
154
- <div id="" class="Note">
154
+ <div class="Note">
155
155
  <p><span class="note_label">NOTE</span>&#160; This is an annotation of document ISSN.</p>
156
156
  </div>
157
- <div id="" class="Note">
157
+ <div class="Note">
158
158
  <p><span class="note_label">NOTE</span>&#160; This is another annotation of document ISSN.</p>
159
159
  </div>
160
160
  <p id="ISO3696" class="Biblio">[3]&#160; ISO 3696, <i>Water for analytical laboratory use</i></p>
161
161
  <p id="ref10" class="Biblio">[10]&#160; <span style="font-variant:small-caps;">Standard No I.C.C 167</span>. <i>Determination of the protein content in cereal and cereal products for food and animal feeding stuffs according to the Dumas combustion method</i> (see <a href="http://www.icc.or.at">http://www.icc.or.at</a>)</p>
162
162
  <p id="ref11" class="Biblio">[5]&#160; IETF RFC 10, <i>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</i></p>
163
- <p id="ref12" class="Biblio">[6]&#160; Citn, IETF RFC 20, CitationWorks. 2019. <i>How to cite a reference</i>.</p>
163
+ <p id="ref12" class="Biblio">Citn&#160; IETF RFC 20, CitationWorks. 2019. <i>How to cite a reference</i>.</p>
164
164
  </div>
165
165
  <aside id="fn:1" class="footnote">
166
166
  <p>Under preparation. (Stage at the time of publication ISO/DIS 16634)</p>
@@ -87,11 +87,11 @@ RSpec.describe IsoDoc do
87
87
  <td style='text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;;text-align:center;vertical-align:middle;' scope='col'>Arborio</td>
88
88
  <td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;;text-align:center;vertical-align:middle;' scope='col'>
89
89
  Drago
90
- <a href='#tableD-1a' class='TableFootnoteRef'>a)</a>
90
+ <a href='#tableD-1a' class='TableFootnoteRef'>a</a>
91
91
  </td>
92
92
  <td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;;text-align:center;vertical-align:middle;' scope='col'>
93
93
  Balilla
94
- <a href='#tableD-1a' class='TableFootnoteRef'>a)</a>
94
+ <a href='#tableD-1a' class='TableFootnoteRef'>a</a>
95
95
  </td>
96
96
  <td style='text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;;text-align:center;vertical-align:middle;' scope='col'>Thaibonnet</td>
97
97
  </tr>
@@ -128,7 +128,7 @@ RSpec.describe IsoDoc do
128
128
  </tr>
129
129
  <tr>
130
130
  <td colspan='5' style='border-top:0pt;border-bottom:solid windowtext 1.5pt;'>
131
- <div id='' class='Note'>
131
+ <div class='Note'>
132
132
  <p>
133
133
  <span class='note_label'>NOTE</span>
134
134
  &#xA0; This is a table about rice
@@ -138,7 +138,7 @@ RSpec.describe IsoDoc do
138
138
  <div id='fn:tableD-1a'>
139
139
  <p id='_0fe65e9a-5531-408e-8295-eeff35f41a55' class='TableFootnote'>
140
140
  <span>
141
- <span id='tableD-1a' class='TableFootnoteRef'>a)</span>
141
+ <span id='tableD-1a' class='TableFootnoteRef'>a</span>
142
142
  &#xA0;
143
143
  </span>
144
144
  Parboiled rice.
@@ -233,8 +233,8 @@ OUTPUT
233
233
  </tr>
234
234
  <tr>
235
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>
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
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
239
  </tr>
240
240
  </thead>
@@ -268,10 +268,10 @@ OUTPUT
268
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
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
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">
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 class="Note">
272
272
  <p class="Note"><span class="note_label">NOTE</span><span style="mso-tab-count:1">&#xA0; </span>This is a table about rice</p>
273
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">&#xA0; </span></span>Parboiled rice.</p>
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">&#xA0; </span></span>Parboiled rice.</p>
275
275
  </div></div></td></tr></tfoot>
276
276
 
277
277