isodoc 1.0.26 → 1.0.27

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c880a51deba0cb3638cae9563b05e1216c34b631225bd1fecb28c8b070a2affb
4
- data.tar.gz: f64deeac458969b8f9c396b3f72bea106fb50da295132092ea13dcc2daf38d4e
3
+ metadata.gz: 68d6f17f0d5291c6c067bfc6a3a476885b80f128bdc9c4e3e3d8356c6af30482
4
+ data.tar.gz: 2710c48aa2fb9eeee44b586107b07884d52802a53fec81d69c0f3fb68fa988ed
5
5
  SHA512:
6
- metadata.gz: 184392c1f9e0b216a32f80309e031f5ee9cf85679af2975dfa24ca58807094da25445f8a2068da7032f16484ccf91e83eae9dbb1f9d26b08856b2893f117ea58
7
- data.tar.gz: b8cfd29ad7920acb05e192197d6332189cfcec4412980665a3251bae5c32a235fff257fffc0726195826b79a3405135409259aff3020eabf8949f8aa0cc85c55
6
+ metadata.gz: 1c38cb43027aa1a056d465660449a4a58e1a5b78474a5f0184fca4164f2af2480720329e5a7181fcc1731151ef15db71019aa9fc34175b779de517006bf85fa6
7
+ data.tar.gz: '09503b88edfb1db0b3def003bca81c356b40790014953a9bc08de680af8db75222ded714f43a1f6820ec30dbaa2e3f83ac2a5e386f3c757f0d639f086e0b4b2c'
@@ -6,15 +6,23 @@ on:
6
6
  push:
7
7
  branches: [ master ]
8
8
  pull_request:
9
+ paths-ignore:
10
+ - .github/workflows/ubuntu.yml
11
+ - .github/workflows/windows.yml
9
12
 
10
13
  jobs:
11
14
  test-macos:
12
15
  name: Test on Ruby ${{ matrix.ruby }} macOS
13
16
  runs-on: macos-latest
17
+ continue-on-error: ${{ matrix.experimental }}
14
18
  strategy:
15
19
  fail-fast: false
16
20
  matrix:
17
21
  ruby: [ '2.6', '2.5', '2.4' ]
22
+ experimental: [false]
23
+ include:
24
+ - ruby: '2.7'
25
+ experimental: true
18
26
  steps:
19
27
  - uses: actions/checkout@master
20
28
  - name: Use Ruby
@@ -6,15 +6,23 @@ on:
6
6
  push:
7
7
  branches: [ master ]
8
8
  pull_request:
9
+ paths-ignore:
10
+ - .github/workflows/macos.yml
11
+ - .github/workflows/windows.yml
9
12
 
10
13
  jobs:
11
14
  test-linux:
12
15
  name: Test on Ruby ${{ matrix.ruby }} Ubuntu
13
16
  runs-on: ubuntu-latest
17
+ continue-on-error: ${{ matrix.experimental }}
14
18
  strategy:
15
19
  fail-fast: false
16
20
  matrix:
17
21
  ruby: [ '2.6', '2.5', '2.4' ]
22
+ experimental: [false]
23
+ include:
24
+ - ruby: '2.7'
25
+ experimental: true
18
26
  steps:
19
27
  - uses: actions/checkout@master
20
28
  - name: Use Ruby
@@ -39,7 +47,7 @@ jobs:
39
47
  run: |
40
48
  bundle exec rake
41
49
  - name: Trigger dependent repositories
42
- if: github.ref == 'refs/heads/master'
50
+ if: github.ref == 'refs/heads/master' && matrix.ruby == '2.6'
43
51
  env:
44
52
  GH_USERNAME: ${{ secrets.PAT_USERNAME }}
45
53
  GH_ACCESS_TOKEN: ${{ secrets.PAT_TOKEN }}
@@ -6,15 +6,23 @@ on:
6
6
  push:
7
7
  branches: [ master ]
8
8
  pull_request:
9
+ paths-ignore:
10
+ - .github/workflows/macos.yml
11
+ - .github/workflows/ubuntu.yml
9
12
 
10
13
  jobs:
11
14
  test-windows:
12
15
  name: Test on Ruby ${{ matrix.ruby }} Windows
13
16
  runs-on: windows-latest
17
+ continue-on-error: ${{ matrix.experimental }}
14
18
  strategy:
15
19
  fail-fast: false
16
20
  matrix:
17
21
  ruby: [ '2.6', '2.5', '2.4' ]
22
+ experimental: [false]
23
+ include:
24
+ - ruby: '2.7'
25
+ experimental: true
18
26
  steps:
19
27
  - uses: actions/checkout@master
20
28
  - name: Use Ruby
@@ -225,7 +225,7 @@ module IsoDoc::Function
225
225
 
226
226
  def passthrough_parse(node, out)
227
227
  return if node["format"] and !(node["format"].split(/,/).include? @format.to_s)
228
- out << HTMLEntities.new.decode(node.content)
228
+ out.passthrough node.text
229
229
  end
230
230
  end
231
231
  end
@@ -1,6 +1,7 @@
1
1
  module IsoDoc::Function
2
2
  module Cleanup
3
3
  def textcleanup(docxml)
4
+ docxml = passthrough_cleanup(docxml)
4
5
  docxml.
5
6
  gsub(/\[TERMREF\]\s*/, l10n("[#{@source_lbl}: ")).
6
7
  gsub(/\s*\[MODIFICATION\]\s*\[\/TERMREF\]/, l10n(", #{@modified_lbl} [/TERMREF]")).
@@ -8,6 +9,13 @@ module IsoDoc::Function
8
9
  gsub(/\s*\[MODIFICATION\]/, l10n(", #{@modified_lbl} &mdash; "))
9
10
  end
10
11
 
12
+ def passthrough_cleanup(docxml)
13
+ docxml = docxml.split(%r{(<passthrough>|</passthrough>)}).each_slice(4).map do |a|
14
+ a.size > 2 and a[2] = HTMLEntities.new.decode(a[2])
15
+ [a[0], a[2]]
16
+ end.join
17
+ end
18
+
11
19
  def cleanup(docxml)
12
20
  comment_cleanup(docxml)
13
21
  footnote_cleanup(docxml)
@@ -227,5 +227,19 @@ module IsoDoc::Function
227
227
  p.b(**{ role: "strong" }) { |e| e << text }
228
228
  end
229
229
  end
230
+
231
+ def variant_parse(node, out)
232
+ if node["lang"] == @lang && node["script"] == @script
233
+ node.children.each { |n| parse(n, out) }
234
+ else
235
+ prev = node.xpath("./preceding-sibling::xmlns:variant")
236
+ foll = node.xpath("./following-sibling::xmlns:variant")
237
+ found = false
238
+ (prev + foll).each { |n| found = true if n["lang"] == @lang && n["script"] == @script }
239
+ return if found
240
+ return unless prev.empty?
241
+ node.children.each { |n| parse(n, out) }
242
+ end
243
+ end
230
244
  end
231
245
  end
@@ -9,26 +9,26 @@ module IsoDoc::Function
9
9
  end
10
10
 
11
11
  # TODO generate formatted ref if not present
12
- def nonstd_bibitem(list, b, ordinal, bibliography)
13
- list.p **attr_code(iso_bibitem_entry_attrs(b, bibliography)) do |r|
14
- id = bibitem_ref_code(b)
15
- identifier = render_identifier(id)
16
- if bibliography then ref_entry_code(r, ordinal, identifier, id)
12
+ def nonstd_bibitem(list, b, ordinal, biblio)
13
+ list.p **attr_code(iso_bibitem_entry_attrs(b, biblio)) do |ref|
14
+ ids = bibitem_ref_code(b)
15
+ identifiers = render_identifier(ids)
16
+ if biblio then ref_entry_code(ref, ordinal, identifiers, ids)
17
17
  else
18
- identifier = "[#{identifier}]" if id["type"] == "metanorma"
19
- r << "#{identifier}, "
18
+ ref << "#{identifiers[0] || identifiers[1]}, "
19
+ ref << "#{identifiers[1]}, " if identifiers[0] && identifiers[1]
20
20
  end
21
- reference_format(b, r)
21
+ reference_format(b, ref)
22
22
  end
23
23
  end
24
24
 
25
25
  def std_bibitem_entry(list, b, ordinal, biblio)
26
26
  list.p **attr_code(iso_bibitem_entry_attrs(b, biblio)) do |ref|
27
- prefix_bracketed_ref(ref, ordinal) if biblio
28
- id = bibitem_ref_code(b)
29
- identifier = render_identifier(id)
30
- identifier = "[#{identifier}]" if id["type"] == "metanorma" && !biblio
31
- ref << identifier
27
+ ids = bibitem_ref_code(b)
28
+ identifiers = render_identifier(ids)
29
+ prefix_bracketed_ref(ref, "[#{ordinal}]") if biblio
30
+ ref << "#{identifiers[0] || identifiers[1]}"
31
+ ref << ", #{identifiers[1]}" if identifiers[0] && identifiers[1]
32
32
  date_note_process(b, ref)
33
33
  ref << ", "
34
34
  reference_format(b, ref)
@@ -38,29 +38,43 @@ module IsoDoc::Function
38
38
  # if t is just a number, only use that ([1] Non-Standard)
39
39
  # else, use both ordinal, as prefix, and t
40
40
  def ref_entry_code(r, ordinal, t, id)
41
- if id["type"] == "metanorma"
42
- prefix_bracketed_ref(r, t)
43
- else
44
- prefix_bracketed_ref(r, ordinal)
45
- if !t.empty? && !%w(DOI ISSN ISBN).include?(id["type"])
46
- r << "#{t}, "
47
- end
41
+ prefix_bracketed_ref(r, t[0] || "[#{ordinal}]")
42
+ if t[1]
43
+ r << "#{t[1]}, "
48
44
  end
49
45
  end
50
46
 
47
+ def pref_ref_code(b)
48
+ b.at(ns("./docidentifier[not(@type = 'DOI' or @type = 'metanorma' "\
49
+ "or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"))
50
+ end
51
+
52
+ # returns [metanorma, non-metanorma, DOI/ISSN/ISBN] identifiers
51
53
  def bibitem_ref_code(b)
52
54
  id = b.at(ns("./docidentifier[@type = 'metanorma']"))
53
- id ||= b.at(ns("./docidentifier[not(@type = 'DOI' or @type = 'metanorma' "\
54
- "or @type = 'ISSN' or @type = 'ISBN')]"))
55
- id ||= b.at(ns("./docidentifier"))
56
- return id if id
55
+ id1 = pref_ref_code(b)
56
+ id2 = b.at(ns("./docidentifier[@type = 'DOI' or @type = 'ISSN' or @type = 'ISBN']"))
57
+ return [id, id1, id2] if id || id1 || id2
57
58
  id = Nokogiri::XML::Node.new("docidentifier", b.document)
58
59
  id << "(NO ID)"
59
- id
60
+ [nil, id, nil]
61
+ end
62
+
63
+ def bracket_if_num(x)
64
+ return nil if x.nil?
65
+ x = x.text.sub(/^\[/, "").sub(/\]$/, "")
66
+ return "[#{x}]" if /^\d+$/.match(x)
67
+ x
60
68
  end
61
69
 
62
70
  def render_identifier(id)
63
- docid_prefix(id["type"], id.text.sub(/^\[/, "").sub(/\]$/, ""))
71
+ [
72
+ bracket_if_num(id[0]),
73
+ id[1].nil? ? nil :
74
+ docid_prefix(id[1]["type"], id[1].text.sub(/^\[/, "").sub(/\]$/, "")),
75
+ id[2].nil? ? nil :
76
+ docid_prefix(id[2]["type"], id[2].text.sub(/^\[/, "").sub(/\]$/, "")),
77
+ ]
64
78
  end
65
79
 
66
80
  def docid_prefix(prefix, docid)
@@ -100,7 +114,7 @@ module IsoDoc::Function
100
114
  end
101
115
 
102
116
  def prefix_bracketed_ref(ref, text)
103
- ref << "[#{text}]"
117
+ ref << text.to_s
104
118
  insert_tab(ref, 1)
105
119
  end
106
120
 
@@ -187,12 +201,11 @@ module IsoDoc::Function
187
201
 
188
202
  def reference_names(ref)
189
203
  isopub = ref.at(ns(ISO_PUBLISHER_XPATH))
190
- docid = bibitem_ref_code(ref)
191
- prefix = docid["type"]
204
+ ids = bibitem_ref_code(ref)
205
+ identifiers = render_identifier(ids)
192
206
  date = ref.at(ns("./date[@type = 'published']"))
193
207
  allparts = ref.at(ns("./extent[@type='part'][referenceFrom='all']"))
194
- reference = format_ref(docid_l10n(docid.text), prefix, isopub, date,
195
- allparts)
208
+ reference = docid_l10n(identifiers[0] || identifiers[1])
196
209
  @anchors[ref["id"]] = { xref: reference }
197
210
  end
198
211
 
@@ -91,7 +91,6 @@ module IsoDoc::Function
91
91
  style += <<~STYLE
92
92
  border-top:#{row.zero? ? "#{SW} 1.5pt;" : 'none;'}
93
93
  border-bottom:#{SW} #{rowmax == totalrows ? '1.5' : '1.0'}pt;
94
- padding:0;
95
94
  STYLE
96
95
  header and scope = (td["colspan"] ? "colgroup" : "col")
97
96
  !header and td.name == "th" and scope =
@@ -211,6 +211,7 @@ module IsoDoc::Function
211
211
  when "legal-statement" then legal_parse(node, out)
212
212
  when "feedback-statement" then feedback_parse(node, out)
213
213
  when "passthrough" then passthrough_parse(node, out)
214
+ when "variant" then variant_parse(node, out)
214
215
  else
215
216
  error_parse(node, out)
216
217
  end
@@ -49,7 +49,12 @@ module IsoDoc::Function
49
49
  /^(\&[^ \t\r\n#;]+;)/.match(t) ?
50
50
  HTMLEntities.new.encode(HTMLEntities.new.decode(t), :hexadecimal) : t
51
51
  end.join("")
52
- Nokogiri::XML.parse(xml)
52
+ begin
53
+ Nokogiri::XML.parse(xml) { |config| config.strict }
54
+ rescue Nokogiri::XML::SyntaxError => e
55
+ File.open("#{@filename}.#{@format}.err", "w:UTF-8") { |f| f.write xml }
56
+ abort "Malformed Output XML for #{@format}: #{e} (see #{@filename}.#{@format}.err)"
57
+ end
53
58
  end
54
59
 
55
60
  def to_xhtml_fragment(xml)
@@ -97,5 +97,8 @@ module IsoDoc::HtmlFunction
97
97
  end
98
98
  sourcecode_name_parse(node, out, name)
99
99
  end
100
+
101
+ def table_long_strings_cleanup(docxml)
102
+ end
100
103
  end
101
104
  end
@@ -159,7 +159,8 @@ module IsoDoc::HtmlFunction
159
159
  def inject_script(doc)
160
160
  return doc unless @scripts
161
161
  scripts = File.read(@scripts, encoding: "UTF-8")
162
- doc.sub("</body>", scripts + "\n</body>")
162
+ a = doc.split(%r{</body>})
163
+ a[0] + scripts + "</body>" + a[1]
163
164
  end
164
165
 
165
166
  def update_footnote_filter(fn, x, i, seen)
@@ -1,3 +1,3 @@
1
1
  module IsoDoc
2
- VERSION = "1.0.26".freeze
2
+ VERSION = "1.0.27".freeze
3
3
  end
@@ -1463,26 +1463,35 @@ INPUT
1463
1463
  end
1464
1464
 
1465
1465
  it "processes passthrough with compatible format" do
1466
- expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
1466
+ FileUtils.rm_f "test.html"
1467
+ IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", false)
1467
1468
  <iso-standard xmlns="http://riboseinc.com/isoxml">
1468
1469
  <preface><foreword>
1469
- <passthrough format="html,rfc">&lt;A&gt;</passthrough>
1470
+ <passthrough format="html,rfc">&lt;A&gt;</passthrough><em>Hello</em><passthrough format="html,rfc">&lt;/A&gt;</passthrough>
1470
1471
  </foreword></preface>
1471
1472
  </iso-standard>
1472
1473
  INPUT
1473
- #{HTML_HDR}
1474
- <br/>
1475
- <div>
1476
- <h1 class='ForewordTitle'>Foreword</h1>
1477
- <a/>
1478
- </div>
1479
- <p class='zzSTDTitle1'/>
1480
- </div>
1481
- </body>
1482
- </html>
1474
+ expect(( File.read("test.html").gsub(%r{^.*<h1 class="ForewordTitle">Foreword</h1>}m, "").gsub(%r{</div>.*}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
1475
+ <A><i>Hello</i></A>
1483
1476
  OUTPUT
1484
1477
  end
1485
1478
 
1479
+ it "aborts if passthrough results in malformed XML" do
1480
+ FileUtils.rm_f "test.html"
1481
+ FileUtils.rm_f "test.html.err"
1482
+ begin
1483
+ expect { IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", false) }.to raise_error(SystemExit)
1484
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1485
+ <preface><foreword>
1486
+ <passthrough format="html,rfc">&lt;A&gt;</passthrough><em>Hello</em>
1487
+ </foreword></preface>
1488
+ </iso-standard>
1489
+ INPUT
1490
+ rescue SystemExit
1491
+ end
1492
+ expect(File.exist?("test.html.err")).to be true
1493
+ end
1494
+
1486
1495
  it "ignore passthrough with incompatible format" do
1487
1496
  expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
1488
1497
  <iso-standard xmlns="http://riboseinc.com/isoxml">
@@ -798,7 +798,7 @@ INPUT
798
798
  OUTPUT
799
799
  end
800
800
 
801
- it "breaks up very long strings in tables on request" do
801
+ it "does not break up very long strings in tables on request in HTML" do
802
802
  expect(xmlpp(IsoDoc::HtmlConvert.new({break_up_urls_in_tables: "true"}).cleanup(Nokogiri::XML(<<~"INPUT")).to_s)).to be_equivalent_to xmlpp(<<~"OUTPUT")
803
803
  <html xmlns:epub="http://www.idpf.org/2007/ops">
804
804
  <head>
@@ -863,19 +863,12 @@ INPUT
863
863
  <tbody>
864
864
  <tr>
865
865
  <td align='left' style='border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;'>
866
- http://www.example.com/
867
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA/
868
- BBBBBBBBBBBBBBBBBBBBBBBBBBBB
866
+ http://www.example.com/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/BBBBBBBBBBBBBBBBBBBBBBBBBBBB
869
867
  </td>
870
868
  <td align='left' style='border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;'>
871
- http://www.example.com/
872
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
873
- AAAAAAAABBBBBBBBBBBBBBBBBBBBBB BBBBBB
874
- </td>
869
+ http://www.example.com/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB</td>
875
870
  <td align='center' style='border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;'>
876
- www.example.com/
877
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
878
- ABBBBBBBBBBBBBBBBBBBBBBBBBBBB
871
+ www.example.com/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB
879
872
  </td>
880
873
  </tr>
881
874
  </tbody>
@@ -515,5 +515,40 @@ OUTPUT
515
515
  OUTPUT
516
516
  end
517
517
 
518
+ it "processes variant" do
519
+ expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
520
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
521
+ <bibdata>
522
+ <language>en</language>
523
+ <script>Latn</script>
524
+ </bibdata>
525
+ <preface>
526
+ <clause id="A"><title><variant lang="en" script="Latn">ABC</variant><variant lang="fr" script="Latn">DEF</variant></title></clause>
527
+ <clause id="B"><title><variant lang="de" script="Latn">GHI</variant><variant lang="es" script="Latn">JKL</variant></title></clause>
528
+ <clause id="C"><title><variant lang="fr" script="Latn">ABC</variant><variant lang="en" script="Latn">DEF</variant></title></clause>
529
+ </preface>
530
+ </iso-standard>
531
+ INPUT
532
+ #{HTML_HDR}
533
+ <br/>
534
+ <div class='Section3' id='A'>
535
+ <h1 class='IntroTitle'>ABC</h1>
536
+ </div>
537
+ <br/>
538
+ <div class='Section3' id='B'>
539
+ <h1 class='IntroTitle'>GHI</h1>
540
+ </div>
541
+ <br/>
542
+ <div class='Section3' id='C'>
543
+ <h1 class='IntroTitle'>DEF</h1>
544
+ </div>
545
+ <p class='zzSTDTitle1'/>
546
+ </div>
547
+ </body>
548
+ </html>
549
+ OUTPUT
550
+ end
551
+
552
+
518
553
 
519
554
  end
@@ -135,7 +135,7 @@ RSpec.describe IsoDoc do
135
135
  <a href="#ISO16634">ISO 16634:-- (all parts)</a>
136
136
  <a href="#ref1">ICC 167</a>
137
137
  <a href="#ref10">[10]</a>
138
- <a href="#ref12">[Citn]</a>
138
+ <a href="#ref12">Citn</a>
139
139
  <a href='#zip_ffs'>[5]</a>
140
140
  </p>
141
141
  </div>
@@ -143,7 +143,7 @@ RSpec.describe IsoDoc do
143
143
  <div>
144
144
  <h1>1.&#160; Normative references</h1>
145
145
  <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>
146
- <p id="ISO712" class="NormRef">[110], <i>Cereals and cereal products</i></p>
146
+ <p id="ISO712" class="NormRef">[110], ISO 712, <i>Cereals and cereal products</i></p>
147
147
  <p id="ISO16634" class="NormRef">ISO 16634:-- (all parts)<a rel="footnote" href="#fn:1" epub:type="footnote"><sup>1</sup></a>, <i>Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</i></p>
148
148
  <p id="ISO20483" class="NormRef">ISO 20483:2013-2014, <i>Cereals and pulses</i></p>
149
149
  <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>
@@ -166,7 +166,7 @@ RSpec.describe IsoDoc do
166
166
  <p id="ISO3696" class="Biblio">[3]&#160; ISO 3696, <i>Water for analytical laboratory use</i></p>
167
167
  <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>
168
168
  <p id="ref11" class="Biblio">[5]&#160; IETF RFC 10, <i>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</i></p>
169
- <p id="ref12" class="Biblio">[6]&#160; Citn, CitationWorks. 2019. <i>How to cite a reference</i>.</p>
169
+ <p id="ref12" class="Biblio">[6]&#160; Citn, IETF RFC 20, CitationWorks. 2019. <i>How to cite a reference</i>.</p>
170
170
  </div>
171
171
  <aside id="fn:1" class="footnote">
172
172
  <p>Under preparation. (Stage at the time of publication ISO/DIS 16634)</p>
@@ -78,41 +78,41 @@ RSpec.describe IsoDoc do
78
78
  </caption>
79
79
  <thead>
80
80
  <tr>
81
- <td rowspan="2" style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;" scope="col">Description</td>
82
- <td colspan="4" style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;" scope="colgroup">Rice sample</td>
81
+ <td rowspan="2" style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;" scope="col">Description</td>
82
+ <td colspan="4" style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;" scope="colgroup">Rice sample</td>
83
83
  </tr>
84
84
  <tr>
85
- <td style="text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;" scope="col">Arborio</td>
86
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;" scope="col">Drago<a href="#tableD-1a" class="TableFootnoteRef">a</a><aside class="footnote"><div id="fn:tableD-1a"><span><span id="tableD-1a" class="TableFootnoteRef">a</span>&#160; </span>
85
+ <td style="text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;" scope="col">Arborio</td>
86
+ <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;" scope="col">Drago<a href="#tableD-1a" class="TableFootnoteRef">a</a><aside class="footnote"><div id="fn:tableD-1a"><span><span id="tableD-1a" class="TableFootnoteRef">a</span>&#160; </span>
87
87
  <p id="_0fe65e9a-5531-408e-8295-eeff35f41a55">Parboiled rice.</p>
88
88
  </div></aside></td>
89
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;" scope="col">Balilla<a href="#tableD-1a" class="TableFootnoteRef">a</a></td>
90
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;" scope="col">Thaibonnet</td>
89
+ <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;" scope="col">Balilla<a href="#tableD-1a" class="TableFootnoteRef">a</a></td>
90
+ <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;" scope="col">Thaibonnet</td>
91
91
  </tr>
92
92
  </thead>
93
93
  <tbody>
94
94
  <tr>
95
- <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>
96
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">13</td>
97
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">11</td>
98
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">13</td>
99
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">13</td>
95
+ <th style="font-weight:bold;text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;" scope="row">Number of laboratories retained after eliminating outliers</th>
96
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;">13</td>
97
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;">11</td>
98
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;">13</td>
99
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;">13</td>
100
100
  </tr>
101
101
  <tr>
102
- <td style="text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">Mean value, g/100 g</td>
103
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">81,2</td>
104
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">82,0</td>
105
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">81,8</td>
106
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">77,7</td>
102
+ <td style="text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;">Mean value, g/100 g</td>
103
+ <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;">81,2</td>
104
+ <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;">82,0</td>
105
+ <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;">81,8</td>
106
+ <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;">77,7</td>
107
107
  </tr>
108
108
  </tbody>
109
109
  <tfoot>
110
110
  <tr>
111
- <td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Reproducibility limit, <span class="stem">(#(R)#)</span> (= 2,83 <span class="stem">(#(s_R)#)</span>)</td>
112
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">2,89</td>
113
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">0,57</td>
114
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">2,26</td>
115
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">6,06</td>
111
+ <td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Reproducibility limit, <span class="stem">(#(R)#)</span> (= 2,83 <span class="stem">(#(s_R)#)</span>)</td>
112
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">2,89</td>
113
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">0,57</td>
114
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">2,26</td>
115
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">6,06</td>
116
116
  </tr>
117
117
  </tfoot>
118
118
  <dl>
@@ -128,7 +128,7 @@ RSpec.describe IsoDoc do
128
128
  <table id="tableD-2" class="MsoISOTable" style="border-width:1px;border-spacing:0;">
129
129
  <tbody>
130
130
  <tr>
131
- <td style="border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">A</td>
131
+ <td style="border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">A</td>
132
132
  </tr>
133
133
  </tbody>
134
134
  </table>
@@ -1491,14 +1491,14 @@ OUTPUT
1491
1491
  <table id="N1" class="MsoISOTable" style="border-width:1px;border-spacing:0;">
1492
1492
  <tbody>
1493
1493
  <tr>
1494
- <td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Number of laboratories retained after eliminating outliers</td>
1495
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">13</td>
1496
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">11</td>
1494
+ <td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Number of laboratories retained after eliminating outliers</td>
1495
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">13</td>
1496
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">11</td>
1497
1497
  </tr>
1498
1498
  </tbody>
1499
1499
  </table>
1500
1500
  <div id="xyz"><h2>Preparatory</h2>
1501
- <p class="TableTitle" style="text-align:center;">Repeatability and reproducibility of husked rice yield</p><table id="N2" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">11</td></tr></tbody></table>
1501
+ <p class="TableTitle" style="text-align:center;">Repeatability and reproducibility of husked rice yield</p><table id="N2" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">11</td></tr></tbody></table>
1502
1502
  </div>
1503
1503
  </div>
1504
1504
  <p class="zzSTDTitle1"/>
@@ -1510,9 +1510,9 @@ OUTPUT
1510
1510
  <table id="N" class="MsoISOTable" style="border-width:1px;border-spacing:0;">
1511
1511
  <tbody>
1512
1512
  <tr>
1513
- <td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Number of laboratories retained after eliminating outliers</td>
1514
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">13</td>
1515
- <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">11</td>
1513
+ <td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Number of laboratories retained after eliminating outliers</td>
1514
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">13</td>
1515
+ <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">11</td>
1516
1516
  </tr>
1517
1517
  </tbody>
1518
1518
  </table>
@@ -1525,8 +1525,8 @@ OUTPUT
1525
1525
  <div id="widgets">
1526
1526
  <h1>3.&#160; Widgets</h1>
1527
1527
  <div id="widgets1"><h2>3.1.&#160;</h2>
1528
- <p class="TableTitle" style="text-align:center;">Table 3&#160;&#8212; Repeatability and reproducibility of husked rice yield</p><table id="note1" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">11</td></tr></tbody></table>
1529
- <p class="TableTitle" style="text-align:center;">Table 4&#160;&#8212; Repeatability and reproducibility of husked rice yield</p><table id="note2" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">11</td></tr></tbody></table>
1528
+ <p class="TableTitle" style="text-align:center;">Table 3&#160;&#8212; Repeatability and reproducibility of husked rice yield</p><table id="note1" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">11</td></tr></tbody></table>
1529
+ <p class="TableTitle" style="text-align:center;">Table 4&#160;&#8212; Repeatability and reproducibility of husked rice yield</p><table id="note2" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">11</td></tr></tbody></table>
1530
1530
  <p> <a href="#note1">Table 3</a> <a href="#note2">Table 4</a> </p>
1531
1531
  </div>
1532
1532
  </div>
@@ -1541,11 +1541,11 @@ OUTPUT
1541
1541
  <b/>
1542
1542
  </h1>
1543
1543
  <div id="annex1a"><h2>A.1.&#160;</h2>
1544
- <p class="TableTitle" style="text-align:center;">Table A.1&#160;&#8212; Repeatability and reproducibility of husked rice yield</p><table id="AN" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">11</td></tr></tbody></table>
1544
+ <p class="TableTitle" style="text-align:center;">Table A.1&#160;&#8212; Repeatability and reproducibility of husked rice yield</p><table id="AN" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">11</td></tr></tbody></table>
1545
1545
  </div>
1546
1546
  <div id="annex1b"><h2>A.2.&#160;</h2>
1547
- <p class="TableTitle" style="text-align:center;">Repeatability and reproducibility of husked rice yield</p><table id="Anote1" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">11</td></tr></tbody></table>
1548
- <p class="TableTitle" style="text-align:center;">Table A.2&#160;&#8212; Repeatability and reproducibility of husked rice yield</p><table id="Anote2" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">11</td></tr></tbody></table>
1547
+ <p class="TableTitle" style="text-align:center;">Repeatability and reproducibility of husked rice yield</p><table id="Anote1" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">11</td></tr></tbody></table>
1548
+ <p class="TableTitle" style="text-align:center;">Table A.2&#160;&#8212; Repeatability and reproducibility of husked rice yield</p><table id="Anote2" class="MsoISOTable" style="border-width:1px;border-spacing:0;"><tbody><tr><td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">Number of laboratories retained after eliminating outliers</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">13</td><td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;">11</td></tr></tbody></table>
1549
1549
  </div>
1550
1550
  </div>
1551
1551
  </div>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isodoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.26
4
+ version: 1.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-13 00:00:00.000000000 Z
11
+ date: 2020-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciimath