metanorma-iso 2.0.7 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/lib/asciidoctor/iso/base.rb +0 -1
  3. data/lib/asciidoctor/iso/cleanup.rb +0 -1
  4. data/lib/asciidoctor/iso/converter.rb +0 -1
  5. data/lib/asciidoctor/iso/deprecated.rb +4 -2
  6. data/lib/asciidoctor/iso/front.rb +0 -1
  7. data/lib/asciidoctor/iso/front_id.rb +0 -1
  8. data/lib/asciidoctor/iso/section.rb +0 -1
  9. data/lib/asciidoctor/iso/validate.rb +0 -1
  10. data/lib/asciidoctor/iso/validate_image.rb +0 -1
  11. data/lib/asciidoctor/iso/validate_requirements.rb +0 -1
  12. data/lib/asciidoctor/iso/validate_section.rb +0 -1
  13. data/lib/asciidoctor/iso/validate_style.rb +0 -1
  14. data/lib/asciidoctor/iso/validate_title.rb +0 -1
  15. data/lib/html2doc/lists.rb +37 -0
  16. data/lib/isodoc/iso/html/html_iso_titlepage.html +7 -2
  17. data/lib/isodoc/iso/html/isodoc-dis.css +196 -156
  18. data/lib/isodoc/iso/html/isodoc-dis.scss +193 -156
  19. data/lib/isodoc/iso/html/word_iso_intro-dis.html +7 -0
  20. data/lib/isodoc/iso/html/word_iso_titlepage-dis.html +3 -2
  21. data/lib/isodoc/iso/html/word_iso_titlepage.html +8 -2
  22. data/lib/isodoc/iso/html/wordstyle-dis.css +204 -34
  23. data/lib/isodoc/iso/html/wordstyle-dis.scss +198 -34
  24. data/lib/isodoc/iso/i18n-en.yaml +2 -1
  25. data/lib/isodoc/iso/i18n-fr.yaml +1 -0
  26. data/lib/isodoc/iso/i18n-ru.yaml +1 -0
  27. data/lib/isodoc/iso/i18n-zh-Hans.yaml +1 -0
  28. data/lib/isodoc/iso/index.rb +1 -1
  29. data/lib/isodoc/iso/init.rb +17 -1
  30. data/lib/isodoc/iso/iso.amendment.xsl +726 -299
  31. data/lib/isodoc/iso/iso.international-standard.xsl +726 -299
  32. data/lib/isodoc/iso/metadata.rb +75 -63
  33. data/lib/isodoc/iso/presentation_inline.rb +90 -0
  34. data/lib/isodoc/iso/presentation_xml_convert.rb +39 -100
  35. data/lib/isodoc/iso/presentation_xref.rb +126 -0
  36. data/lib/isodoc/iso/word_cleanup.rb +16 -2
  37. data/lib/isodoc/iso/word_convert.rb +27 -10
  38. data/lib/isodoc/iso/word_dis_convert.rb +174 -0
  39. data/lib/isodoc/iso/xref.rb +50 -30
  40. data/lib/metanorma/iso/biblio.rng +62 -10
  41. data/lib/metanorma/iso/boilerplate-fr.xml +1 -1
  42. data/lib/metanorma/iso/boilerplate-ru.xml +1 -3
  43. data/lib/metanorma/iso/boilerplate.xml +1 -3
  44. data/lib/metanorma/iso/cleanup.rb +7 -6
  45. data/lib/metanorma/iso/front_id.rb +28 -11
  46. data/lib/metanorma/iso/isodoc.rng +56 -0
  47. data/lib/metanorma/iso/version.rb +1 -1
  48. data/lib/metanorma-iso.rb +1 -0
  49. data/lib/relaton/render/config.yml +4 -0
  50. data/lib/relaton/render/general.rb +13 -0
  51. data/metanorma-iso.gemspec +1 -1
  52. data/spec/isodoc/amd_spec.rb +15 -14
  53. data/spec/isodoc/blocks_spec.rb +286 -179
  54. data/spec/isodoc/i18n_spec.rb +296 -133
  55. data/spec/isodoc/inline_spec.rb +35 -42
  56. data/spec/isodoc/iso_spec.rb +43 -27
  57. data/spec/isodoc/postproc_spec.rb +25 -0
  58. data/spec/isodoc/ref_spec.rb +66 -69
  59. data/spec/isodoc/section_spec.rb +78 -76
  60. data/spec/isodoc/table_spec.rb +2 -2
  61. data/spec/isodoc/terms_spec.rb +2 -2
  62. data/spec/isodoc/word_dis_spec.rb +760 -0
  63. data/spec/isodoc/xref_spec.rb +51 -51
  64. data/spec/metanorma/amd_spec.rb +39 -16
  65. data/spec/metanorma/base_spec.rb +17 -9
  66. data/spec/metanorma/blocks_spec.rb +4 -4
  67. data/spec/metanorma/cleanup_spec.rb +11 -11
  68. data/spec/metanorma/section_spec.rb +3 -3
  69. data/spec/spec_helper.rb +5 -2
  70. data/spec/vcr_cassettes/withdrawn_iso.yml +26 -26
  71. metadata +11 -5
  72. data/spec/vcr_cassettes/docrels.yml +0 -385
@@ -156,7 +156,7 @@ RSpec.describe IsoDoc do
156
156
  <annex id="P" inline-header="false" obligation="normative" displayorder='8'>
157
157
  <title>
158
158
  <strong>Annex A</strong>
159
- <br/>(normative)
159
+ <br/><span class='obligation'>(normative)</span>
160
160
  <br/>
161
161
  <br/>
162
162
  <strong>Annex</strong></title>
@@ -263,6 +263,181 @@ RSpec.describe IsoDoc do
263
263
  </body>
264
264
  </html>
265
265
  OUTPUT
266
+ word = <<~WORD
267
+ <html xmlns:epub='http://www.idpf.org/2007/ops' lang='en'>
268
+ <head>
269
+ <style></style>
270
+ <style></style>
271
+ </head>
272
+ <body lang='EN-US' link='blue' vlink='#954F72'>
273
+ <div class='WordSection1'>
274
+ <p> </p>
275
+ </div>
276
+ <p>
277
+ <br clear='all' class='section'/>
278
+ </p>
279
+ <div class='WordSection2'>
280
+ <p>
281
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
282
+ </p>
283
+ <div>
284
+ <h1 class='ForewordTitle'>Foreword</h1>
285
+ <p class='ForewordText' id='A'>This is a preamble</p>
286
+ </div>
287
+ <p>
288
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
289
+ </p>
290
+ <div class='Section3' id='B'>
291
+ <h1 class='IntroTitle'>
292
+ 0
293
+ <span style='mso-tab-count:1'>  </span>
294
+ Introduction
295
+ </h1>
296
+ <div id='C'>
297
+ <h2>
298
+ 0.1
299
+ <span style='mso-tab-count:1'>  </span>
300
+ Introduction Subsection
301
+ </h2>
302
+ </div>
303
+ <p>This is patent boilerplate</p>
304
+ </div>
305
+ <p> </p>
306
+ </div>
307
+ <p>
308
+ <br clear='all' class='section'/>
309
+ </p>
310
+ <div class='WordSection3'>
311
+ <p class='zzSTDTitle1'/>
312
+ <div id='D'>
313
+ <h1>
314
+ 1
315
+ <span style='mso-tab-count:1'>  </span>
316
+ Scope
317
+ </h1>
318
+ <p id='E'>Text</p>
319
+ </div>
320
+ <div>
321
+ <h1>
322
+ 2
323
+ <span style='mso-tab-count:1'>  </span>
324
+ Normative References
325
+ </h1>
326
+ </div>
327
+ <div id='H'>
328
+ <h1>
329
+ 3
330
+ <span style='mso-tab-count:1'>  </span>
331
+ Terms, definitions, symbols and abbreviated terms
332
+ </h1>
333
+ <div id='I'>
334
+ <h2>
335
+ 3.1
336
+ <span style='mso-tab-count:1'>  </span>
337
+ Normal Terms
338
+ </h2>
339
+ <p class='TermNum' id='J'>3.1.1</p>
340
+ <p class='Terms' style='text-align:left;'>
341
+ <b>Term2</b>
342
+ </p>
343
+ </div>
344
+ <div id='K'>
345
+ <span class='zzMoveToFollowing'>
346
+ <b>
347
+ 3.2
348
+ <span style='mso-tab-count:1'>  </span>
349
+ </b>
350
+ </span>
351
+ <table class='dl'>
352
+ <tr>
353
+ <td valign='top' align='left'>
354
+ <p align='left' style='margin-left:0pt;text-align:left;'>Symbol</p>
355
+ </td>
356
+ <td valign='top'>Definition</td>
357
+ </tr>
358
+ </table>
359
+ </div>
360
+ </div>
361
+ <div id='L' class='Symbols'>
362
+ <h1>4</h1>
363
+ <table class='dl'>
364
+ <tr>
365
+ <td valign='top' align='left'>
366
+ <p align='left' style='margin-left:0pt;text-align:left;'>Symbol</p>
367
+ </td>
368
+ <td valign='top'>Definition</td>
369
+ </tr>
370
+ </table>
371
+ </div>
372
+ <div id='M'>
373
+ <h1>
374
+ 5
375
+ <span style='mso-tab-count:1'>  </span>
376
+ Clause 4
377
+ </h1>
378
+ <div id='N'>
379
+ <h2>
380
+ 5.1
381
+ <span style='mso-tab-count:1'>  </span>
382
+ Introduction
383
+ </h2>
384
+ </div>
385
+ <div id='O'>
386
+ <h2>
387
+ 5.2
388
+ <span style='mso-tab-count:1'>  </span>
389
+ Clause 4.2
390
+ </h2>
391
+ </div>
392
+ </div>
393
+ <p>
394
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
395
+ </p>
396
+ <div id='P' class='Section3'>
397
+ <h1 class='Annex'>
398
+ <br/>
399
+ <span style='font-weight:normal;'>(normative)</span>
400
+ <br/>
401
+ <br/>
402
+ <b>Annex</b>
403
+ </h1>
404
+ <div id='Q'>
405
+ <h2>
406
+ A.1
407
+ <span style='mso-tab-count:1'>  </span>
408
+ Annex A.1
409
+ </h2>
410
+ <div id='Q1'>
411
+ <h3>
412
+ A.1.1
413
+ <span style='mso-tab-count:1'>  </span>
414
+ Annex A.1a
415
+ </h3>
416
+ </div>
417
+ </div>
418
+ <div id='Q2'>
419
+ <h2>
420
+ Appendix 1
421
+ <span style='mso-tab-count:1'>  </span>
422
+ An Appendix
423
+ </h2>
424
+ </div>
425
+ </div>
426
+ <p>
427
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
428
+ </p>
429
+ <div>
430
+ <h1 class='BiblioTitle'>Bibliography</h1>
431
+ <div>
432
+ <h2 class='BiblioTitle'>Bibliography Subsection</h2>
433
+ </div>
434
+ </div>
435
+ </div>
436
+ <br clear='all' style='page-break-before:left;mso-break-type:section-break'/>
437
+ <div class='colophon'/>
438
+ </body>
439
+ </html>
440
+ WORD
266
441
  expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
267
442
  .convert("test", input, true))
268
443
  .sub(%r{<localized-strings>.*</localized-strings>}m, ""))
@@ -270,6 +445,9 @@ RSpec.describe IsoDoc do
270
445
  expect(xmlpp(IsoDoc::Iso::HtmlConvert.new({})
271
446
  .convert("test", presxml, true)))
272
447
  .to be_equivalent_to xmlpp(html)
448
+ expect(xmlpp(IsoDoc::Iso::WordConvert.new({})
449
+ .convert("test", presxml, true)))
450
+ .to be_equivalent_to xmlpp(word)
273
451
  end
274
452
 
275
453
  it "defaults to English" do
@@ -380,11 +558,7 @@ RSpec.describe IsoDoc do
380
558
  <p id="A">This is a preamble</p>
381
559
  </foreword>
382
560
  <introduction id="B" obligation="informative" displayorder='2'>
383
- <title depth="1">
384
- 0
385
- <tab/>
386
- Introduction
387
- </title>
561
+ <title depth="1">0<tab/>Introduction</title>
388
562
  <clause id="C" inline-header="false" obligation="informative">
389
563
  <title depth="2">0.1<tab/>Introduction Subsection</title>
390
564
  </clause>
@@ -433,7 +607,7 @@ RSpec.describe IsoDoc do
433
607
  <annex id="P" inline-header="false" obligation="normative" displayorder='8'>
434
608
  <title>
435
609
  <strong>Annex A</strong>
436
- <br/>(normative)
610
+ <br/><span class='obligation'>(normative)</span>
437
611
  <br/>
438
612
  <br/>
439
613
  <strong>Annex</strong></title>
@@ -617,7 +791,7 @@ RSpec.describe IsoDoc do
617
791
  <annex id="P" inline-header="false" obligation="normative" displayorder='8'>
618
792
  <title>
619
793
  <strong>Annexe A</strong>
620
- <br/>(normative)
794
+ <br/><span class='obligation'>(normative)</span>
621
795
  <br/>
622
796
  <br/>
623
797
  <strong>Annex</strong></title>
@@ -902,7 +1076,7 @@ RSpec.describe IsoDoc do
902
1076
  <annex id="P" inline-header="false" obligation="normative" displayorder='8'>
903
1077
  <title>
904
1078
  <strong>&#x414;&#x43E;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; A</strong>
905
- <br/>(&#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x435;)
1079
+ <br/><span class='obligation'>(&#x43D;&#x43E;&#x440;&#x43C;&#x430;&#x442;&#x438;&#x432;&#x43D;&#x43E;&#x435;)</span>
906
1080
  <br/>
907
1081
  <br/>
908
1082
  <strong>Annex</strong></title>
@@ -1113,14 +1287,8 @@ RSpec.describe IsoDoc do
1113
1287
  <references id="R" normative="true" obligation="informative">
1114
1288
  <title>Normative References</title>
1115
1289
  <bibitem id="ISO712" type="standard">
1116
- <title format="text/plain">Cereals and cereal products</title>
1290
+ <formattedref><em>Cereals and cereal products</em>.</formattedref>
1117
1291
  <docidentifier>ISO 712</docidentifier>
1118
- <contributor>
1119
- <role type="publisher"/>
1120
- <organization>
1121
- <abbreviation>ISO</abbreviation>
1122
- </organization>
1123
- </contributor>
1124
1292
  </bibitem>
1125
1293
  </references>
1126
1294
  <clause id="S" obligation="informative">
@@ -1146,40 +1314,31 @@ RSpec.describe IsoDoc do
1146
1314
  <doctype language='zh'>&#x56FD;&#x9645;&#x6807;&#x51C6;</doctype>
1147
1315
  </ext>
1148
1316
  </bibdata>
1317
+
1149
1318
  <preface>
1150
1319
  <foreword obligation="informative" displayorder='1'>
1151
1320
  <title>Foreword</title>
1152
1321
  <p id="A">This is a preamble</p>
1153
1322
  </foreword>
1154
1323
  <introduction id="B" obligation="informative" displayorder='2'>
1155
- <title depth="1">0
1156
- <tab/>
1157
- Introduction</title>
1324
+ <title depth="1">0<tab/>Introduction</title>
1158
1325
  <clause id="C" inline-header="false" obligation="informative">
1159
- <title depth="2">0.1
1160
- <tab/>
1161
- Introduction Subsection</title>
1326
+ <title depth="2">0.1<tab/>Introduction Subsection</title>
1162
1327
  </clause>
1163
1328
  <p>This is patent boilerplate</p>
1164
1329
  </introduction>
1165
1330
  </preface>
1166
1331
  <sections>
1167
1332
  <clause id="D" obligation="normative" type="scope" displayorder='3'>
1168
- <title depth="1">1
1169
- <tab/>
1170
- Scope</title>
1333
+ <title depth="1">1<tab/>Scope</title>
1171
1334
  <p id="E">
1172
- <eref bibitemid="ISO712" type="inline"><locality type="table"><referenceFrom>1</referenceFrom><referenceTo>1</referenceTo></locality>ISO 712、第1–1表</eref>
1335
+ <eref bibitemid="ISO712" type="inline"><locality type="table"><referenceFrom>1</referenceFrom><referenceTo>1</referenceTo></locality>ISO 712, <span class='citetbl'>第1–1表</span></eref>
1173
1336
  </p>
1174
1337
  </clause>
1175
1338
  <clause id="H" obligation="normative" displayorder='5'>
1176
- <title depth="1">3
1177
- <tab/>
1178
- Terms, definitions, symbols and abbreviated terms</title>
1339
+ <title depth="1">3<tab/>Terms, definitions, symbols and abbreviated terms</title>
1179
1340
  <terms id="I" obligation="normative">
1180
- <title depth="2">3.1
1181
- <tab/>
1182
- Normal Terms</title>
1341
+ <title depth="2">3.1<tab/>Normal Terms</title>
1183
1342
  <term id="J">
1184
1343
  <name>3.1.1</name>
1185
1344
  <preferred><strong>Term2</strong></preferred>
@@ -1201,58 +1360,38 @@ RSpec.describe IsoDoc do
1201
1360
  </dl>
1202
1361
  </definitions>
1203
1362
  <clause id="M" inline-header="false" obligation="normative" displayorder='7'>
1204
- <title depth="1">5
1205
- <tab/>
1206
- Clause 4</title>
1363
+ <title depth="1">5<tab/>Clause 4</title>
1207
1364
  <clause id="N" inline-header="false" obligation="normative">
1208
- <title depth="2">5.1
1209
- <tab/>
1210
- Introduction</title>
1365
+ <title depth="2">5.1<tab/>Introduction</title>
1211
1366
  </clause>
1212
1367
  <clause id="O" inline-header="false" obligation="normative">
1213
- <title depth="2">5.2
1214
- <tab/>
1215
- Clause 4.2</title>
1368
+ <title depth="2">5.2<tab/>Clause 4.2</title>
1216
1369
  </clause>
1217
1370
  </clause>
1218
1371
  </sections>
1219
1372
  <annex id="P" inline-header="false" obligation="normative" displayorder='8'>
1220
1373
  <title>
1221
1374
  <strong>附件A</strong>
1222
- <br/>(规范性附录)
1375
+ <br/><span class='obligation'>(规范性附录)</span>
1223
1376
  <br/>
1224
1377
  <br/>
1225
1378
  <strong>Annex</strong></title>
1226
1379
  <clause id="Q" inline-header="false" obligation="normative">
1227
- <title depth="2">A.1
1228
- <tab/>
1229
- Annex A.1</title>
1380
+ <title depth="2">A.1<tab/>Annex A.1</title>
1230
1381
  <clause id="Q1" inline-header="false" obligation="normative">
1231
- <title depth="3">A.1.1
1232
- <tab/>
1233
- Annex A.1a</title>
1382
+ <title depth="3">A.1.1<tab/>Annex A.1a</title>
1234
1383
  </clause>
1235
1384
  </clause>
1236
1385
  <appendix id="Q2" inline-header="false" obligation="normative">
1237
- <title depth="2">附录1
1238
- <tab/>
1239
- An Appendix</title>
1386
+ <title depth="2">附录1<tab/>An Appendix</title>
1240
1387
  </appendix>
1241
1388
  </annex>
1242
1389
  <bibliography>
1243
1390
  <references id="R" normative="true" obligation="informative" displayorder='4'>
1244
- <title depth="1">2
1245
- <tab/>
1246
- Normative References</title>
1391
+ <title depth="1">2<tab/>Normative References</title>
1247
1392
  <bibitem id="ISO712" type="standard">
1248
- <title format="text/plain">Cereals and cereal products</title>
1393
+ <formattedref><em>Cereals and cereal products</em>.</formattedref>
1249
1394
  <docidentifier>ISO 712</docidentifier>
1250
- <contributor>
1251
- <role type="publisher"/>
1252
- <organization>
1253
- <abbreviation>ISO</abbreviation>
1254
- </organization>
1255
- </contributor>
1256
1395
  </bibitem>
1257
1396
  </references>
1258
1397
  <clause id="S" obligation="informative" displayorder='9'>
@@ -1267,78 +1406,102 @@ RSpec.describe IsoDoc do
1267
1406
 
1268
1407
  html = <<~OUTPUT
1269
1408
  #{HTML_HDR.gsub(/"en"/, '"zh"')}
1270
- <br/>
1271
- <div>
1272
- <h1 class="ForewordTitle">Foreword</h1>
1273
- <p id="A">This is a preamble</p>
1274
- </div>
1275
- <br/>
1276
- <div class="Section3" id="B">
1277
- <h1 class="IntroTitle">0 &#12288; Introduction</h1>
1278
- <div id="C">
1279
- <h2>0.1 &#12288; Introduction Subsection</h2>
1280
- </div>
1281
- <p>This is patent boilerplate</p>
1282
- </div>
1283
- <p class="zzSTDTitle1"/>
1284
- <div id="D">
1285
- <h1>1 &#12288; Scope</h1>
1286
- <p id="E"><a href='#ISO712'>ISO 712&#12289;&#31532;1&#8211;1&#34920;</a></p>
1287
- </div>
1288
- <div>
1289
- <h1>2 &#12288; Normative References</h1>
1290
- <p id="ISO712" class="NormRef">ISO 712, <i>Cereals and cereal products</i></p>
1291
- </div>
1292
- <div id="H">
1293
- <h1>3 &#12288; Terms, definitions, symbols and abbreviated terms</h1>
1294
- <div id="I"><h2>3.1 &#12288; Normal Terms</h2>
1295
- <p class="TermNum" id="J">3.1.1</p>
1296
- <p class="Terms" style="text-align:left;"><b>Term2</b></p>
1297
- </div><div id="K">
1298
- <span class='zzMoveToFollowing'>
1299
- <b>3.2&#12288;</b>
1300
- </span>
1301
- <dl><dt><p>Symbol</p></dt><dd>Definition</dd></dl>
1302
- </div></div>
1303
- <div id="L" class="Symbols">
1304
- <h1>4</h1>
1305
- <dl>
1306
- <dt>
1307
- <p>Symbol</p>
1308
- </dt>
1309
- <dd>Definition</dd>
1310
- </dl>
1311
- </div>
1312
- <div id="M">
1313
- <h1>5 &#12288; Clause 4</h1>
1314
- <div id="N">
1315
- <h2>5.1 &#12288; Introduction</h2>
1316
- </div>
1317
- <div id="O">
1318
- <h2>5.2 &#12288; Clause 4.2</h2>
1319
- </div>
1320
- </div>
1321
- <br/>
1322
- <div id="P" class="Section3">
1323
- <h1 class="Annex"><b>&#38468;&#20214;A</b><br/>&#65288;&#35268;&#33539;&#24615;&#38468;&#24405;&#65289;<br/><br/><b>Annex</b></h1>
1324
- <div id="Q">
1325
- <h2>A.1 &#12288; Annex A.1</h2>
1326
- <div id="Q1"><h3>A.1.1 &#12288; Annex A.1a</h3></div>
1327
- </div>
1328
- <div id="Q2">
1329
- <h2>&#38468;&#24405;1 &#12288; An Appendix</h2>
1330
- </div>
1331
- </div>
1332
- <br/>
1333
- <div>
1334
- <h1 class="Section3">Bibliography</h1>
1335
- <div>
1336
- <h2 class="Section3">Bibliography Subsection</h2>
1337
- </div>
1338
- </div>
1339
- </div>
1340
- </body>
1341
- </html>
1409
+ <br/>
1410
+ <div>
1411
+ <h1 class='ForewordTitle'>Foreword</h1>
1412
+ <p id='A'>This is a preamble</p>
1413
+ </div>
1414
+ <br/>
1415
+ <div class='Section3' id='B'>
1416
+ <h1 class='IntroTitle'>0 Introduction</h1>
1417
+ <div id='C'>
1418
+ <h2>0.1 Introduction Subsection</h2>
1419
+ </div>
1420
+ <p>This is patent boilerplate</p>
1421
+ </div>
1422
+ <p class='zzSTDTitle1'/>
1423
+ <div id='D'>
1424
+ <h1>1 Scope</h1>
1425
+ <p id='E'>
1426
+ <a href='#ISO712'>ISO 712, 第1–1表</a>
1427
+ </p>
1428
+ </div>
1429
+ <div>
1430
+ <h1>2 Normative References</h1>
1431
+ <p id='ISO712' class='NormRef'>
1432
+ ISO 712,
1433
+ <i>Cereals and cereal products</i>.
1434
+ </p>
1435
+ </div>
1436
+ <div id='H'>
1437
+ <h1>3 Terms, definitions, symbols and abbreviated terms</h1>
1438
+ <div id='I'>
1439
+ <h2>3.1 Normal Terms</h2>
1440
+ <p class='TermNum' id='J'>3.1.1</p>
1441
+ <p class='Terms' style='text-align:left;'>
1442
+ <b>Term2</b>
1443
+ </p>
1444
+ </div>
1445
+ <div id='K'>
1446
+ <span class='zzMoveToFollowing'>
1447
+ <b>3.2 </b>
1448
+ </span>
1449
+ <dl>
1450
+ <dt>
1451
+ <p>Symbol</p>
1452
+ </dt>
1453
+ <dd>Definition</dd>
1454
+ </dl>
1455
+ </div>
1456
+ </div>
1457
+ <div id='L' class='Symbols'>
1458
+ <h1>4</h1>
1459
+ <dl>
1460
+ <dt>
1461
+ <p>Symbol</p>
1462
+ </dt>
1463
+ <dd>Definition</dd>
1464
+ </dl>
1465
+ </div>
1466
+ <div id='M'>
1467
+ <h1>5 Clause 4</h1>
1468
+ <div id='N'>
1469
+ <h2>5.1 Introduction</h2>
1470
+ </div>
1471
+ <div id='O'>
1472
+ <h2>5.2 Clause 4.2</h2>
1473
+ </div>
1474
+ </div>
1475
+ <br/>
1476
+ <div id='P' class='Section3'>
1477
+ <h1 class='Annex'>
1478
+ <b>附件A</b>
1479
+ <br/>
1480
+ (规范性附录)
1481
+ <br/>
1482
+ <br/>
1483
+ <b>Annex</b>
1484
+ </h1>
1485
+ <div id='Q'>
1486
+ <h2>A.1 Annex A.1</h2>
1487
+ <div id='Q1'>
1488
+ <h3>A.1.1 Annex A.1a</h3>
1489
+ </div>
1490
+ </div>
1491
+ <div id='Q2'>
1492
+ <h2>附录1 An Appendix</h2>
1493
+ </div>
1494
+ </div>
1495
+ <br/>
1496
+ <div>
1497
+ <h1 class='Section3'>Bibliography</h1>
1498
+ <div>
1499
+ <h2 class='Section3'>Bibliography Subsection</h2>
1500
+ </div>
1501
+ </div>
1502
+ </div>
1503
+ </body>
1504
+ </html>
1342
1505
  OUTPUT
1343
1506
  expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1344
1507
  .convert("test", input, true))