isodoc 1.0.24 → 1.0.29

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +14 -4
  3. data/.github/workflows/ubuntu.yml +19 -5
  4. data/.github/workflows/windows.yml +14 -4
  5. data/isodoc.gemspec +1 -1
  6. data/lib/isodoc-yaml/i18n-en.yaml +3 -1
  7. data/lib/isodoc-yaml/i18n-fr.yaml +3 -1
  8. data/lib/isodoc-yaml/i18n-zh-Hans.yaml +3 -1
  9. data/lib/isodoc/convert.rb +1 -0
  10. data/lib/isodoc/function/blocks.rb +43 -49
  11. data/lib/isodoc/function/{blocks_example.rb → blocks_example_note.rb} +57 -2
  12. data/lib/isodoc/function/cleanup.rb +16 -2
  13. data/lib/isodoc/function/i18n.rb +1 -0
  14. data/lib/isodoc/function/inline.rb +79 -77
  15. data/lib/isodoc/function/inline_simple.rb +72 -0
  16. data/lib/isodoc/function/lists.rb +12 -6
  17. data/lib/isodoc/function/references.rb +51 -39
  18. data/lib/isodoc/function/reqt.rb +13 -4
  19. data/lib/isodoc/function/section.rb +19 -8
  20. data/lib/isodoc/function/table.rb +3 -4
  21. data/lib/isodoc/function/terms.rb +1 -1
  22. data/lib/isodoc/function/to_word_html.rb +23 -13
  23. data/lib/isodoc/function/utils.rb +13 -6
  24. data/lib/isodoc/function/xref_counter.rb +43 -9
  25. data/lib/isodoc/function/xref_gen.rb +2 -1
  26. data/lib/isodoc/function/xref_gen_seq.rb +11 -10
  27. data/lib/isodoc/function/xref_sect_gen.rb +24 -24
  28. data/lib/isodoc/headlesshtml_convert.rb +5 -0
  29. data/lib/isodoc/html_convert.rb +5 -0
  30. data/lib/isodoc/html_function/footnotes.rb +3 -3
  31. data/lib/isodoc/html_function/html.rb +16 -1
  32. data/lib/isodoc/html_function/postprocess.rb +6 -5
  33. data/lib/isodoc/metadata.rb +10 -3
  34. data/lib/isodoc/metadata_date.rb +19 -7
  35. data/lib/isodoc/pdf_convert.rb +5 -0
  36. data/lib/isodoc/version.rb +1 -1
  37. data/lib/isodoc/word_convert.rb +5 -0
  38. data/lib/isodoc/word_function/body.rb +13 -51
  39. data/lib/isodoc/word_function/footnotes.rb +3 -3
  40. data/lib/isodoc/word_function/inline.rb +75 -0
  41. data/lib/isodoc/word_function/postprocess.rb +13 -2
  42. data/lib/isodoc/word_function/table.rb +3 -3
  43. data/lib/isodoc/xslfo_convert.rb +5 -0
  44. data/spec/assets/i18n.yaml +4 -1
  45. data/spec/assets/odf.emf +0 -0
  46. data/spec/assets/odf.svg +4 -0
  47. data/spec/assets/odf1.svg +4 -0
  48. data/spec/isodoc/blocks_spec.rb +274 -51
  49. data/spec/isodoc/cleanup_spec.rb +317 -25
  50. data/spec/isodoc/footnotes_spec.rb +20 -5
  51. data/spec/isodoc/i18n_spec.rb +12 -12
  52. data/spec/isodoc/inline_spec.rb +299 -4
  53. data/spec/isodoc/lists_spec.rb +8 -8
  54. data/spec/isodoc/metadata_spec.rb +112 -3
  55. data/spec/isodoc/postproc_spec.rb +39 -21
  56. data/spec/isodoc/ref_spec.rb +121 -52
  57. data/spec/isodoc/section_spec.rb +236 -207
  58. data/spec/isodoc/table_spec.rb +28 -28
  59. data/spec/isodoc/terms_spec.rb +57 -13
  60. data/spec/isodoc/xref_spec.rb +218 -71
  61. metadata +10 -5
@@ -30,6 +30,8 @@ RSpec.describe IsoDoc do
30
30
  <date type="updated"><on>2018</on></date>
31
31
  <date type="unchanged"><on>2019</on></date>
32
32
  <date type="transmitted"><on>2020</on></date>
33
+ <date type="vote-started"><on>2021</on></date>
34
+ <date type="vote-ended"><on>2022</on></date>
33
35
  <edition>2</edition>
34
36
  <version>
35
37
  <revision-date>2016-05-01</revision-date>
@@ -86,13 +88,56 @@ RSpec.describe IsoDoc do
86
88
  </organization>
87
89
  </owner>
88
90
  </copyright>
91
+ <keyword>KW2</keyword>
92
+ <keyword>KW1</keyword>
93
+ <keyword>KW3</keyword>
89
94
  <ext>
90
95
  <doctype>international-standard</doctype>
91
96
  </ext>
92
97
  </bibdata>
93
98
  </iso-standard>
94
99
  INPUT
95
- {:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :authors=>["Barney Rubble", "Fred Flintstone"], :authors_affiliations=>{"Slate Inc., Bedrock"=>["Barney Rubble"], ""=>["Fred Flintstone"]}, :circulateddate=>"2015", :confirmeddate=>"2017", :copieddate=>"2016", :createddate=>"2010&ndash;2011", :doc=>"URL E", :docnumber=>"17301-1", :docnumeric=>"17301", :doctitle=>"Cereals and pulses", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :edition=>"2", :html=>"URL B", :implementeddate=>"XXX", :issueddate=>"XXX", :iteration=>"2", :obsoleteddate=>"2014", :pdf=>"URL D", :publisheddate=>"2011", :publisher=>"", :receiveddate=>"XXX", :revdate=>"2016-05-01", :revdate_monthyear=>"May 2016", :stage=>"Committee draft", :stageabbr=>"CD", :substage=>"Withdrawn", :transmitteddate=>"2020", :unchangeddate=>"2019", :unpublished=>true, :updateddate=>"2018", :url=>"URL A", :xml=>"URL C"}
100
+ {:accesseddate=>"2012",
101
+ :activateddate=>"2013",
102
+ :agency=>"ISO",
103
+ :authors=>["Barney Rubble", "Fred Flintstone"],
104
+ :authors_affiliations=>{"Slate Inc., Bedrock"=>["Barney Rubble"], ""=>["Fred Flintstone"]},
105
+ :circulateddate=>"2015",
106
+ :confirmeddate=>"2017",
107
+ :copieddate=>"2016",
108
+ :createddate=>"2010&ndash;2011",
109
+ :doc=>"URL E",
110
+ :docnumber=>"17301-1",
111
+ :docnumeric=>"17301",
112
+ :doctitle=>"Cereals and pulses",
113
+ :doctype=>"International Standard",
114
+ :docyear=>"2016",
115
+ :draft=>"0.4",
116
+ :draftinfo=>" (draft 0.4, 2016-05-01)",
117
+ :edition=>"2",
118
+ :html=>"URL B",
119
+ :implementeddate=>"XXX",
120
+ :issueddate=>"XXX",
121
+ :iteration=>"2",
122
+ :keywords=>["KW2", "KW1", "KW3"],
123
+ :obsoleteddate=>"2014",
124
+ :pdf=>"URL D",
125
+ :publisheddate=>"2011",
126
+ :publisher=>"",
127
+ :receiveddate=>"XXX",
128
+ :revdate=>"2016-05-01",
129
+ :revdate_monthyear=>"May 2016",
130
+ :stage=>"Committee draft",
131
+ :stageabbr=>"CD",
132
+ :substage=>"Withdrawn",
133
+ :transmitteddate=>"2020",
134
+ :unchangeddate=>"2019",
135
+ :unpublished=>true,
136
+ :updateddate=>"2018",
137
+ :url=>"URL A",
138
+ :vote_endeddate=>"2022",
139
+ :vote_starteddate=>"2021",
140
+ :xml=>"URL C"}
96
141
  OUTPUT
97
142
  end
98
143
 
@@ -166,7 +211,41 @@ OUTPUT
166
211
  </version>
167
212
  </iso-standard>
168
213
  INPUT
169
- {:accesseddate=>"XXX", :agency=>"ISO/IEC/IEEE", :authors=>[], :authors_affiliations=>{}, :circulateddate=>"XXX", :confirmeddate=>"XXX", :copieddate=>"XXX", :createddate=>"XXX", :docnumber=>"17301-1-3", :docnumeric=>"17301", :doctitle=>"Cereals and pulses", :doctype=>"International Standard", :docyear=>"2016", :draft=>"12", :draftinfo=>" (draft 12, 2016-05)", :edition=>nil, :implementeddate=>"XXX", :issueddate=>"XXX", :obsoleteddate=>"XXX", :obsoletes=>"IEC 8121", :obsoletes_part=>"3.1", :partof=>"IEC 8122", :publisheddate=>"2011-01", :publisher=>"International Organization for Standardization, International Electrotechnical Commission and Institute of Electrical and Electronics Engineers", :receiveddate=>"XXX", :revdate=>"2016-05", :revdate_monthyear=>"May 2016", :stage=>"Published", :transmitteddate=>"XXX", :unchangeddate=>"XXX", :unpublished=>false, :updateddate=>"XXX"}
214
+ {:accesseddate=>"XXX",
215
+ :agency=>"ISO/IEC/IEEE",
216
+ :authors=>[],
217
+ :authors_affiliations=>{},
218
+ :circulateddate=>"XXX",
219
+ :confirmeddate=>"XXX",
220
+ :copieddate=>"XXX",
221
+ :createddate=>"XXX",
222
+ :docnumber=>"17301-1-3",
223
+ :docnumeric=>"17301",
224
+ :doctitle=>"Cereals and pulses",
225
+ :doctype=>"International Standard",
226
+ :docyear=>"2016",
227
+ :draft=>"12",
228
+ :draftinfo=>" (draft 12, 2016-05)",
229
+ :edition=>nil,
230
+ :implementeddate=>"XXX",
231
+ :issueddate=>"XXX",
232
+ :keywords=>[],
233
+ :obsoleteddate=>"XXX",
234
+ :obsoletes=>"IEC 8121",
235
+ :obsoletes_part=>"3.1",
236
+ :partof=>"IEC 8122",
237
+ :publisheddate=>"2011-01",
238
+ :publisher=>"International Organization for Standardization, International Electrotechnical Commission and Institute of Electrical and Electronics Engineers",
239
+ :receiveddate=>"XXX",
240
+ :revdate=>"2016-05",
241
+ :revdate_monthyear=>"May 2016",
242
+ :stage=>"Published",
243
+ :transmitteddate=>"XXX",
244
+ :unchangeddate=>"XXX",
245
+ :unpublished=>false,
246
+ :updateddate=>"XXX",
247
+ :vote_endeddate=>"XXX",
248
+ :vote_starteddate=>"XXX"}
170
249
  OUTPUT
171
250
  end
172
251
 
@@ -225,7 +304,37 @@ OUTPUT
225
304
  </bibdata>
226
305
  </iso-standard>
227
306
  INPUT
228
- {:accesseddate=>"XXX", :agency=>"ISO/IEC", :authors=>[], :authors_affiliations=>{}, :circulateddate=>"XXX", :confirmeddate=>"XXX", :copieddate=>"XXX", :createddate=>"XXX", :docnumber=>"17301-1-3", :docnumeric=>"17301", :doctitle=>"Cereals and pulses", :docyear=>"2016", :draft=>nil, :draftinfo=>"", :edition=>nil, :implementeddate=>"XXX", :issueddate=>"XXX", :obsoleteddate=>"XXX", :publisheddate=>"2011-01", :publisher=>"International Organization for Standardization et International Electrotechnical Commission", :receiveddate=>"XXX", :revdate=>"2016-05", :revdate_monthyear=>"Mai 2016", :stage=>"Published", :transmitteddate=>"XXX", :unchangeddate=>"XXX", :unpublished=>false, :updateddate=>"XXX"}
307
+ {:accesseddate=>"XXX",
308
+ :agency=>"ISO/IEC",
309
+ :authors=>[],
310
+ :authors_affiliations=>{},
311
+ :circulateddate=>"XXX",
312
+ :confirmeddate=>"XXX",
313
+ :copieddate=>"XXX",
314
+ :createddate=>"XXX",
315
+ :docnumber=>"17301-1-3",
316
+ :docnumeric=>"17301",
317
+ :doctitle=>"Cereals and pulses",
318
+ :docyear=>"2016",
319
+ :draft=>nil,
320
+ :draftinfo=>"",
321
+ :edition=>nil,
322
+ :implementeddate=>"XXX",
323
+ :issueddate=>"XXX",
324
+ :keywords=>[],
325
+ :obsoleteddate=>"XXX",
326
+ :publisheddate=>"2011-01",
327
+ :publisher=>"International Organization for Standardization et International Electrotechnical Commission",
328
+ :receiveddate=>"XXX",
329
+ :revdate=>"2016-05",
330
+ :revdate_monthyear=>"Mai 2016",
331
+ :stage=>"Published",
332
+ :transmitteddate=>"XXX",
333
+ :unchangeddate=>"XXX",
334
+ :unpublished=>false,
335
+ :updateddate=>"XXX",
336
+ :vote_endeddate=>"XXX",
337
+ :vote_starteddate=>"XXX"}
229
338
  OUTPUT
230
339
  end
231
340
 
@@ -134,12 +134,6 @@ expect(File.exist?("test.doc")).to be true
134
134
  expect(word).to match(/one empty stylesheet/)
135
135
  end
136
136
 
137
- it "generates PDF output docs with null configuration from file" do
138
- FileUtils.rm_f "spec/assets/iso.pdf"
139
- IsoDoc::PdfConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("spec/assets/iso.xml", nil, false)
140
- expect(File.exist?("spec/assets/iso.pdf")).to be true
141
- end
142
-
143
137
  it "generates HTML output docs with complete configuration" do
144
138
  FileUtils.rm_f "test.doc"
145
139
  FileUtils.rm_f "test.html"
@@ -299,7 +293,7 @@ expect(File.exist?("test.doc")).to be true
299
293
  expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
300
294
  <div class="WordSection3">
301
295
  <p class="zzSTDTitle1"></p>
302
- <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>
296
+ <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>
303
297
  <p class="TermNum"><a name="paddy1" id="paddy1"></a>1.1.</p><p class="Terms" style="text-align:left;">paddy</p>
304
298
  <p class="MsoNormal"><a name="_eb29b35e-123e-4d1c-b50b-2714d41e747f" id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"></a>rice retaining its husk after threshing</p>
305
299
  <p class="MsoNormal">[SOURCE: <a href="#ISO7301">ISO 7301:2011, Clause 3.1</a>, modified &#x2014; The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here]</p></div>
@@ -558,25 +552,25 @@ TOCLEVEL
558
552
  <p class="zzSTDTitle1"></p>
559
553
  <div id="A">
560
554
  <h1>1.&#xA0; Clause 4</h1>
561
- <a rel="footnote" href="#fn:3" epub:type="footnote" id="fnref:1">
555
+ <a class='FootnoteRef' href='#fn:3' id='fnref:1'>
562
556
  <sup>1</sup>
563
557
  </a>
564
558
  <div id="N">
565
559
 
566
- <h2>1.1.&#160; Introduction to this<a rel="footnote" href="#fn:2" epub:type="footnote" id="fnref:2"><sup>2</sup></a></h2>
560
+ <h2>1.1.&#160; Introduction to this<a class='FootnoteRef' href='#fn:2' id='fnref:2'><sup>2</sup></a></h2>
567
561
  </div>
568
562
  <div id="O">
569
563
  <h2>1.2.&#160; Clause 4.2</h2>
570
- <p>A<a rel="footnote" href="#fn:2" epub:type="footnote"><sup>2</sup></a></p>
564
+ <p>A<a class='FootnoteRef' href='#fn:2'><sup>2</sup></a></p>
571
565
  </div>
572
566
  </div>
573
567
  <aside id="fn:3" class="footnote">
574
- <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:3" epub:type="footnote">
568
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a class='FootnoteRef' href='#fn:3'>
575
569
  <sup>1</sup>
576
570
  </a>This is a footnote.</p>
577
571
  <a href="#fnref:1">&#x21A9;</a></aside>
578
572
  <aside id="fn:2" class="footnote">
579
- <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>
573
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a class='FootnoteRef' href='#fn:2'><sup>2</sup></a>Formerly denoted as 15 % (m/m).</p>
580
574
  <a href="#fnref:2">&#x21A9;</a></aside>
581
575
 
582
576
  </main>
@@ -921,8 +915,9 @@ TOCLEVEL
921
915
  <p class='MsoListParagraphCxSpLast'>
922
916
  C1
923
917
  <div class='ListContLevel2'>
924
- <div class='formula'>
918
+ <div>
925
919
  <a name='_5fc1ef0f-75d2-4b54-802c-b1bad4a53b62' id='_5fc1ef0f-75d2-4b54-802c-b1bad4a53b62'/>
920
+ <div class='formula'>
926
921
  <p class='MsoNormal'>
927
922
  <span class='stem'>
928
923
  <m:oMath>
@@ -934,6 +929,7 @@ TOCLEVEL
934
929
  <span style='mso-tab-count:1'>&#xA0; </span>
935
930
  (1)
936
931
  </p>
932
+ </div>
937
933
  </div>
938
934
  </div>
939
935
  </p>
@@ -1316,7 +1312,11 @@ OUTPUT
1316
1312
  <pagebreak orientation="portrait"/>
1317
1313
  <p>And up</p>
1318
1314
  </note>
1315
+ <pagebreak orientation="portrait"/>
1319
1316
  </clause></sections>
1317
+ <annex id="_level_1" inline-header="false" obligation="normative">
1318
+ <title>Annex 1</title>
1319
+ </annex>
1320
1320
  </standard-document>
1321
1321
  INPUT
1322
1322
  expect(File.exist?("test.doc")).to be true
@@ -1324,7 +1324,9 @@ OUTPUT
1324
1324
  expect(html).to include "div.WordSection2_0 {page:WordSection2P;}"
1325
1325
  expect(html).to include "div.WordSection2_1 {page:WordSection2L;}"
1326
1326
  expect(html).to include "div.WordSection3_0 {page:WordSection3P;}"
1327
- expect(html).to include "div.WordSection3_1 {page:WordSection3L;}"
1327
+ expect(html).to include "div.WordSection3_1 {page:WordSection3P;}"
1328
+ expect(html).to include "div.WordSection3_2 {page:WordSection3L;}"
1329
+
1328
1330
 
1329
1331
  expect(xmlpp(html.sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
1330
1332
  <body lang='EN-US' xml:lang='EN-US' link='blue' vlink='#954F72'>
@@ -1335,12 +1337,12 @@ expect(xmlpp(html.sub(/^.*.*$}m, ""))).
1335
1337
  <br clear='all' class='section'/>
1336
1338
  </p>
1337
1339
  <div class='WordSection2'>
1338
- <p class='MsoNormal'>
1339
- <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
1340
- </p>
1340
+ <p class='MsoNormal'>
1341
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
1342
+ </p>
1341
1343
  <div class='Section3' id=''>
1342
1344
  <h1 class='IntroTitle'>Introduction</h1>
1343
- <p align='center' style='text-align:center' class='MsoNormal'>
1345
+ <p align='center' style='text-align:center;' class='MsoNormal'>
1344
1346
  This is a
1345
1347
  <p class='MsoNormal'>
1346
1348
  <br clear='all' class='section'/>
@@ -1383,7 +1385,7 @@ expect(xmlpp(html.sub(/^.*.*$}m, ""))).
1383
1385
  <p class='zzSTDTitle1'>Document title</p>
1384
1386
  <div>
1385
1387
  <h1>Foreword</h1>
1386
- <div id='' class='Note'>
1388
+ <div class='Note'>
1387
1389
  <p class='Note'>
1388
1390
  <span class='note_label'>NOTE 1</span>
1389
1391
  <span style='mso-tab-count:1'>&#xA0; </span>
@@ -1396,7 +1398,7 @@ expect(xmlpp(html.sub(/^.*.*$}m, ""))).
1396
1398
  </div>
1397
1399
  </div>
1398
1400
  </div>
1399
- <div class='WordSection3_1'>
1401
+ <div class='WordSection3_2'>
1400
1402
  <p class='TableTitle' style='text-align:center;'>Table 1</p>
1401
1403
  <div align='center' class='table_container'>
1402
1404
  <table class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;'>
@@ -1433,8 +1435,24 @@ expect(xmlpp(html.sub(/^.*.*$}m, ""))).
1433
1435
  <br clear='all' class='section'/>
1434
1436
  </p>
1435
1437
  </div>
1436
- <div class='WordSection3_0'>
1438
+ <div class='WordSection3_1'>
1437
1439
  <p class='Note'>And up</p>
1440
+ <p class='MsoNormal'>
1441
+ <br clear='all' class='section'/>
1442
+ </p>
1443
+ </div>
1444
+ <div class='WordSection3_0'>
1445
+ <div class='Section3'>
1446
+ <a name='_level_1' id='_level_1'/>
1447
+ <h1 class='Annex'>
1448
+ <b>Annex A</b>
1449
+ <br/>
1450
+ (normative)
1451
+ <br/>
1452
+ <br/>
1453
+ <b>Annex 1</b>
1454
+ </h1>
1455
+ </div>
1438
1456
  </div>
1439
1457
  <div style='mso-element:footnote-list'/>
1440
1458
  </body>
@@ -19,7 +19,7 @@ RSpec.describe IsoDoc do
19
19
  <eref bibitemid="zip_ffs"/>
20
20
  </p>
21
21
  </foreword></preface>
22
- <bibliography><references id="_normative_references" obligation="informative"><title>Normative References</title>
22
+ <bibliography><references id="_normative_references" obligation="informative" normative="true"><title>Normative References</title>
23
23
  <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>
24
24
  <bibitem id="ISO712" type="standard">
25
25
  <title format="text/plain">Cereals or cereal products</title>
@@ -44,7 +44,7 @@ RSpec.describe IsoDoc do
44
44
  <abbreviation>ISO</abbreviation>
45
45
  </organization>
46
46
  </contributor>
47
- <note format="text/plain" reference="1">ISO DATE: Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
47
+ <note format="text/plain" type="ISO DATE" reference="1">Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
48
48
  <extent type="part">
49
49
  <referenceFrom>all</referenceFrom>
50
50
  </extent>
@@ -69,7 +69,7 @@ RSpec.describe IsoDoc do
69
69
  <bibitem id="zip_ffs"><formattedref format="application/x-isodoc+xml">Title 5</formattedref><docidentifier type="metanorma">[5]</docidentifier></bibitem>
70
70
 
71
71
 
72
- </references><references id="_bibliography" obligation="informative">
72
+ </references><references id="_bibliography" obligation="informative" normative="false">
73
73
  <title>Bibliography</title>
74
74
  <bibitem id="ISBN" type="ISBN">
75
75
  <title format="text/plain">Chemicals for analytical laboratory use</title>
@@ -125,55 +125,124 @@ RSpec.describe IsoDoc do
125
125
  </iso-standard>
126
126
  INPUT
127
127
  #{HTML_HDR}
128
- <br/>
129
- <div>
130
- <h1 class="ForewordTitle">Foreword</h1>
131
- <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">
132
- <a href="#ISO712">[110]</a>
133
- <a href="#ISBN">[1]</a>
134
- <a href="#ISSN">[2]</a>
135
- <a href="#ISO16634">ISO 16634:-- (all parts)</a>
136
- <a href="#ref1">ICC 167</a>
137
- <a href="#ref10">[10]</a>
138
- <a href="#ref12">[Citn]</a>
139
- <a href='#zip_ffs'>[5]</a>
140
- </p>
141
- </div>
142
- <p class="zzSTDTitle1"/>
143
- <div>
144
- <h1>1.&#160; Normative references</h1>
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>
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
- <p id="ISO20483" class="NormRef">ISO 20483:2013-2014, <i>Cereals and pulses</i></p>
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>
150
- <div id="" class="Note">
151
- <p><span class="note_label">NOTE</span>&#160; This is an annotation of ISO 20483:2013-2014</p>
152
- </div>
153
- <p id='zip_ffs' class='NormRef'>[5], Title 5</p>
154
- </div>
155
- <br/>
156
- <div>
157
- <h1 class="Section3">Bibliography</h1>
158
- <p id="ISBN" class="Biblio">[1]&#160; <i>Chemicals for analytical laboratory use</i></p>
159
- <p id="ISSN" class="Biblio">[2]&#160; <i>Instruments for analytical laboratory use</i></p>
160
- <div id="" class="Note">
161
- <p><span class="note_label">NOTE</span>&#160; This is an annotation of document ISSN.</p>
162
- </div>
163
- <div id="" class="Note">
164
- <p><span class="note_label">NOTE</span>&#160; This is another annotation of document ISSN.</p>
165
- </div>
166
- <p id="ISO3696" class="Biblio">[3]&#160; ISO 3696, <i>Water for analytical laboratory use</i></p>
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
- <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>
170
- </div>
171
- <aside id="fn:1" class="footnote">
172
- <p>Under preparation. (Stage at the time of publication ISO/DIS 16634)</p>
173
- </aside>
174
- </div>
175
- </body>
176
- </html>
128
+ <br/>
129
+ <div>
130
+ <h1 class='ForewordTitle'>Foreword</h1>
131
+ <p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
132
+ <a href='#ISO712'>[110]</a>
133
+ <a href='#ISBN'>[1]</a>
134
+ <a href='#ISSN'>[2]</a>
135
+ <a href='#ISO16634'>ISO 16634:-- (all parts)</a>
136
+ <a href='#ref1'>ICC 167</a>
137
+ <a href='#ref10'>[10]</a>
138
+ <a href='#ref12'>Citn</a>
139
+ <a href='#zip_ffs'>[5]</a>
140
+ </p>
141
+ </div>
142
+ <p class='zzSTDTitle1'/>
143
+ <div>
144
+ <h1>1.&#160; Normative references</h1>
145
+ <p>
146
+ The following documents are referred to in the text in such a way that
147
+ some or all of their content constitutes requirements of this
148
+ document. For dated references, only the edition cited applies. For
149
+ undated references, the latest edition of the referenced document
150
+ (including any amendments) applies.
151
+ </p>
152
+ <p id='ISO712' class='NormRef'>
153
+ [110], ISO 712,
154
+ <i>Cereals and cereal products</i>
155
+ </p>
156
+ <p id='ISO16634' class='NormRef'>
157
+ ISO 16634:-- (all parts)
158
+ <a class='FootnoteRef' href='#fn:1'>
159
+ <sup>1</sup>
160
+ </a>
161
+ ,
162
+ <i>Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</i>
163
+ </p>
164
+ <p id='ISO20483' class='NormRef'>
165
+ ISO 20483:2013-2014,
166
+ <i>Cereals and pulses</i>
167
+ </p>
168
+ <p id='ref1' class='NormRef'>
169
+ ICC 167,
170
+ <span style='font-variant:small-caps;'>Standard No I.C.C 167</span>
171
+ .
172
+ <i>
173
+ Determination of the protein content in cereal and cereal products
174
+ for food and animal feeding stuffs according to the Dumas combustion
175
+ method
176
+ </i>
177
+ (see
178
+ <a href='http://www.icc.or.at'>http://www.icc.or.at</a>
179
+ )
180
+ </p>
181
+ <div class='Note'>
182
+ <p>
183
+ <span class='note_label'>NOTE</span>
184
+ &#160; This is an annotation of ISO 20483:2013-2014
185
+ </p>
186
+ </div>
187
+ <p id='zip_ffs' class='NormRef'>[5], Title 5</p>
188
+ </div>
189
+ <br/>
190
+ <div>
191
+ <h1 class='Section3'>Bibliography</h1>
192
+ <p id='ISBN' class='Biblio'>
193
+ [1]&#160;
194
+ <i>Chemicals for analytical laboratory use</i>
195
+ </p>
196
+ <p id='ISSN' class='Biblio'>
197
+ [2]&#160;
198
+ <i>Instruments for analytical laboratory use</i>
199
+ </p>
200
+ <div class='Note'>
201
+ <p>
202
+ <span class='note_label'>NOTE</span>
203
+ &#160; This is an annotation of document ISSN.
204
+ </p>
205
+ </div>
206
+ <div class='Note'>
207
+ <p>
208
+ <span class='note_label'>NOTE</span>
209
+ &#160; This is another annotation of document ISSN.
210
+ </p>
211
+ </div>
212
+ <p id='ISO3696' class='Biblio'>
213
+ [3]&#160; ISO 3696,
214
+ <i>Water for analytical laboratory use</i>
215
+ </p>
216
+ <p id='ref10' class='Biblio'>
217
+ [10]&#160;
218
+ <span style='font-variant:small-caps;'>Standard No I.C.C 167</span>
219
+ .
220
+ <i>
221
+ Determination of the protein content in cereal and cereal products
222
+ for food and animal feeding stuffs according to the Dumas combustion
223
+ method
224
+ </i>
225
+ (see
226
+ <a href='http://www.icc.or.at'>http://www.icc.or.at</a>
227
+ )
228
+ </p>
229
+ <p id='ref11' class='Biblio'>
230
+ [5]&#160; IETF RFC 10,
231
+ <i>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</i>
232
+ </p>
233
+ <p id='ref12' class='Biblio'>
234
+ [6]&#160; Citn, IETF RFC 20, CitationWorks. 2019.
235
+ <i>How to cite a reference</i>
236
+ .
237
+ </p>
238
+ </div>
239
+ <aside id='fn:1' class='footnote'>
240
+ <p>Under preparation. (Stage at the time of publication ISO/DIS 16634)</p>
241
+ </aside>
242
+ </div>
243
+ </body>
244
+ </html>
245
+
177
246
  OUTPUT
178
247
  end
179
248