isodoc 2.0.8.2 → 2.1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +1 -1
  3. data/isodoc.gemspec +5 -3
  4. data/lib/isodoc/convert.rb +1 -1
  5. data/lib/isodoc/function/blocks.rb +0 -39
  6. data/lib/isodoc/function/blocks_example_note.rb +36 -1
  7. data/lib/isodoc/function/inline.rb +4 -0
  8. data/lib/isodoc/function/references.rb +2 -15
  9. data/lib/isodoc/function/section.rb +5 -0
  10. data/lib/isodoc/function/to_word_html.rb +7 -11
  11. data/lib/isodoc/html_function/postprocess.rb +16 -2
  12. data/lib/isodoc/metadata.rb +2 -1
  13. data/lib/isodoc/presentation_function/bibdata.rb +30 -4
  14. data/lib/isodoc/presentation_function/block.rb +13 -1
  15. data/lib/isodoc/presentation_function/section.rb +36 -0
  16. data/lib/isodoc/presentation_xml_convert.rb +7 -2
  17. data/lib/isodoc/version.rb +1 -1
  18. data/lib/isodoc/word_function/postprocess.rb +3 -4
  19. data/lib/isodoc/word_function/postprocess_cover.rb +14 -0
  20. data/lib/isodoc/word_function/table.rb +12 -10
  21. data/lib/isodoc/xref/xref_anchor.rb +1 -1
  22. data/lib/isodoc/xref/xref_counter.rb +4 -1
  23. data/lib/isodoc/xref/xref_gen_seq.rb +3 -3
  24. data/lib/isodoc/xref/xref_sect_gen.rb +34 -36
  25. data/lib/isodoc/xref.rb +19 -8
  26. data/lib/isodoc-yaml/i18n-ar.yaml +9 -0
  27. data/lib/isodoc-yaml/i18n-de.yaml +13 -0
  28. data/lib/isodoc-yaml/i18n-en.yaml +5 -0
  29. data/lib/isodoc-yaml/i18n-es.yaml +11 -0
  30. data/lib/isodoc-yaml/i18n-fr.yaml +12 -1
  31. data/lib/isodoc-yaml/i18n-ru.yaml +13 -0
  32. data/lib/isodoc-yaml/i18n-zh-Hans.yaml +5 -0
  33. data/lib/relaton/render/config.yml +4 -0
  34. data/lib/relaton/render/general.rb +35 -0
  35. data/spec/assets/i18n.yaml +6 -0
  36. data/spec/isodoc/blocks_spec.rb +249 -61
  37. data/spec/isodoc/i18n_spec.rb +266 -197
  38. data/spec/isodoc/inline_spec.rb +80 -106
  39. data/spec/isodoc/metadata_spec.rb +5 -3
  40. data/spec/isodoc/postproc_spec.rb +539 -397
  41. data/spec/isodoc/ref_spec.rb +52 -98
  42. data/spec/isodoc/section_spec.rb +4 -4
  43. data/spec/isodoc/xref_numbering_spec.rb +31 -0
  44. metadata +30 -22
  45. data/lib/isodoc/base_style/all.css +0 -227
  46. data/lib/isodoc/base_style/blocks.css +0 -0
  47. data/lib/isodoc/base_style/coverpage.css +0 -0
  48. data/lib/isodoc/base_style/defaults.css +0 -0
  49. data/lib/isodoc/base_style/metanorma_word.css +0 -47
  50. data/lib/isodoc/base_style/nav.css +0 -0
  51. data/lib/isodoc/base_style/reset.css +0 -125
  52. data/lib/isodoc/base_style/typography.css +0 -0
@@ -90,13 +90,13 @@ RSpec.describe IsoDoc do
90
90
  <language current="true">en</language>
91
91
  <script current="true">Latn</script>
92
92
  <status>
93
- <stage language="">published</stage>
93
+ <stage>published</stage>
94
94
  </status>
95
95
  <copyright>
96
96
  <from>2020</from>
97
97
  </copyright>
98
98
  <ext>
99
- <doctype language="">article</doctype>
99
+ <doctype>article</doctype>
100
100
  </ext>
101
101
  </bibdata>
102
102
  <sections>
@@ -247,6 +247,9 @@ RSpec.describe IsoDoc do
247
247
  <iso-standard xmlns="http://riboseinc.com/isoxml">
248
248
  <preface><foreword>
249
249
  <note id="A" keep-with-next="true" keep-lines-together="true">
250
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83e">These results are based on a study carried out on three different types of kernel.</p>
251
+ </note>
252
+ <note id="B" keep-with-next="true" keep-lines-together="true" notag="true" unnumbered="true">
250
253
  <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
251
254
  </note>
252
255
  </foreword></preface>
@@ -257,13 +260,19 @@ RSpec.describe IsoDoc do
257
260
  <iso-standard xmlns='http://riboseinc.com/isoxml' type="presentation">
258
261
  <preface>
259
262
  <foreword displayorder="1">
260
- <note id='A' keep-with-next='true' keep-lines-together='true'>
261
- <name>NOTE</name>
262
- <p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
263
- These results are based on a study carried out on three different
264
- types of kernel.
265
- </p>
266
- </note>
263
+ <note id='A' keep-with-next='true' keep-lines-together='true'>
264
+ <name>NOTE 1</name>
265
+ <p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83e'>
266
+ These results are based on a study carried out on three different
267
+ types of kernel.
268
+ </p>
269
+ </note>
270
+ <note id='B' keep-with-next='true' keep-lines-together='true' notag='true' unnumbered='true'>
271
+ <p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
272
+ These results are based on a study carried out on three different
273
+ types of kernel.
274
+ </p>
275
+ </note>
267
276
  </foreword>
268
277
  </preface>
269
278
  </iso-standard>
@@ -273,10 +282,20 @@ RSpec.describe IsoDoc do
273
282
  <br/>
274
283
  <div>
275
284
  <h1 class="ForewordTitle">Foreword</h1>
276
- <div id="A" class="Note" style="page-break-after: avoid;page-break-inside: avoid;">
277
- <p><span class="note_label">NOTE</span>&#160; These results are based on a study carried out on three different types of kernel.</p>
278
- </div>
279
- </div>
285
+ <div id='A' class='Note' style='page-break-after: avoid;page-break-inside: avoid;'>
286
+ <p>
287
+ <span class='note_label'>NOTE 1</span>
288
+ &#160; These results are based on a study carried out on three
289
+ different types of kernel.#{' '}
290
+ </p>
291
+ </div>
292
+ <div id='B' class='Note' style='page-break-after: avoid;page-break-inside: avoid;'>
293
+ <p>
294
+ &#160; These results are based on a study carried out on three
295
+ different types of kernel.#{' '}
296
+ </p>
297
+ </div>
298
+ </div>
280
299
  <p class="zzSTDTitle1"/>
281
300
  </div>
282
301
  </body>
@@ -294,9 +313,22 @@ RSpec.describe IsoDoc do
294
313
  <p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
295
314
  <div>
296
315
  <h1 class="ForewordTitle">Foreword</h1>
297
- <div id="A" class="Note" style='page-break-after: avoid;page-break-inside: avoid;'>
298
- <p class="Note"><span class="note_label">NOTE</span><span style="mso-tab-count:1">&#160; </span>These results are based on a study carried out on three different types of kernel.</p>
299
- </div>
316
+ <div id='A' class='Note' style='page-break-after: avoid;page-break-inside: avoid;'>
317
+ <p class='Note'>
318
+ <span class='note_label'>NOTE 1</span>
319
+ <span style='mso-tab-count:1'>&#160; </span>
320
+ These results are based on a study carried out on three different
321
+ types of kernel.#{' '}
322
+ </p>
323
+ </div>
324
+ <div id='B' class='Note' style='page-break-after: avoid;page-break-inside: avoid;'>
325
+ <p class='Note'>
326
+ <span class='note_label'/>
327
+ <span style='mso-tab-count:1'>&#160; </span>
328
+ These results are based on a study carried out on three different
329
+ types of kernel.#{' '}
330
+ </p>
331
+ </div>
300
332
  </div>
301
333
  <p>&#160;</p>
302
334
  </div>
@@ -558,6 +590,101 @@ RSpec.describe IsoDoc do
558
590
  .convert("test", input, true)))).to be_equivalent_to xmlpp(doc)
559
591
  end
560
592
 
593
+ it "converts notes and admonitions intended for coverpage" do
594
+ input = <<~INPUT
595
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
596
+ <preface><foreword>
597
+ <note id="FB" coverpage="true" unnumbered="true"><p>XYZ</p></note>
598
+ <admonition id="FC" coverpage="true" unnumbered="true" type="warning"><p>XYZ</p></admonition>
599
+ </foreword></preface>
600
+ </iso-standard>
601
+ INPUT
602
+ presxml = <<~OUTPUT
603
+ <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
604
+ <preface>
605
+ <foreword displayorder='1'>
606
+ <note id='FB' coverpage='true' unnumbered='true'>
607
+ <name>NOTE</name>
608
+ <p>XYZ</p>
609
+ </note>
610
+ <admonition id='FC' coverpage='true' unnumbered='true' type='warning'>
611
+ <name>WARNING</name>
612
+ <p>XYZ</p>
613
+ </admonition>
614
+ </foreword>
615
+ </preface>
616
+ </iso-standard>
617
+ OUTPUT
618
+ html = <<~OUTPUT
619
+ #{HTML_HDR}
620
+ <br/>
621
+ <div>
622
+ <h1 class='ForewordTitle'>Foreword</h1>
623
+ <div id='FB' class='Note' coverpage='true'>
624
+ <p>
625
+ <span class='note_label'>NOTE</span>
626
+ &#160; XYZ
627
+ </p>
628
+ </div>
629
+ <div id='FC' class='Admonition' coverpage='true'>
630
+ <p class='AdmonitionTitle' style='text-align:center;'>WARNING</p>
631
+ <p>XYZ</p>
632
+ </div>
633
+ </div>
634
+ <p class='zzSTDTitle1'/>
635
+ </div>
636
+ </body>
637
+ </html>
638
+ OUTPUT
639
+ doc = <<~OUTPUT
640
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
641
+ <head>
642
+ <style/>
643
+ </head>
644
+ <body lang='EN-US' link='blue' vlink='#954F72'>
645
+ <div class='WordSection1'>
646
+ <p>&#160;</p>
647
+ </div>
648
+ <p>
649
+ <br clear='all' class='section'/>
650
+ </p>
651
+ <div class='WordSection2'>
652
+ <p>
653
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
654
+ </p>
655
+ <div>
656
+ <h1 class='ForewordTitle'>Foreword</h1>
657
+ <div id='FB' class='Note' coverpage='true'>
658
+ <p class='Note'>
659
+ <span class='note_label'>NOTE</span>
660
+ <span style='mso-tab-count:1'>&#160; </span>
661
+ XYZ
662
+ </p>
663
+ </div>
664
+ <div id='FC' class='Admonition' coverpage='true'>
665
+ <p class='AdmonitionTitle' style='text-align:center;'>WARNING</p>
666
+ <p>XYZ</p>
667
+ </div>
668
+ </div>
669
+ <p>&#160;</p>
670
+ </div>
671
+ <p>
672
+ <br clear='all' class='section'/>
673
+ </p>
674
+ <div class='WordSection3'>
675
+ <p class='zzSTDTitle1'/>
676
+ </div>
677
+ </body>
678
+ </html>
679
+ OUTPUT
680
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
681
+ .convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
682
+ expect(xmlpp(strip_guid(IsoDoc::HtmlConvert.new({})
683
+ .convert("test", presxml, true)))).to be_equivalent_to xmlpp(html)
684
+ expect(xmlpp(strip_guid(IsoDoc::WordConvert.new({})
685
+ .convert("test", presxml, true)))).to be_equivalent_to xmlpp(doc)
686
+ end
687
+
561
688
  it "numbers notes in tables and figures separately from notes outside them" do
562
689
  input = <<~INPUT
563
690
  <iso-standard xmlns="http://riboseinc.com/isoxml">
@@ -569,33 +696,33 @@ RSpec.describe IsoDoc do
569
696
  </iso-standard>
570
697
  INPUT
571
698
  output = <<~OUTPUT
572
- <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
573
- <preface>
574
- <foreword displayorder='1'>
575
- <figure id='F'>
576
- <name>Figure 1</name>
577
- <note id='FB'>
578
- <name>NOTE</name>
579
- <p>XYZ</p>
580
- </note>
581
- </figure>
582
- <table id='T'>
583
- <name>Table 1</name>
584
- <note id='TB'>
585
- <name>NOTE</name>
586
- <p>XYZ</p>
587
- </note>
588
- </table>
589
- <p id='A'>
590
- ABC
591
- <note id='B'>
592
- <name>NOTE</name>
593
- <p id='C'>XYZ</p>
594
- </note>
595
- </p>
596
- </foreword>
597
- </preface>
598
- </iso-standard>
699
+ <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
700
+ <preface>
701
+ <foreword displayorder='1'>
702
+ <figure id='F'>
703
+ <name>Figure 1</name>
704
+ <note id='FB'>
705
+ <name>NOTE</name>
706
+ <p>XYZ</p>
707
+ </note>
708
+ </figure>
709
+ <table id='T'>
710
+ <name>Table 1</name>
711
+ <note id='TB'>
712
+ <name>NOTE</name>
713
+ <p>XYZ</p>
714
+ </note>
715
+ </table>
716
+ <p id='A'>
717
+ ABC
718
+ <note id='B'>
719
+ <name>NOTE</name>
720
+ <p id='C'>XYZ</p>
721
+ </note>
722
+ </p>
723
+ </foreword>
724
+ </preface>
725
+ </iso-standard>
599
726
  OUTPUT
600
727
  expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
601
728
  .convert("test", input, true))).to be_equivalent_to xmlpp(output)
@@ -1281,26 +1408,47 @@ RSpec.describe IsoDoc do
1281
1408
  <preface><foreword>
1282
1409
  <admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a" type="caution" keep-with-next="true" keep-lines-together="true">
1283
1410
  <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1411
+ </admonition>
1412
+ <admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6b" type="caution" keep-with-next="true" keep-lines-together="true" notag="true">
1413
+ <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1414
+ </admonition>
1415
+ </foreword></preface>
1416
+ </iso-standard>
1417
+ INPUT
1418
+ presxml = <<~INPUT
1419
+ <iso-standard xmlns="http://riboseinc.com/isoxml" type='presentation'>
1420
+ <preface><foreword displayorder="1">
1421
+ <admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a" type="caution" keep-with-next="true" keep-lines-together="true">
1422
+ <name>CAUTION</name>
1423
+ <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1424
+ </admonition>
1425
+ <admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6b" type="caution" keep-with-next="true" keep-lines-together="true" notag="true">
1426
+ <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1284
1427
  </admonition>
1285
1428
  </foreword></preface>
1286
1429
  </iso-standard>
1287
1430
  INPUT
1288
1431
  output = <<~OUTPUT
1289
1432
  #{HTML_HDR}
1290
- <br/>
1291
- <div>
1292
- <h1 class="ForewordTitle">Foreword</h1>
1293
- <div class="Admonition" id='_70234f78-64e5-4dfc-8b6f-f3f037348b6a' style='page-break-after: avoid;page-break-inside: avoid;'><p class="AdmonitionTitle" style="text-align:center;">CAUTION</p>
1294
- <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1295
- </div>
1296
- </div>
1297
- <p class="zzSTDTitle1"/>
1298
- </div>
1299
- </body>
1300
- </html>
1433
+ <br/>
1434
+ <div>
1435
+ <h1 class="ForewordTitle">Foreword</h1>
1436
+ <div class="Admonition" id='_70234f78-64e5-4dfc-8b6f-f3f037348b6a' style='page-break-after: avoid;page-break-inside: avoid;'><p class="AdmonitionTitle" style="text-align:center;">CAUTION</p>
1437
+ <p id='_e94663cc-2473-4ccc-9a72-983a74d989f2'>Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1438
+ </div>
1439
+ <div id='_70234f78-64e5-4dfc-8b6f-f3f037348b6b' class='Admonition' style='page-break-after: avoid;page-break-inside: avoid;'>
1440
+ <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1441
+ </div>
1442
+ </div>
1443
+ <p class="zzSTDTitle1"/>
1444
+ </div>
1445
+ </body>
1446
+ </html>
1301
1447
  OUTPUT
1448
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
1449
+ .convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
1302
1450
  expect(xmlpp(IsoDoc::HtmlConvert.new({})
1303
- .convert("test", input, true))).to be_equivalent_to xmlpp(output)
1451
+ .convert("test", presxml, true))).to be_equivalent_to xmlpp(output)
1304
1452
  end
1305
1453
 
1306
1454
  it "processes admonitions with titles" do
@@ -1310,6 +1458,24 @@ RSpec.describe IsoDoc do
1310
1458
  <admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a" type="caution">
1311
1459
  <name>Title</name>
1312
1460
  <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1461
+ </admonition>
1462
+ <admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6b" type="caution" notag="true">
1463
+ <name>Title</name>
1464
+ <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1465
+ </admonition>
1466
+ </foreword></preface>
1467
+ </iso-standard>
1468
+ INPUT
1469
+ presxml = <<~INPUT
1470
+ <iso-standard xmlns="http://riboseinc.com/isoxml" type='presentation'>
1471
+ <preface><foreword displayorder="1">
1472
+ <admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a" type="caution">
1473
+ <name>Title</name>
1474
+ <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1475
+ </admonition>
1476
+ <admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6b" type="caution" notag="true">
1477
+ <name>Title</name>
1478
+ <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1313
1479
  </admonition>
1314
1480
  </foreword></preface>
1315
1481
  </iso-standard>
@@ -1319,7 +1485,12 @@ RSpec.describe IsoDoc do
1319
1485
  <br/>
1320
1486
  <div>
1321
1487
  <h1 class="ForewordTitle">Foreword</h1>
1322
- <div class="Admonition" id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a"><p class="AdmonitionTitle" style="text-align:center;">Title</p>
1488
+ <div class="Admonition" id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a">
1489
+ <p class='AdmonitionTitle' style='text-align:center;'>Title</p>
1490
+ <p id='_e94663cc-2473-4ccc-9a72-983a74d989f2'>Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1491
+ </div>
1492
+ <div id='_70234f78-64e5-4dfc-8b6f-f3f037348b6b' class='Admonition'>
1493
+ <p class='AdmonitionTitle' style='text-align:center;'>Title</p>
1323
1494
  <p id="_e94663cc-2473-4ccc-9a72-983a74d989f2">Only use paddy or parboiled rice for the determination of husked rice yield.</p>
1324
1495
  </div>
1325
1496
  </div>
@@ -1328,8 +1499,10 @@ RSpec.describe IsoDoc do
1328
1499
  </body>
1329
1500
  </html>
1330
1501
  OUTPUT
1502
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
1503
+ .convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
1331
1504
  expect(xmlpp(IsoDoc::HtmlConvert.new({})
1332
- .convert("test", input, true))).to be_equivalent_to xmlpp(output)
1505
+ .convert("test", presxml, true))).to be_equivalent_to xmlpp(output)
1333
1506
  end
1334
1507
 
1335
1508
  it "processes formulae" do
@@ -1731,7 +1904,20 @@ RSpec.describe IsoDoc do
1731
1904
  </foreword></preface>
1732
1905
  <bibliography><references id="_bibliography" obligation="informative" normative="false" displayorder='2'>
1733
1906
  <title depth='1'>Bibliography</title>
1734
- <bibitem id="rfc2616" type="standard"> <fetched>2020-03-27</fetched> <title format="text/plain" language="en" script="Latn">Hypertext Transfer Protocol — HTTP/1.1</title> <uri type="xml">https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2616.xml</uri> <uri type="src">https://www.rfc-editor.org/info/rfc2616</uri> <docidentifier type='metanorma-ordinal'>[1]</docidentifier> <docidentifier type="IETF">IETF RFC 2616</docidentifier> <docidentifier type="IETF" scope="anchor">IETF RFC2616</docidentifier> <docidentifier type="DOI">DOI 10.17487/RFC2616</docidentifier> <date type="published"> <on>1999-06</on> </date> <contributor> <role type="author"/> <person> <name> <completename language="en">R. Fielding</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">J. Gettys</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">J. Mogul</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">H. Frystyk</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">L. Masinter</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">P. Leach</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">T. Berners-Lee</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <language>en</language> <script>Latn</script> <abstract format="text/plain" language="en" script="Latn">HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as “HTTP/1.1”, and is an update to RFC 2068. [STANDARDS-TRACK]</abstract> <series type="main"> <title format="text/plain" language="en" script="Latn">RFC</title> <number>2616</number> </series> <place>Fremont, CA</place></bibitem>
1907
+ <bibitem id="rfc2616" type="standard">
1908
+ <formattedref>
1909
+ R. FIELDING, J. GETTYS, J. MOGUL, H. FRYSTYK, L. MASINTER, P. LEACH and T. BERNERS-LEE.
1910
+ <em>Hypertext Transfer Protocol&#x2009;&#x2014;&#x2009;HTTP/1.1</em>
1911
+ . In: RFC. June 1999. Fremont, CA.
1912
+ <link target='https://www.rfc-editor.org/info/rfc2616'>https://www.rfc-editor.org/info/rfc2616</link>.
1913
+ </formattedref>
1914
+ <uri type='xml'>https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2616.xml</uri>
1915
+ <uri type='src'>https://www.rfc-editor.org/info/rfc2616</uri>
1916
+ <docidentifier type='metanorma-ordinal'>[1]</docidentifier>
1917
+ <docidentifier type='IETF'>IETF RFC 2616</docidentifier>
1918
+ <docidentifier type='IETF' scope='anchor'>IETF RFC2616</docidentifier>
1919
+ <docidentifier type='DOI'>DOI 10.17487/RFC2616</docidentifier>
1920
+ </bibitem>
1735
1921
  </references></bibliography>
1736
1922
  </iso-standard>
1737
1923
  OUTPUT
@@ -1770,8 +1956,10 @@ RSpec.describe IsoDoc do
1770
1956
  <div>
1771
1957
  <h1 class='Section3'>Bibliography</h1>
1772
1958
  <p id='rfc2616' class='Biblio'>
1773
- [1]&#160; IETF RFC 2616,
1959
+ [1]&#160; IETF RFC 2616, R. FIELDING, J. GETTYS, J. MOGUL, H. FRYSTYK, L. MASINTER, P. LEACH and T. BERNERS-LEE.
1774
1960
  <i>Hypertext Transfer Protocol&#8201;&#8212;&#8201;HTTP/1.1</i>
1961
+ . In: RFC. June 1999. Fremont, CA.
1962
+ <a href='https://www.rfc-editor.org/info/rfc2616'>https://www.rfc-editor.org/info/rfc2616</a>.
1775
1963
  </p>
1776
1964
  </div>
1777
1965
  </div>
@@ -2598,13 +2786,13 @@ RSpec.describe IsoDoc do
2598
2786
  <language current="true">en</language>
2599
2787
  <script current="true">Latn</script>
2600
2788
  <status>
2601
- <stage language="">published</stage>
2789
+ <stage>published</stage>
2602
2790
  </status>
2603
2791
  <copyright>
2604
2792
  <from>2021</from>
2605
2793
  </copyright>
2606
2794
  <ext>
2607
- <doctype language="">article</doctype>
2795
+ <doctype>article</doctype>
2608
2796
  </ext>
2609
2797
  </bibdata>
2610
2798
  <sections>