isodoc 1.0.0 → 1.0.1

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: d11b5b991f38839676489ade5b30d9369d21bbeb27950a4e5fcf573f4b521179
4
- data.tar.gz: 05de6af9b9f493f3d71dd81684e267a81c8db31c07d55189503af75296d73f10
3
+ metadata.gz: 6f012ee1dfcb45c453231b1dbafd3eb84f4e3f1703998d7b804a42101fefbc03
4
+ data.tar.gz: 48fb80967bdbd2265408c90c3fcabcef3e0539dff92d2d68a5422b3787ca5617
5
5
  SHA512:
6
- metadata.gz: cdf155b3bb0b87a6ee716414c50613b76113e619a107a7eff90dc3af287c94150f322cbfd30a2a96923d580853549a0b6065ea72316b794e568237219e8da879
7
- data.tar.gz: e863371fe9dde7d63d72d83c6835de6b64e93d0c2a1a6c739adba2b7c74539f10ccea6aa6c93a62ed79d111444f0ad3647dfaaf15ad7f7afac2973cba5786def
6
+ metadata.gz: ff221e3f46b2e62a9c6bcb9df4676dfb4757dd73cc7d740d6dc366ec68a26cfa657af226a99592554046d78907ba9260fdd55a29d39e832332248887ad37d45c
7
+ data.tar.gz: 61e23537cffb488ecd57346c1c47e6db6af63cdb7e9e96d3d7066e959cfea08a8709235ca4d0fce92431e823c5b4e3b94a8f7e7566388b687155d3518a936959
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- isodoc (1.0.0)
4
+ isodoc (1.0.1)
5
5
  asciimath
6
6
  html2doc (~> 0.8.11)
7
7
  htmlentities (~> 4.3.4)
8
8
  liquid
9
9
  metanorma (~> 0.3.0)
10
- nokogiri (>= 1)
10
+ nokogiri (>= 1.10.4)
11
11
  rake (~> 12.0)
12
12
  roman-numerals
13
13
  sassc (~> 2)
@@ -74,7 +74,7 @@ GEM
74
74
  nenv (~> 0.1)
75
75
  shellany (~> 0.0)
76
76
  parallel (1.17.0)
77
- parser (2.6.3.0)
77
+ parser (2.6.4.0)
78
78
  ast (~> 2.4.0)
79
79
  powerpack (0.1.2)
80
80
  pry (0.12.2)
@@ -108,7 +108,7 @@ GEM
108
108
  unicode-display_width (~> 1.0, >= 1.0.1)
109
109
  ruby-progressbar (1.10.1)
110
110
  ruby_dep (1.5.0)
111
- sassc (2.1.0)
111
+ sassc (2.2.0)
112
112
  ffi (~> 1.9)
113
113
  shellany (0.0.1)
114
114
  simplecov (0.17.0)
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.add_dependency "asciimath"
32
32
  spec.add_dependency "htmlentities", "~> 4.3.4"
33
- spec.add_dependency "nokogiri", ">= 1"
33
+ spec.add_dependency "nokogiri", ">= 1.10.4"
34
34
  spec.add_dependency "thread_safe"
35
35
  spec.add_dependency "uuidtools"
36
36
  spec.add_dependency "html2doc", "~> 0.8.11"
@@ -135,7 +135,7 @@ module IsoDoc
135
135
  def convert1(docxml, filename, dir)
136
136
  anchor_names docxml
137
137
  noko do |xml|
138
- xml.html do |html|
138
+ xml.html **{ lang: "#{@lang}" } do |html|
139
139
  html.parent.add_namespace("epub", "http://www.idpf.org/2007/ops")
140
140
  info docxml, nil
141
141
  populate_css()
@@ -100,10 +100,14 @@ module IsoDoc::Function
100
100
  # Not clear if period needs to be localised for zh
101
101
  def l10n(x, lang = @lang, script = @script)
102
102
  if lang == "zh" && script == "Hans"
103
- x.gsub(/ /, "").gsub(/:/, ":").gsub(/,/, "、").
104
- gsub(/\(/, "(").gsub(/\)/, ")").
105
- gsub(/\[/, "【").gsub(/\]/, "】").
106
- gsub(/<b>/, "").gsub("</b>", "")
103
+ xml = Nokogiri::HTML::DocumentFragment.parse(x)
104
+ xml.traverse do |n|
105
+ next unless n.text?
106
+ n.replace(n.text.gsub(/ /, "").gsub(/:/, "").gsub(/,/, "").
107
+ gsub(/\(/, "(").gsub(/\)/, ")").
108
+ gsub(/\[/, "【").gsub(/\]/, "】"))
109
+ end
110
+ xml.to_xml.gsub(/<b>/, "").gsub("</b>", "").gsub(/<\?[^>]+>/, "")
107
111
  else
108
112
  x
109
113
  end
@@ -127,14 +127,6 @@ module IsoDoc::Function
127
127
  end
128
128
  end
129
129
 
130
- def norm_ref_preface(f, div)
131
- refs = f.elements.select do |e|
132
- ["reference", "bibitem"].include? e.name
133
- end
134
- pref = refs.empty? ? @norm_empty_pref : @norm_with_refs_pref
135
- div.p pref
136
- end
137
-
138
130
  def norm_ref(isoxml, out, num)
139
131
  q = "//bibliography/references[title = 'Normative References' or "\
140
132
  "title = 'Normative references']"
@@ -142,7 +134,9 @@ module IsoDoc::Function
142
134
  out.div do |div|
143
135
  num = num + 1
144
136
  clause_name(num, @normref_lbl, div, nil)
145
- norm_ref_preface(f, div)
137
+ f.elements.reject do |e|
138
+ ["reference", "title", "bibitem"].include? e.name
139
+ end.each { |e| parse(e, div) }
146
140
  biblio_list(f, div, false)
147
141
  end
148
142
  num
@@ -106,36 +106,6 @@ module IsoDoc::Function
106
106
  num
107
107
  end
108
108
 
109
- def external_terms_boilerplate(sources)
110
- @external_terms_boilerplate.gsub(/%/, sources || "???")
111
- end
112
-
113
- def internal_external_terms_boilerplate(sources)
114
- @internal_external_terms_boilerplate.gsub(/%/, sources || "??")
115
- end
116
-
117
- def term_defs_boilerplate(div, source, term, preface)
118
- source.each { |s| @anchors[s["bibitemid"]] or
119
- warn "term source #{s['bibitemid']} not referenced" }
120
- if source.empty? && term.nil?
121
- div << @no_terms_boilerplate
122
- else
123
- div << term_defs_boilerplate_cont(source, term)
124
- end
125
- div << @term_def_boilerplate
126
- end
127
-
128
- def term_defs_boilerplate_cont(src, term)
129
- sources = sentence_join(src.map do |s|
130
- "<a href=##{s["bibitemid"]}>#{anchor(s["bibitemid"], :xref)}</a>"
131
- end)
132
- if src.empty? then @internal_terms_boilerplate
133
- elsif term.nil? then external_terms_boilerplate(sources)
134
- else
135
- internal_external_terms_boilerplate(sources)
136
- end
137
- end
138
-
139
109
  def terms_defs_title(f)
140
110
  symbols = f.at(ns(".//definitions"))
141
111
  return @termsdefsymbols_lbl if symbols
@@ -150,8 +120,6 @@ module IsoDoc::Function
150
120
  out.div **attr_code(id: f["id"]) do |div|
151
121
  num = num + 1
152
122
  clause_name(num, terms_defs_title(f), div, nil)
153
- term_defs_boilerplate(div, isoxml.xpath(ns(".//termdocsource")),
154
- f.at(ns(".//term")), f.at(ns("./p")))
155
123
  f.elements.each do |e|
156
124
  parse(e, div) unless %w{title source}.include? e.name
157
125
  end
@@ -71,7 +71,7 @@ module IsoDoc::Function
71
71
  # border-left:#{col.zero? ? "#{SW} 1.5pt;" : "none;"}
72
72
  # border-right:#{SW} #{col == totalcols && !header ? "1.5" : "1.0"}pt;
73
73
 
74
- def make_tr_attr(td, row, totalrows)
74
+ def make_tr_attr(td, row, totalrows, header)
75
75
  style = td.name == "th" ? "font-weight:bold;" : ""
76
76
  td["align"] and style += "text-align:#{td['align']};"
77
77
  rowmax = td["rowspan"] ? row + td["rowspan"].to_i - 1 : row
@@ -80,14 +80,17 @@ module IsoDoc::Function
80
80
  border-bottom:#{SW} #{rowmax == totalrows ? '1.5' : '1.0'}pt;
81
81
  padding:0;
82
82
  STYLE
83
+ header and scope = (td["colspan"] ? "colgroup" : "col")
84
+ !header and td.name == "th" and scope =
85
+ (td["rowspan"] ? "rowgroup" : "row")
83
86
  { rowspan: td["rowspan"], colspan: td["colspan"],
84
- style: style.gsub(/\n/, "") }
87
+ style: style.gsub(/\n/, ""), scope: scope }
85
88
  end
86
89
 
87
- def tr_parse(node, out, ord, totalrows, _header)
90
+ def tr_parse(node, out, ord, totalrows, header)
88
91
  out.tr do |r|
89
92
  node.elements.each do |td|
90
- attrs = make_tr_attr(td, ord, totalrows - 1)
93
+ attrs = make_tr_attr(td, ord, totalrows - 1, header)
91
94
  r.send td.name, **attr_code(attrs) do |entry|
92
95
  td.children.each { |n| parse(n, entry) }
93
96
  end
@@ -88,7 +88,8 @@ module IsoDoc::Function
88
88
  if array.length == 1
89
89
  array[0]
90
90
  else
91
- l10n("#{array[0..-2].join(', ')} #{@and_lbl} #{array.last}")
91
+ IsoDoc::Function::I18n::l10n("#{array[0..-2].join(', ')} #{@and_lbl} #{array.last}",
92
+ @lang, @script)
92
93
  end
93
94
  end
94
95
 
@@ -230,11 +230,12 @@ module IsoDoc::HtmlFunction
230
230
  def footnote_backlinks(docxml)
231
231
  seen = {}
232
232
  docxml.xpath('//a[@epub:type = "footnote"]').each_with_index do |x, i|
233
- next if seen[x["href"]]
234
- seen[x["href"]] = true
233
+ seen[x["href"]] and next or seen[x["href"]] = true
235
234
  fn = docxml.at(%<//*[@id = '#{x['href'].sub(/^#/, '')}']>) || next
236
- x["id"] || x["id"] = "fnref:#{i + 1}"
237
- fn.elements.first.children.first.previous = x.dup
235
+ xdup = x.dup
236
+ xdup.remove["id"]
237
+ fn.elements.first.children.first.previous = xdup
238
+ x["id"] ||= "fnref:#{i + 1}"
238
239
  fn.add_child "<a href='##{x['id']}'>&#x21A9;</a>"
239
240
  end
240
241
  docxml
@@ -1,3 +1,3 @@
1
1
  module IsoDoc
2
- VERSION = "1.0.0".freeze
2
+ VERSION = "1.0.1".freeze
3
3
  end
@@ -77,7 +77,7 @@ module IsoDoc::WordFunction
77
77
  tfoot.xpath(".//td").last
78
78
  end
79
79
 
80
- def make_tr_attr(td, row, totalrows)
80
+ def make_tr_attr(td, row, totalrows, _header)
81
81
  style = td.name == "th" ? "font-weight:bold;" : ""
82
82
  rowmax = td["rowspan"] ? row + td["rowspan"].to_i - 1 : row
83
83
  style += <<~STYLE
@@ -36,7 +36,7 @@ RSpec.describe IsoDoc do
36
36
  </foreword></preface>
37
37
  </iso-standard>
38
38
  INPUT
39
- <html xmlns:epub="http://www.idpf.org/2007/ops">
39
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
40
40
  <head/>
41
41
  <body lang="EN-US" link="blue" vlink="#954F72">
42
42
  <div class="WordSection1">
@@ -194,7 +194,7 @@ INPUT
194
194
  </foreword></preface>
195
195
  </iso-standard>
196
196
  INPUT
197
- <html xmlns:epub="http://www.idpf.org/2007/ops">
197
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
198
198
  <head/>
199
199
  <body lang="EN-US" link="blue" vlink="#954F72">
200
200
  <div class="WordSection1">
@@ -306,7 +306,7 @@ B</pre>
306
306
  </foreword></preface>
307
307
  </iso-standard>
308
308
  INPUT
309
- <html xmlns:epub="http://www.idpf.org/2007/ops">
309
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
310
310
  <head/>
311
311
  <body lang="EN-US" link="blue" vlink="#954F72">
312
312
  <div class="WordSection1">
@@ -446,7 +446,7 @@ B</pre>
446
446
  </foreword></preface>
447
447
  </iso-standard>
448
448
  INPUT
449
- <html xmlns:epub="http://www.idpf.org/2007/ops">
449
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
450
450
  <head/>
451
451
  <body lang="EN-US" link="blue" vlink="#954F72">
452
452
  <div class="WordSection1">
@@ -665,7 +665,7 @@ World</p>
665
665
  </foreword></preface>
666
666
  </iso-standard>
667
667
  INPUT
668
- <html xmlns:epub="http://www.idpf.org/2007/ops">
668
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
669
669
  <head/>
670
670
  <body lang="EN-US" link="blue" vlink="#954F72">
671
671
  <div class="WordSection1">
@@ -740,8 +740,7 @@ World</p>
740
740
  INPUT
741
741
  #{HTML_HDR}
742
742
  <p class="zzSTDTitle1"/>
743
- <div><h1>1.&#160; Terms and definitions</h1><p>For the purposes of this document,
744
- the following terms and definitions apply.</p>
743
+ <div><h1>1.&#160; Terms and definitions</h1>
745
744
  <p class="TermNum" id="_extraneous_matter">1.1.</p><p class="Terms" style="text-align:left;">extraneous matter</p><p class="AltTerms" style="text-align:left;">EM</p>
746
745
 
747
746
  <p id="_318b3939-be09-46c4-a284-93f9826b981e">&lt;rice&gt; organic and inorganic components other than whole or broken kernels</p>
@@ -59,7 +59,7 @@ RSpec.describe IsoDoc do
59
59
  </preface>
60
60
  </iso-standard>
61
61
  INPUT
62
- <html xmlns:epub="http://www.idpf.org/2007/ops">
62
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
63
63
  <head/>
64
64
  <body lang="EN-US" link="blue" vlink="#954F72">
65
65
  <div class="WordSection1">
@@ -86,10 +86,8 @@ RSpec.describe IsoDoc do
86
86
  </div>
87
87
  <div>
88
88
  <h1>2.&#160; Normative references</h1>
89
- <p>There are no normative references in this document.</p>
90
89
  </div>
91
- <div id="H"><h1>3.&#160; Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
92
- the following terms and definitions apply.</p>
90
+ <div id="H"><h1>3.&#160; Terms, definitions, symbols and abbreviated terms</h1>
93
91
  <div id="I">
94
92
  <h2>3.1. Normal Terms</h2>
95
93
  <p class="TermNum" id="J">3.1.1.</p>
@@ -204,7 +202,7 @@ RSpec.describe IsoDoc do
204
202
  </bibliography>
205
203
  </iso-standard>
206
204
  INPUT
207
- #{HTML_HDR.sub(/<body lang="en">/, '<body lang="tlh">')}
205
+ #{HTML_HDR.gsub(/ lang="en">/, ' lang="tlh">')}
208
206
  <br/>
209
207
  <div>
210
208
  <h1 class="ForewordTitle">Foreword</h1>
@@ -224,10 +222,8 @@ RSpec.describe IsoDoc do
224
222
  </div>
225
223
  <div>
226
224
  <h1>2.&#160; Normative references</h1>
227
- <p>There are no normative references in this document.</p>
228
225
  </div>
229
- <div id="H"><h1>3.&#160; Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
230
- the following terms and definitions apply.</p>
226
+ <div id="H"><h1>3.&#160; Terms, definitions, symbols and abbreviated terms</h1>
231
227
  <div id="I">
232
228
  <h2>3.1. Normal Terms</h2>
233
229
  <p class="TermNum" id="J">3.1.1.</p>
@@ -342,7 +338,7 @@ RSpec.describe IsoDoc do
342
338
  </bibliography>
343
339
  </iso-standard>
344
340
  INPUT
345
- #{HTML_HDR.sub(/<body lang="en">/, '<body lang="fr">')}
341
+ #{HTML_HDR.gsub(/ lang="en">/, ' lang="fr">')}
346
342
  <br/>
347
343
  <div>
348
344
  <h1 class="ForewordTitle">Avant-propos</h1>
@@ -362,9 +358,8 @@ RSpec.describe IsoDoc do
362
358
  </div>
363
359
  <div>
364
360
  <h1>2.&#160; R&#233;f&#233;rences normatives</h1>
365
- <p>Le pr&#233;sent document ne contient aucune r&#233;f&#233;rence normative.</p>
366
361
  </div>
367
- <div id="H"><h1>3.&#160; Terms, d&#233;finitions, symboles et termes abr&#233;g&#233;s</h1><p>Pour les besoins du pr&#233;sent document, les termes et d&#233;finitions suivants s'appliquent.</p>
362
+ <div id="H"><h1>3.&#160; Terms, d&#233;finitions, symboles et termes abr&#233;g&#233;s</h1>
368
363
  <div id="I">
369
364
  <h2>3.1. Normal Terms</h2>
370
365
  <p class="TermNum" id="J">3.1.1.</p>
@@ -490,7 +485,7 @@ RSpec.describe IsoDoc do
490
485
  </bibliography>
491
486
  </iso-standard>
492
487
  INPUT
493
- #{HTML_HDR.sub(/<body lang="en">/, '<body lang="zh">')}
488
+ #{HTML_HDR.gsub(/ lang="en">/, ' lang="zh">')}
494
489
  <br/>
495
490
  <div>
496
491
  <h1 class="ForewordTitle">&#21069;&#35328;</h1>
@@ -512,10 +507,9 @@ RSpec.describe IsoDoc do
512
507
  </div>
513
508
  <div>
514
509
  <h1>2.&#160; &#35268;&#33539;&#24615;&#24341;&#29992;&#25991;&#20214;</h1>
515
- <p>&#19979;&#21015;&#25991;&#20214;&#23545;&#20110;&#26412;&#25991;&#20214;&#30340;&#24212;&#29992;&#26159;&#24517;&#19981;&#21487;&#23569;&#30340;&#12290; &#20961;&#26159;&#27880;&#26085;&#26399;&#30340;&#24341;&#29992;&#25991;&#20214;&#65292;&#20165;&#27880;&#26085;&#26399;&#30340;&#29256;&#26412;&#36866;&#29992;&#20110;&#26412;&#25991;&#20214;&#12290; &#20961;&#26159;&#19981;&#27880;&#26085;&#26399;&#30340;&#24341;&#29992;&#25991;&#20214;&#65292;&#20854;&#26368;&#26032;&#29256;&#26412;&#65288;&#21253;&#25324;&#25152;&#26377;&#30340;&#20462;&#25913;&#21333;&#65289;&#36866;&#29992;&#20110;&#26412;&#25991;&#20214;&#12290;</p>
516
510
  <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
517
511
  </div>
518
- <div id="H"><h1>3.&#160; &#26415;&#35821;&#12289;&#23450;&#20041;&#12289;&#31526;&#21495;&#12289;&#20195;&#21495;&#21644;&#32553;&#30053;&#35821;</h1><p>&#19979;&#21015;&#26415;&#35821;&#21644;&#23450;&#20041;&#36866;&#29992;&#20110;&#26412;&#25991;&#20214;&#12290;</p>
512
+ <div id="H"><h1>3.&#160; &#26415;&#35821;&#12289;&#23450;&#20041;&#12289;&#31526;&#21495;&#12289;&#20195;&#21495;&#21644;&#32553;&#30053;&#35821;</h1>
519
513
  <div id="I">
520
514
  <h2>3.1. Normal Terms</h2>
521
515
  <p class="TermNum" id="J">3.1.1.</p>
@@ -213,7 +213,6 @@ RSpec.describe IsoDoc do
213
213
  <p class="zzSTDTitle1"/>
214
214
  <div>
215
215
  <h1>1.&#160; Normative references</h1>
216
- <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>
217
216
  <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
218
217
  </div>
219
218
  </div>
@@ -276,7 +275,6 @@ RSpec.describe IsoDoc do
276
275
  <p class="zzSTDTitle1"/>
277
276
  <div>
278
277
  <h1>1.&#160; Normative references</h1>
279
- <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>
280
278
  <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
281
279
  </div>
282
280
  </div>
@@ -193,7 +193,7 @@ RSpec.describe IsoDoc do
193
193
  </foreword></preface>
194
194
  </iso-standard>
195
195
  INPUT
196
- <html xmlns:epub="http://www.idpf.org/2007/ops">
196
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
197
197
  <head/>
198
198
  <body lang="EN-US" link="blue" vlink="#954F72">
199
199
  <div class="WordSection1">
@@ -260,8 +260,7 @@ RSpec.describe IsoDoc do
260
260
  expect(word).to be_equivalent_to <<~"OUTPUT"
261
261
  <div class="WordSection3">
262
262
  <p class="zzSTDTitle1"></p>
263
- <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1>1.<span style="mso-tab-count:1">&#xA0; </span>Terms and definitions</h1><p class="MsoNormal">For the purposes of this document,
264
- the following terms and definitions apply.</p>
263
+ <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1>1.<span style="mso-tab-count:1">&#xA0; </span>Terms and definitions</h1>
265
264
  <p class="TermNum"><a name="paddy1" id="paddy1"></a>1.1.</p><p class="Terms" style="text-align:left;">paddy</p>
266
265
  <p class="MsoNormal"><a name="_eb29b35e-123e-4d1c-b50b-2714d41e747f" id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"></a>rice retaining its husk after threshing</p>
267
266
  <p class="MsoNormal">[SOURCE: <a href="#ISO7301">ISO 7301:2011, Clause 3.1</a>, modified &mdash; The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here]</p></div>
@@ -533,12 +532,12 @@ TOCLEVEL
533
532
  </div>
534
533
  </div>
535
534
  <aside id="fn:3" class="footnote">
536
- <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:3" epub:type="footnote" id="fnref:1">
535
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:3" epub:type="footnote">
537
536
  <sup>1</sup>
538
537
  </a>This is a footnote.</p>
539
538
  <a href="#fnref:1">&#x21A9;</a></aside>
540
539
  <aside id="fn:2" class="footnote">
541
- <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:2" epub:type="footnote" id="fnref:2"><sup>2</sup></a>Formerly denoted as 15 % (m/m).</p>
540
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:2" epub:type="footnote"><sup>2</sup></a>Formerly denoted as 15 % (m/m).</p>
542
541
  <a href="#fnref:2">&#x21A9;</a></aside>
543
542
 
544
543
  </main>
@@ -16,6 +16,7 @@ RSpec.describe IsoDoc do
16
16
  </p>
17
17
  </foreword></preface>
18
18
  <bibliography><references id="_normative_references" obligation="informative"><title>Normative References</title>
19
+ <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>
19
20
  <bibitem id="ISO712" type="standard">
20
21
  <title format="text/plain">Cereals or cereal products</title>
21
22
  <title type="main" format="text/plain">Cereals and cereal products</title>
@@ -122,24 +123,4 @@ RSpec.describe IsoDoc do
122
123
  OUTPUT
123
124
  end
124
125
 
125
- it "processes empty IsoXML Normative references" do
126
- expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
127
- <iso-standard xmlns="http://riboseinc.com/isoxml">
128
- <bibliography><references id="_normative_references" obligation="informative"><title>Normative References</title>
129
- </references>
130
- </bibliography>
131
- </iso-standard>
132
- INPUT
133
- #{HTML_HDR}
134
- <p class="zzSTDTitle1"/>
135
- <div>
136
- <h1>1.&#160; Normative references</h1>
137
- <p>There are no normative references in this document.</p>
138
- </div>
139
- </div>
140
- </body>
141
- </html>
142
- OUTPUT
143
- end
144
-
145
126
  end
@@ -8,7 +8,7 @@ RSpec.describe IsoDoc do
8
8
  <sections/>
9
9
  </iso-standard>
10
10
  INPUT
11
- <html xmlns:epub="http://www.idpf.org/2007/ops">
11
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
12
12
  <head/>
13
13
  <body lang="en">
14
14
  <div class="title-section">
@@ -121,10 +121,8 @@ RSpec.describe IsoDoc do
121
121
  </div>
122
122
  <div>
123
123
  <h1>2.&#160; Normative references</h1>
124
- <p>There are no normative references in this document.</p>
125
124
  </div>
126
- <div id="H"><h1>3.&#160; Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
127
- the following terms and definitions apply.</p>
125
+ <div id="H"><h1>3.&#160; Terms, definitions, symbols and abbreviated terms</h1>
128
126
  <div id="I">
129
127
  <h2>3.1. Normal Terms</h2>
130
128
  <p class="TermNum" id="J">3.1.1.</p>
@@ -246,7 +244,7 @@ OUTPUT
246
244
  </bibliography>
247
245
  </iso-standard>
248
246
  INPUT
249
- <html xmlns:epub="http://www.idpf.org/2007/ops">
247
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
250
248
  <head/>
251
249
  <body lang="EN-US" link="blue" vlink="#954F72">
252
250
  <div class="WordSection1">
@@ -281,10 +279,8 @@ OUTPUT
281
279
  </div>
282
280
  <div>
283
281
  <h1>2.<span style="mso-tab-count:1">&#160; </span>Normative references</h1>
284
- <p>There are no normative references in this document.</p>
285
282
  </div>
286
- <div id="H"><h1>3.<span style="mso-tab-count:1">&#160; </span>Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
287
- the following terms and definitions apply.</p>
283
+ <div id="H"><h1>3.<span style="mso-tab-count:1">&#160; </span>Terms, definitions, symbols and abbreviated terms</h1>
288
284
  <div id="I">
289
285
  <h2>3.1. Normal Terms</h2>
290
286
  <p class="TermNum" id="J">3.1.1.</p>
@@ -424,10 +420,8 @@ OUTPUT
424
420
  </div>
425
421
  <div>
426
422
  <h1>Normative references</h1>
427
- <p>There are no normative references in this document.</p>
428
423
  </div>
429
- <div id="H"><h1>Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
430
- the following terms and definitions apply.</p>
424
+ <div id="H"><h1>Terms, definitions, symbols and abbreviated terms</h1>
431
425
  <div id="I"><h2>Normal Terms</h2>
432
426
 
433
427
  <p class="TermNum" id="J">3.1.1.</p>
@@ -493,8 +487,7 @@ OUTPUT
493
487
  INPUT
494
488
  #{HTML_HDR}
495
489
  <p class="zzSTDTitle1"/>
496
- <div id="H"><h1>1.&#160; Terms and definitions</h1><p>For the purposes of this document,
497
- the following terms and definitions apply.</p>
490
+ <div id="H"><h1>1.&#160; Terms and definitions</h1>
498
491
  <p class="TermNum" id="J">1.1.</p>
499
492
  <p class="Terms" style="text-align:left;">Term2</p>
500
493
  </div>
@@ -504,125 +497,6 @@ OUTPUT
504
497
  OUTPUT
505
498
  end
506
499
 
507
- it "warn about external source for terms & definitions that does not point anywhere" do
508
- expect{ IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true) }.to output(/not referenced/).to_stderr
509
- <iso-standard xmlns="http://riboseinc.com/isoxml">
510
- <termdocsource type="inline" bibitemid="ISO712"/>
511
- <sections>
512
- <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
513
- <term id="J">
514
- <preferred>Term2</preferred>
515
- </term>
516
- </terms>
517
- </sections>
518
- </iso-standard>
519
- INPUT
520
- end
521
-
522
- it "processes terms & definitions with external source" do
523
- expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
524
- <iso-standard xmlns="http://riboseinc.com/isoxml">
525
- <termdocsource type="inline" bibitemid="ISO712"/>
526
- <sections>
527
- <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
528
- <term id="J">
529
- <preferred>Term2</preferred>
530
- </term>
531
- </terms>
532
- </sections>
533
- <bibliography>
534
- <references id="_normative_references" obligation="informative"><title>Normative References</title>
535
- <bibitem id="ISO712" type="standard">
536
- <title format="text/plain">Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</title>
537
- <docidentifier>ISO 712</docidentifier>
538
- <contributor>
539
- <role type="publisher"/>
540
- <organization>
541
- <name>International Organization for Standardization</name>
542
- </organization>
543
- </contributor>
544
- </bibitem></references>
545
- </bibliography>
546
- </iso-standard>
547
- INPUT
548
- #{HTML_HDR}
549
- <p class="zzSTDTitle1"/>
550
- <div>
551
- <h1>1.&#160; Normative references</h1>
552
- <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>
553
- <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</i></p>
554
- </div>
555
- <div id="H"><h1>2.&#160; Terms and definitions</h1><p>For the purposes of this document, the terms and definitions
556
- given in <a href="#ISO712">ISO 712</a> and the following apply.</p>
557
- <p class="TermNum" id="J">2.1.</p>
558
- <p class="Terms" style="text-align:left;">Term2</p>
559
- </div>
560
- </div>
561
- </body>
562
- </html>
563
- OUTPUT
564
- end
565
-
566
- it "processes empty terms & definitions with external source" do
567
- expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
568
- <iso-standard xmlns="http://riboseinc.com/isoxml">
569
- <termdocsource type="inline" bibitemid="ISO712"/>
570
- <termdocsource type="inline" bibitemid="ISO712"/>
571
- <termdocsource type="inline" bibitemid="ISO712"/>
572
- <sections>
573
- <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
574
- </terms>
575
- </sections>
576
- <bibliography>
577
- <references id="_normative_references" obligation="informative"><title>Normative References</title>
578
- <bibitem id="ISO712" type="standard">
579
- <title format="text/plain">Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</title>
580
- <docidentifier>ISO 712</docidentifier>
581
- <contributor>
582
- <role type="publisher"/>
583
- <organization>
584
- <abbreviation>ISO</abbreviation>
585
- </organization>
586
- </contributor>
587
- </bibitem></references>
588
- </bibliography>
589
- </iso-standard>
590
- INPUT
591
- #{HTML_HDR}
592
- <p class="zzSTDTitle1"/>
593
- <div>
594
- <h1>1.&#160; Normative references</h1>
595
- <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>
596
- <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</i></p>
597
- </div>
598
- <div id="H"><h1>2.&#160; Terms and definitions</h1><p>For the purposes of this document,
599
- the terms and definitions given in <a href="#ISO712">ISO 712</a>, <a href="#ISO712">ISO 712</a> and <a href="#ISO712">ISO 712</a> apply.</p>
600
- </div>
601
- </div>
602
- </body>
603
- </html>
604
- OUTPUT
605
- end
606
-
607
-
608
- it "processes empty terms & definitions" do
609
- expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
610
- <iso-standard xmlns="http://riboseinc.com/isoxml">
611
- <sections>
612
- <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
613
- </terms>
614
- </sections>
615
- </iso-standard>
616
- INPUT
617
- #{HTML_HDR}
618
- <p class="zzSTDTitle1"/>
619
- <div id="H"><h1>1.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
620
- </div>
621
- </div>
622
- </body>
623
- </html>
624
- OUTPUT
625
- end
626
500
 
627
501
  it "processes inline section headers" do
628
502
  expect(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
@@ -26,7 +26,7 @@ RSpec.describe IsoDoc do
26
26
  </thead>
27
27
  <tbody>
28
28
  <tr>
29
- <td align="left">Number of laboratories retained after eliminating outliers</td>
29
+ <th align="left">Number of laboratories retained after eliminating outliers</td>
30
30
  <td align="center">13</td>
31
31
  <td align="center">11</td>
32
32
  <td align="center">13</td>
@@ -71,21 +71,21 @@ RSpec.describe IsoDoc do
71
71
  <table id="tableD-1" class="MsoISOTable" style="border-width:1px;border-spacing:0;" title="tool tip">
72
72
  <thead>
73
73
  <tr>
74
- <td rowspan="2" style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;padding:0;">Description</td>
75
- <td colspan="4" style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">Rice sample</td>
74
+ <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>
75
+ <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>
76
76
  </tr>
77
77
  <tr>
78
- <td style="text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">Arborio</td>
79
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">Drago<a href="#tableD-1a" class="TableFootnoteRef">a</a><aside class="footnote"><div id="fn:tableD-1a"><a id="tableD-1a" class="TableFootnoteRef">a&#160; </a>
78
+ <td style="text-align:left;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;" scope="col">Arborio</td>
79
+ <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"><a id="tableD-1a" class="TableFootnoteRef">a&#160; </a>
80
80
  <p id="_0fe65e9a-5531-408e-8295-eeff35f41a55">Parboiled rice.</p>
81
81
  </div></aside></td>
82
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">Balilla<a href="#tableD-1a" class="TableFootnoteRef">a</a></td>
83
- <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;">Thaibonnet</td>
82
+ <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>
83
+ <td style="text-align:center;border-top:none;border-bottom:solid windowtext 1.5pt;padding:0;" scope="col">Thaibonnet</td>
84
84
  </tr>
85
85
  </thead>
86
86
  <tbody>
87
87
  <tr>
88
- <td style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">Number of laboratories retained after eliminating outliers</td>
88
+ <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</td>
89
89
  <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">13</td>
90
90
  <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">11</td>
91
91
  <td style="text-align:center;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;padding:0;">13</td>
@@ -192,7 +192,7 @@ RSpec.describe IsoDoc do
192
192
  </preface>
193
193
  </iso-standard>
194
194
  INPUT
195
- <html xmlns:epub="http://www.idpf.org/2007/ops">
195
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
196
196
  <head/>
197
197
  <body lang="EN-US" link="blue" vlink="#954F72">
198
198
  <div class="WordSection1">
@@ -6,6 +6,7 @@ RSpec.describe IsoDoc do
6
6
  <iso-standard xmlns="http://riboseinc.com/isoxml">
7
7
  <sections>
8
8
  <terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
9
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
9
10
 
10
11
  <term id="paddy1"><preferred>paddy</preferred>
11
12
  <domain>rice</domain>
@@ -100,6 +101,7 @@ OUTPUT
100
101
  <iso-standard xmlns="http://riboseinc.com/isoxml">
101
102
  <sections>
102
103
  <terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
104
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
103
105
 
104
106
  <term id="paddy1"><preferred>paddy</preferred>
105
107
  <domain>rice</domain>
@@ -165,7 +165,7 @@ RSpec.describe IsoDoc do
165
165
  <a href="#N">Note</a>
166
166
  </p>
167
167
  </div>
168
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
168
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
169
169
  </div>
170
170
  <div id="widgets">
171
171
  <h1>3.&#160; Widgets</h1>
@@ -304,7 +304,7 @@ RSpec.describe IsoDoc do
304
304
  <a href="#N">Figure 2</a>
305
305
  </p>
306
306
  </div>
307
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
307
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
308
308
  </div>
309
309
  <div id="widgets">
310
310
  <h1>3.&#160; Widgets</h1>
@@ -415,7 +415,7 @@ RSpec.describe IsoDoc do
415
415
  <div id="scope">
416
416
  <h1>1.&#160; Scope</h1>
417
417
  </div>
418
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
418
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
419
419
  </div>
420
420
  <div id="widgets">
421
421
  <h1>3.&#160; Widgets</h1>
@@ -557,7 +557,7 @@ RSpec.describe IsoDoc do
557
557
  <a href="#N">Example</a>
558
558
  </p>
559
559
  </div>
560
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
560
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
561
561
  </div>
562
562
  <div id="widgets">
563
563
  <h1>3.&#160; Widgets</h1>
@@ -688,7 +688,7 @@ RSpec.describe IsoDoc do
688
688
  <a href="#N">Formula (2)</a>
689
689
  </p>
690
690
  </div>
691
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
691
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
692
692
  </div>
693
693
  <div id="widgets">
694
694
  <h1>3.&#160; Widgets</h1>
@@ -815,7 +815,7 @@ RSpec.describe IsoDoc do
815
815
  <a href="#N">Requirement 2</a>
816
816
  </p>
817
817
  </div>
818
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
818
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
819
819
  </div>
820
820
  <div id="widgets">
821
821
  <h1>3.&#160; Widgets</h1>
@@ -952,7 +952,7 @@ OUTPUT
952
952
  <a href="#N">Recommendation 2</a>
953
953
  </p>
954
954
  </div>
955
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
955
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
956
956
  </div>
957
957
  <div id="widgets">
958
958
  <h1>3.&#160; Widgets</h1>
@@ -1089,7 +1089,7 @@ OUTPUT
1089
1089
  <a href="#N">Permission 2</a>
1090
1090
  </p>
1091
1091
  </div>
1092
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
1092
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
1093
1093
  </div>
1094
1094
  <div id="widgets">
1095
1095
  <h1>3.&#160; Widgets</h1>
@@ -1395,7 +1395,7 @@ OUTPUT
1395
1395
  <a href="#N">Table 2</a>
1396
1396
  </p>
1397
1397
  </div>
1398
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
1398
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
1399
1399
  </div>
1400
1400
  <div id="widgets">
1401
1401
  <h1>3.&#160; Widgets</h1>
@@ -1466,8 +1466,7 @@ OUTPUT
1466
1466
  <div id="scope">
1467
1467
  <h1>1.&#160; Scope</h1>
1468
1468
  </div>
1469
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>For the purposes of this document,
1470
- the following terms and definitions apply.</p>
1469
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
1471
1470
  <p class="TermNum" id="_waxy_rice">2.1.</p><p class="Terms" style="text-align:left;">waxy rice</p>
1472
1471
  <div class="Note"><p>Note 1 to entry: The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p></div><p class="TermNum" id="_nonwaxy_rice">2.2.</p><p class="Terms" style="text-align:left;">nonwaxy rice</p>
1473
1472
  <div class="Note"><p>Note 1 to entry: The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p></div>
@@ -1596,10 +1595,8 @@ OUTPUT
1596
1595
  </div>
1597
1596
  <div>
1598
1597
  <h1>2.&#160; Normative references</h1>
1599
- <p>There are no normative references in this document.</p>
1600
1598
  </div>
1601
- <div id="H"><h1>3.&#160; Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
1602
- the following terms and definitions apply.</p>
1599
+ <div id="H"><h1>3.&#160; Terms, definitions, symbols and abbreviated terms</h1>
1603
1600
  <div id="I">
1604
1601
  <h2>3.1. Normal Terms</h2>
1605
1602
  <p class="TermNum" id="J">3.1.1.</p>
@@ -1745,7 +1742,7 @@ OUTPUT
1745
1742
  <li><p>A</p></li>
1746
1743
  </ol>
1747
1744
  </div>
1748
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
1745
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
1749
1746
  </div>
1750
1747
  <div id="widgets">
1751
1748
  <h1>3.&#160; Widgets</h1>
@@ -1876,7 +1873,7 @@ OUTPUT
1876
1873
  <li id="N"><p>A</p></li>
1877
1874
  </ol>
1878
1875
  </div>
1879
- <div id="terms"><h1>2.&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
1876
+ <div id="terms"><h1>2.&#160; Terms and definitions</h1>
1880
1877
  </div>
1881
1878
  <div id="widgets">
1882
1879
  <h1>3.&#160; Widgets</h1>
@@ -30,7 +30,7 @@ def strip_guid(x)
30
30
  end
31
31
 
32
32
  HTML_HDR = <<~END
33
- <html xmlns:epub="http://www.idpf.org/2007/ops">
33
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
34
34
  <head/>
35
35
  <body lang="en">
36
36
  <div class="title-section">
@@ -45,7 +45,7 @@ HTML_HDR = <<~END
45
45
  END
46
46
 
47
47
  WORD_HDR = <<~END
48
- <html xmlns:epub="http://www.idpf.org/2007/ops">
48
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
49
49
  <head/>
50
50
  <body lang="EN-US" link="blue" vlink="#954F72">
51
51
  <div class="WordSection1">
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.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-20 00:00:00.000000000 Z
11
+ date: 2019-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciimath
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1'
47
+ version: 1.10.4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1'
54
+ version: 1.10.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: thread_safe
57
57
  requirement: !ruby/object:Gem::Requirement