isodoc 1.2.7 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +14 -9
- data/README.adoc +1 -3
- data/isodoc.gemspec +1 -1
- data/lib/isodoc-yaml/i18n-en.yaml +56 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +64 -7
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +1 -0
- data/lib/isodoc/base_style/blocks.scss +2 -2
- data/lib/isodoc/base_style/typography.scss +1 -1
- data/lib/isodoc/convert.rb +13 -85
- data/lib/isodoc/css.rb +95 -0
- data/lib/isodoc/function/inline.rb +0 -33
- data/lib/isodoc/function/inline_simple.rb +10 -1
- data/lib/isodoc/function/lists.rb +2 -1
- data/lib/isodoc/function/references.rb +8 -13
- data/lib/isodoc/function/section.rb +1 -1
- data/lib/isodoc/function/table.rb +10 -0
- data/lib/isodoc/function/to_word_html.rb +2 -2
- data/lib/isodoc/gem_tasks.rb +4 -0
- data/lib/isodoc/html_function/html.rb +7 -0
- data/lib/isodoc/html_function/mathvariant_to_plain.rb +82 -0
- data/lib/isodoc/html_function/postprocess.rb +41 -20
- data/lib/isodoc/i18n.rb +15 -2
- data/lib/isodoc/metadata_contributor.rb +4 -3
- data/lib/isodoc/presentation_function/bibdata.rb +3 -3
- data/lib/isodoc/presentation_function/block.rb +14 -9
- data/lib/isodoc/presentation_function/inline.rb +126 -22
- data/lib/isodoc/presentation_function/section.rb +9 -0
- data/lib/isodoc/presentation_xml_convert.rb +5 -0
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_convert.rb +0 -20
- data/lib/isodoc/word_function/body.rb +12 -0
- data/lib/isodoc/word_function/postprocess.rb +38 -80
- data/lib/isodoc/word_function/postprocess_cover.rb +55 -0
- data/lib/isodoc/word_function/table.rb +10 -0
- data/lib/isodoc/xref.rb +1 -0
- data/lib/isodoc/xref/xref_counter.rb +20 -9
- data/lib/isodoc/xref/xref_gen.rb +20 -2
- data/lib/isodoc/xref/xref_sect_gen.rb +1 -1
- data/spec/assets/html.scss +14 -0
- data/spec/assets/i18n.yaml +7 -6
- data/spec/isodoc/blocks_spec.rb +2 -1
- data/spec/isodoc/cleanup_spec.rb +0 -1
- data/spec/isodoc/footnotes_spec.rb +4 -5
- data/spec/isodoc/i18n_spec.rb +23 -2
- data/spec/isodoc/inline_spec.rb +182 -202
- data/spec/isodoc/lists_spec.rb +1 -1
- data/spec/isodoc/metadata_spec.rb +3 -1
- data/spec/isodoc/postproc_spec.rb +472 -11
- data/spec/isodoc/presentation_xml_spec.rb +584 -1
- data/spec/isodoc/ref_spec.rb +325 -7
- data/spec/isodoc/table_spec.rb +28 -0
- data/spec/isodoc/xref_spec.rb +162 -17
- metadata +18 -16
data/spec/isodoc/ref_spec.rb
CHANGED
@@ -44,7 +44,7 @@ RSpec.describe IsoDoc do
|
|
44
44
|
<abbreviation>ISO</abbreviation>
|
45
45
|
</organization>
|
46
46
|
</contributor>
|
47
|
-
<note format="text/plain" type="
|
47
|
+
<note format="text/plain" type="Unpublished-Status" 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>
|
@@ -63,7 +63,7 @@ RSpec.describe IsoDoc do
|
|
63
63
|
</bibitem>
|
64
64
|
<bibitem id="ref1">
|
65
65
|
<formattedref format="application/x-isodoc+xml"><smallcap>Standard No I.C.C 167</smallcap>. <em>Determination of the protein content in cereal and cereal products for food and animal feeding stuffs according to the Dumas combustion method</em> (see <link target="http://www.icc.or.at"/>)</formattedref>
|
66
|
-
<docidentifier type="ICC">167</docidentifier>
|
66
|
+
<docidentifier type="ICC">ICC/167</docidentifier>
|
67
67
|
</bibitem>
|
68
68
|
<note><p>This is an annotation of ISO 20483:2013-2014</p></note>
|
69
69
|
<bibitem id="zip_ffs"><formattedref format="application/x-isodoc+xml">Title 5</formattedref><docidentifier type="metanorma">[5]</docidentifier></bibitem>
|
@@ -136,7 +136,7 @@ RSpec.describe IsoDoc do
|
|
136
136
|
<eref bibitemid='ISBN'>[1]</eref>
|
137
137
|
<eref bibitemid='ISSN'>[2]</eref>
|
138
138
|
<eref bibitemid='ISO16634'>ISO 16634:-- (all parts)</eref>
|
139
|
-
<eref bibitemid='ref1'>ICC
|
139
|
+
<eref bibitemid='ref1'>ICC/167</eref>
|
140
140
|
<eref bibitemid='ref10'>[10]</eref>
|
141
141
|
<eref bibitemid='ref12'>Citn</eref>
|
142
142
|
<eref bibitemid='zip_ffs'>[5]</eref>
|
@@ -181,7 +181,7 @@ RSpec.describe IsoDoc do
|
|
181
181
|
<abbreviation>ISO</abbreviation>
|
182
182
|
</organization>
|
183
183
|
</contributor>
|
184
|
-
<note format='text/plain' type='
|
184
|
+
<note format='text/plain' type='Unpublished-Status' reference='1'>Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
|
185
185
|
<extent type='part'>
|
186
186
|
<referenceFrom>all</referenceFrom>
|
187
187
|
</extent>
|
@@ -213,7 +213,7 @@ RSpec.describe IsoDoc do
|
|
213
213
|
<link target='http://www.icc.or.at'/>
|
214
214
|
)
|
215
215
|
</formattedref>
|
216
|
-
<docidentifier type='ICC'>167</docidentifier>
|
216
|
+
<docidentifier type='ICC'>ICC/167</docidentifier>
|
217
217
|
</bibitem>
|
218
218
|
<note>
|
219
219
|
<name>NOTE</name>
|
@@ -309,7 +309,7 @@ RSpec.describe IsoDoc do
|
|
309
309
|
<a href='#ISBN'>[1]</a>
|
310
310
|
<a href='#ISSN'>[2]</a>
|
311
311
|
<a href='#ISO16634'>ISO 16634:-- (all parts)</a>
|
312
|
-
<a href='#ref1'>ICC
|
312
|
+
<a href='#ref1'>ICC/167</a>
|
313
313
|
<a href='#ref10'>[10]</a>
|
314
314
|
<a href='#ref12'>Citn</a>
|
315
315
|
<a href='#zip_ffs'>[5]</a>
|
@@ -342,7 +342,7 @@ RSpec.describe IsoDoc do
|
|
342
342
|
<i>Cereals and pulses</i>
|
343
343
|
</p>
|
344
344
|
<p id='ref1' class='NormRef'>
|
345
|
-
ICC
|
345
|
+
ICC/167,
|
346
346
|
<span style='font-variant:small-caps;'>Standard No I.C.C 167</span>
|
347
347
|
.
|
348
348
|
<i>
|
@@ -424,4 +424,322 @@ RSpec.describe IsoDoc do
|
|
424
424
|
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
425
425
|
end
|
426
426
|
|
427
|
+
|
428
|
+
it "processes hidden references sections in Relaton bibliographies" do
|
429
|
+
presxml = <<~PRESXML
|
430
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml' type="presentation">
|
431
|
+
<bibdata>
|
432
|
+
<language current="true">en</language>
|
433
|
+
</bibdata>
|
434
|
+
<preface>
|
435
|
+
<foreword>
|
436
|
+
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
437
|
+
<eref bibitemid='ISO712'>[110]</eref>
|
438
|
+
<eref bibitemid='ISBN'>[1]</eref>
|
439
|
+
<eref bibitemid='ISSN'>[2]</eref>
|
440
|
+
<eref bibitemid='ISO16634'>ISO 16634:-- (all parts)</eref>
|
441
|
+
<eref bibitemid='ref1'>ICC/167</eref>
|
442
|
+
<eref bibitemid='ref10'>[10]</eref>
|
443
|
+
<eref bibitemid='ref12'>Citn</eref>
|
444
|
+
<eref bibitemid='zip_ffs'>[5]</eref>
|
445
|
+
</p>
|
446
|
+
</foreword>
|
447
|
+
</preface>
|
448
|
+
<bibliography>
|
449
|
+
<references id='_normative_references' obligation='informative' normative='true' hidden="true">
|
450
|
+
<title depth='1'>1.<tab/>Normative References</title>
|
451
|
+
<p>
|
452
|
+
The following documents are referred to in the text in such a way that
|
453
|
+
some or all of their content constitutes requirements of this document.
|
454
|
+
For dated references, only the edition cited applies. For undated
|
455
|
+
references, the latest edition of the referenced document (including any
|
456
|
+
amendments) applies.
|
457
|
+
</p>
|
458
|
+
<bibitem id='ISO712' type='standard'>
|
459
|
+
<title format='text/plain'>Cereals or cereal products</title>
|
460
|
+
<title type='main' format='text/plain'>Cereals and cereal products</title>
|
461
|
+
<docidentifier type='ISO'>ISO 712</docidentifier>
|
462
|
+
<docidentifier type='metanorma'>[110]</docidentifier>
|
463
|
+
<contributor>
|
464
|
+
<role type='publisher'/>
|
465
|
+
<organization>
|
466
|
+
<name>International Organization for Standardization</name>
|
467
|
+
</organization>
|
468
|
+
</contributor>
|
469
|
+
</bibitem>
|
470
|
+
<bibitem id='ISO16634' type='standard'>
|
471
|
+
<title language='x' format='text/plain'>
|
472
|
+
Cereals, pulses, milled cereal products, xxxx, oilseeds and animal
|
473
|
+
feeding stuffs
|
474
|
+
</title>
|
475
|
+
<title language='en' format='text/plain'>Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</title>
|
476
|
+
<docidentifier type='ISO'>ISO 16634:-- (all parts)</docidentifier>
|
477
|
+
<date type='published'>
|
478
|
+
<on>--</on>
|
479
|
+
</date>
|
480
|
+
<contributor>
|
481
|
+
<role type='publisher'/>
|
482
|
+
<organization>
|
483
|
+
<abbreviation>ISO</abbreviation>
|
484
|
+
</organization>
|
485
|
+
</contributor>
|
486
|
+
<note format='text/plain' type='Unpublished-Status' reference='1'>Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
|
487
|
+
<extent type='part'>
|
488
|
+
<referenceFrom>all</referenceFrom>
|
489
|
+
</extent>
|
490
|
+
</bibitem>
|
491
|
+
<bibitem id='ISO20483' type='standard'>
|
492
|
+
<title format='text/plain'>Cereals and pulses</title>
|
493
|
+
<docidentifier type='ISO'>ISO 20483:2013-2014</docidentifier>
|
494
|
+
<date type='published'>
|
495
|
+
<from>2013</from>
|
496
|
+
<to>2014</to>
|
497
|
+
</date>
|
498
|
+
<contributor>
|
499
|
+
<role type='publisher'/>
|
500
|
+
<organization>
|
501
|
+
<name>International Organization for Standardization</name>
|
502
|
+
</organization>
|
503
|
+
</contributor>
|
504
|
+
</bibitem>
|
505
|
+
<bibitem id='ref1'>
|
506
|
+
<formattedref format='application/x-isodoc+xml'>
|
507
|
+
<smallcap>Standard No I.C.C 167</smallcap>
|
508
|
+
.
|
509
|
+
<em>
|
510
|
+
Determination of the protein content in cereal and cereal products
|
511
|
+
for food and animal feeding stuffs according to the Dumas combustion
|
512
|
+
method
|
513
|
+
</em>
|
514
|
+
(see
|
515
|
+
<link target='http://www.icc.or.at'/>
|
516
|
+
)
|
517
|
+
</formattedref>
|
518
|
+
<docidentifier type='ICC'>ICC/167</docidentifier>
|
519
|
+
</bibitem>
|
520
|
+
<note>
|
521
|
+
<name>NOTE</name>
|
522
|
+
<p>This is an annotation of ISO 20483:2013-2014</p>
|
523
|
+
</note>
|
524
|
+
<bibitem id='zip_ffs'>
|
525
|
+
<formattedref format='application/x-isodoc+xml'>Title 5</formattedref>
|
526
|
+
<docidentifier type='metanorma'>[5]</docidentifier>
|
527
|
+
</bibitem>
|
528
|
+
</references>
|
529
|
+
<references id='_bibliography' obligation='informative' normative='false' hidden="true">
|
530
|
+
<title depth="1">Bibliography</title>
|
531
|
+
<bibitem id='ISBN' type='ISBN'>
|
532
|
+
<title format='text/plain'>Chemicals for analytical laboratory use</title>
|
533
|
+
<docidentifier type='ISBN'>ISBN</docidentifier>
|
534
|
+
<docidentifier type='metanorma'>[1]</docidentifier>
|
535
|
+
<contributor>
|
536
|
+
<role type='publisher'/>
|
537
|
+
<organization>
|
538
|
+
<abbreviation>ISBN</abbreviation>
|
539
|
+
</organization>
|
540
|
+
</contributor>
|
541
|
+
</bibitem>
|
542
|
+
<bibitem id='ISSN' type='ISSN'>
|
543
|
+
<title format='text/plain'>Instruments for analytical laboratory use</title>
|
544
|
+
<docidentifier type='ISSN'>ISSN</docidentifier>
|
545
|
+
<docidentifier type='metanorma'>[2]</docidentifier>
|
546
|
+
<contributor>
|
547
|
+
<role type='publisher'/>
|
548
|
+
<organization>
|
549
|
+
<abbreviation>ISSN</abbreviation>
|
550
|
+
</organization>
|
551
|
+
</contributor>
|
552
|
+
</bibitem>
|
553
|
+
<note>
|
554
|
+
<name>NOTE</name>
|
555
|
+
<p>This is an annotation of document ISSN.</p>
|
556
|
+
</note>
|
557
|
+
<note>
|
558
|
+
<name>NOTE</name>
|
559
|
+
<p>This is another annotation of document ISSN.</p>
|
560
|
+
</note>
|
561
|
+
<bibitem id='ISO3696' type='standard'>
|
562
|
+
<title format='text/plain'>Water for analytical laboratory use</title>
|
563
|
+
<docidentifier type='ISO'>ISO 3696</docidentifier>
|
564
|
+
<contributor>
|
565
|
+
<role type='publisher'/>
|
566
|
+
<organization>
|
567
|
+
<abbreviation>ISO</abbreviation>
|
568
|
+
</organization>
|
569
|
+
</contributor>
|
570
|
+
</bibitem>
|
571
|
+
<bibitem id='ref10'>
|
572
|
+
<formattedref format='application/x-isodoc+xml'>
|
573
|
+
<smallcap>Standard No I.C.C 167</smallcap>
|
574
|
+
.
|
575
|
+
<em>
|
576
|
+
Determination of the protein content in cereal and cereal products
|
577
|
+
for food and animal feeding stuffs according to the Dumas combustion
|
578
|
+
method
|
579
|
+
</em>
|
580
|
+
(see
|
581
|
+
<link target='http://www.icc.or.at'/>
|
582
|
+
)
|
583
|
+
</formattedref>
|
584
|
+
<docidentifier type='metanorma'>[10]</docidentifier>
|
585
|
+
</bibitem>
|
586
|
+
<bibitem id='ref11'>
|
587
|
+
<title>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>
|
588
|
+
<docidentifier type='IETF'>RFC 10</docidentifier>
|
589
|
+
</bibitem>
|
590
|
+
<bibitem id='ref12'>
|
591
|
+
<formattedref format='application/x-isodoc+xml'>
|
592
|
+
CitationWorks. 2019.
|
593
|
+
<em>How to cite a reference</em>
|
594
|
+
.
|
595
|
+
</formattedref>
|
596
|
+
<docidentifier type='metanorma'>[Citn]</docidentifier>
|
597
|
+
<docidentifier type='IETF'>RFC 20</docidentifier>
|
598
|
+
</bibitem>
|
599
|
+
</references>
|
600
|
+
</bibliography>
|
601
|
+
</iso-standard>
|
602
|
+
PRESXML
|
603
|
+
|
604
|
+
html = <<~OUTPUT
|
605
|
+
#{HTML_HDR}
|
606
|
+
<br/>
|
607
|
+
<div>
|
608
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
609
|
+
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
610
|
+
<a href='#ISO712'>[110]</a>
|
611
|
+
<a href='#ISBN'>[1]</a>
|
612
|
+
<a href='#ISSN'>[2]</a>
|
613
|
+
<a href='#ISO16634'>ISO 16634:-- (all parts)</a>
|
614
|
+
<a href='#ref1'>ICC/167</a>
|
615
|
+
<a href='#ref10'>[10]</a>
|
616
|
+
<a href='#ref12'>Citn</a>
|
617
|
+
<a href='#zip_ffs'>[5]</a>
|
618
|
+
</p>
|
619
|
+
</div>
|
620
|
+
<p class='zzSTDTitle1'/>
|
621
|
+
</div>
|
622
|
+
</body>
|
623
|
+
</html>
|
624
|
+
|
625
|
+
OUTPUT
|
626
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
627
|
+
end
|
628
|
+
|
629
|
+
it "processes hidden references sections in Relaton bibliographies" do
|
630
|
+
presxml = <<~PRESXML
|
631
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml' type="presentation">
|
632
|
+
<bibdata>
|
633
|
+
<language current="true">en</language>
|
634
|
+
</bibdata>
|
635
|
+
<preface>
|
636
|
+
<foreword>
|
637
|
+
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
638
|
+
<eref bibitemid='ISO712'>[110]</eref>
|
639
|
+
<eref bibitemid='ISBN'>[1]</eref>
|
640
|
+
<eref bibitemid='ISSN'>[2]</eref>
|
641
|
+
<eref bibitemid='ISO16634'>ISO 16634:-- (all parts)</eref>
|
642
|
+
<eref bibitemid='ref1'>ICC/167</eref>
|
643
|
+
<eref bibitemid='ref10'>[10]</eref>
|
644
|
+
<eref bibitemid='ref12'>Citn</eref>
|
645
|
+
<eref bibitemid='zip_ffs'>[5]</eref>
|
646
|
+
</p>
|
647
|
+
</foreword>
|
648
|
+
</preface>
|
649
|
+
<bibliography>
|
650
|
+
<references id='_normative_references' obligation='informative' normative='true'>
|
651
|
+
<title depth='1'>1.<tab/>Normative References</title>
|
652
|
+
<p>
|
653
|
+
The following documents are referred to in the text in such a way that
|
654
|
+
some or all of their content constitutes requirements of this document.
|
655
|
+
For dated references, only the edition cited applies. For undated
|
656
|
+
references, the latest edition of the referenced document (including any
|
657
|
+
amendments) applies.
|
658
|
+
</p>
|
659
|
+
<bibitem id='ISO712' type='standard' hidden="true">
|
660
|
+
<title format='text/plain'>Cereals or cereal products</title>
|
661
|
+
<title type='main' format='text/plain'>Cereals and cereal products</title>
|
662
|
+
<docidentifier type='ISO'>ISO 712</docidentifier>
|
663
|
+
<docidentifier type='metanorma'>[110]</docidentifier>
|
664
|
+
<contributor>
|
665
|
+
<role type='publisher'/>
|
666
|
+
<organization>
|
667
|
+
<name>International Organization for Standardization</name>
|
668
|
+
</organization>
|
669
|
+
</contributor>
|
670
|
+
</bibitem>
|
671
|
+
<bibitem id='ISO16634' type='standard'>
|
672
|
+
<title language='x' format='text/plain'>
|
673
|
+
Cereals, pulses, milled cereal products, xxxx, oilseeds and animal
|
674
|
+
feeding stuffs
|
675
|
+
</title>
|
676
|
+
<title language='en' format='text/plain'>Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</title>
|
677
|
+
<docidentifier type='ISO'>ISO 16634:-- (all parts)</docidentifier>
|
678
|
+
<date type='published'>
|
679
|
+
<on>--</on>
|
680
|
+
</date>
|
681
|
+
<contributor>
|
682
|
+
<role type='publisher'/>
|
683
|
+
<organization>
|
684
|
+
<abbreviation>ISO</abbreviation>
|
685
|
+
</organization>
|
686
|
+
</contributor>
|
687
|
+
<note format='text/plain' type='Unpublished-Status' reference='1'>Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
|
688
|
+
<extent type='part'>
|
689
|
+
<referenceFrom>all</referenceFrom>
|
690
|
+
</extent>
|
691
|
+
</bibitem>
|
692
|
+
</references></bibliography></iso-standard>
|
693
|
+
PRESXML
|
694
|
+
|
695
|
+
html = <<~OUTPUT
|
696
|
+
#{HTML_HDR}
|
697
|
+
<br/>
|
698
|
+
<div>
|
699
|
+
<h1 class='ForewordTitle'>Foreword</h1>
|
700
|
+
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
701
|
+
<a href='#ISO712'>[110]</a>
|
702
|
+
<a href='#ISBN'>[1]</a>
|
703
|
+
<a href='#ISSN'>[2]</a>
|
704
|
+
<a href='#ISO16634'>ISO 16634:-- (all parts)</a>
|
705
|
+
<a href='#ref1'>ICC/167</a>
|
706
|
+
<a href='#ref10'>[10]</a>
|
707
|
+
<a href='#ref12'>Citn</a>
|
708
|
+
<a href='#zip_ffs'>[5]</a>
|
709
|
+
</p>
|
710
|
+
</div>
|
711
|
+
<p class='zzSTDTitle1'/>
|
712
|
+
<div>
|
713
|
+
<h1>1.  Normative References</h1>
|
714
|
+
<p>
|
715
|
+
The following documents are referred to in the text in such a way
|
716
|
+
that some or all of their content constitutes requirements of this
|
717
|
+
document. For dated references, only the edition cited applies. For
|
718
|
+
undated references, the latest edition of the referenced document
|
719
|
+
(including any amendments) applies.
|
720
|
+
</p>
|
721
|
+
<p id='ISO16634' class='NormRef'>
|
722
|
+
ISO 16634:-- (all parts)
|
723
|
+
<a class='FootnoteRef' href='#fn:1'>
|
724
|
+
<sup>1</sup>
|
725
|
+
</a>
|
726
|
+
,
|
727
|
+
<i>Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</i>
|
728
|
+
</p>
|
729
|
+
</div>
|
730
|
+
<aside id='fn:1' class='footnote'>
|
731
|
+
<p>Under preparation. (Stage at the time of publication ISO/DIS 16634)</p>
|
732
|
+
</aside>
|
733
|
+
|
734
|
+
</div>
|
735
|
+
</body>
|
736
|
+
</html>
|
737
|
+
|
738
|
+
OUTPUT
|
739
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
740
|
+
end
|
741
|
+
|
742
|
+
|
427
743
|
end
|
744
|
+
|
745
|
+
|
data/spec/isodoc/table_spec.rb
CHANGED
@@ -8,6 +8,13 @@ RSpec.describe IsoDoc do
|
|
8
8
|
<foreword>
|
9
9
|
<table id="tableD-1" alt="tool tip" summary="long desc" width="70%" keep-with-next="true" keep-lines-together="true">
|
10
10
|
<name>Repeatability and reproducibility of <em>husked</em> rice yield<fn reference="1"><p>X</p></fn></name>
|
11
|
+
<colgroup>
|
12
|
+
<col width="30%"/>
|
13
|
+
<col width="20%"/>
|
14
|
+
<col width="20%"/>
|
15
|
+
<col width="20%"/>
|
16
|
+
<col width="10%"/>
|
17
|
+
</colgroup>
|
11
18
|
<thead>
|
12
19
|
<tr>
|
13
20
|
<td rowspan="2" align="left">Description</td>
|
@@ -77,6 +84,13 @@ RSpec.describe IsoDoc do
|
|
77
84
|
<p>X</p>
|
78
85
|
</fn>
|
79
86
|
</name>
|
87
|
+
<colgroup>
|
88
|
+
<col width='30%'/>
|
89
|
+
<col width='20%'/>
|
90
|
+
<col width='20%'/>
|
91
|
+
<col width='20%'/>
|
92
|
+
<col width='10%'/>
|
93
|
+
</colgroup>
|
80
94
|
<thead>
|
81
95
|
<tr>
|
82
96
|
<td rowspan='2' align='left'>Description</td>
|
@@ -165,6 +179,13 @@ html = <<~OUTPUT
|
|
165
179
|
<caption>
|
166
180
|
<span style="display:none">long desc</span>
|
167
181
|
</caption>
|
182
|
+
<colgroup>
|
183
|
+
<col style='width: 30%;'/>
|
184
|
+
<col style='width: 20%;'/>
|
185
|
+
<col style='width: 20%;'/>
|
186
|
+
<col style='width: 20%;'/>
|
187
|
+
<col style='width: 10%;'/>
|
188
|
+
</colgroup>
|
168
189
|
<thead>
|
169
190
|
<tr>
|
170
191
|
<td rowspan="2" style="text-align:left;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;" scope="col">Description</td>
|
@@ -259,6 +280,13 @@ html = <<~OUTPUT
|
|
259
280
|
</p>
|
260
281
|
<div align='center' class='table_container'>
|
261
282
|
<table id='tableD-1' class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;page-break-after: avoid;page-break-inside: avoid;' title='tool tip' summary='long desc' width='70%'>
|
283
|
+
<colgroup>
|
284
|
+
<col width='30%'/>
|
285
|
+
<col width='20%'/>
|
286
|
+
<col width='20%'/>
|
287
|
+
<col width='20%'/>
|
288
|
+
<col width='10%'/>
|
289
|
+
</colgroup>
|
262
290
|
<thead>
|
263
291
|
<tr>
|
264
292
|
<td rowspan='2' align='left' style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>Description</td>
|
data/spec/isodoc/xref_spec.rb
CHANGED
@@ -2313,7 +2313,7 @@ OUTPUT
|
|
2313
2313
|
<li id="N1"><p>A</p></li>
|
2314
2314
|
</ol>
|
2315
2315
|
<clause id="xyz"><title>Preparatory</title>
|
2316
|
-
<ol id="N02">
|
2316
|
+
<ol id="N02" type="arabic">
|
2317
2317
|
<li id="N2"><p>A</p></li>
|
2318
2318
|
</ol>
|
2319
2319
|
</clause>
|
@@ -2321,17 +2321,17 @@ OUTPUT
|
|
2321
2321
|
</preface>
|
2322
2322
|
<sections>
|
2323
2323
|
<clause id="scope" type="scope"><title>Scope</title>
|
2324
|
-
<ol id="N0">
|
2324
|
+
<ol id="N0" type="roman">
|
2325
2325
|
<li id="N"><p>A</p></li>
|
2326
2326
|
</ol>
|
2327
2327
|
</clause>
|
2328
2328
|
<terms id="terms"/>
|
2329
2329
|
<clause id="widgets"><title>Widgets</title>
|
2330
2330
|
<clause id="widgets1">
|
2331
|
-
<ol id="note1l">
|
2331
|
+
<ol id="note1l" type="alphabet">
|
2332
2332
|
<li id="note1"><p>A</p></li>
|
2333
2333
|
</ol>
|
2334
|
-
<ol id="note2l">
|
2334
|
+
<ol id="note2l" type="roman_upper">
|
2335
2335
|
<li id="note2"><p>A</p></li>
|
2336
2336
|
</ol>
|
2337
2337
|
</clause>
|
@@ -2339,12 +2339,12 @@ OUTPUT
|
|
2339
2339
|
</sections>
|
2340
2340
|
<annex id="annex1">
|
2341
2341
|
<clause id="annex1a">
|
2342
|
-
<ol id="ANl">
|
2342
|
+
<ol id="ANl" type="alphabet_upper">
|
2343
2343
|
<li id="AN"><p>A</p></li>
|
2344
2344
|
</ol>
|
2345
2345
|
</clause>
|
2346
2346
|
<clause id="annex1b">
|
2347
|
-
<ol id="Anote1l">
|
2347
|
+
<ol id="Anote1l" type="roman" start="4">
|
2348
2348
|
<li id="Anote1"><p>A</p></li>
|
2349
2349
|
</ol>
|
2350
2350
|
<ol id="Anote2l">
|
@@ -2360,12 +2360,12 @@ OUTPUT
|
|
2360
2360
|
<foreword>
|
2361
2361
|
<p>
|
2362
2362
|
<xref target='N1'>Introduction, a)</xref>
|
2363
|
-
<xref target='N2'>Preparatory,
|
2364
|
-
<xref target='N'>Clause 1,
|
2363
|
+
<xref target='N2'>Preparatory, 1)</xref>
|
2364
|
+
<xref target='N'>Clause 1, i)</xref>
|
2365
2365
|
<xref target='note1'>Clause 3.1, List 1 a)</xref>
|
2366
|
-
<xref target='note2'>Clause 3.1, List 2
|
2367
|
-
<xref target='AN'>Annex A.1,
|
2368
|
-
<xref target='Anote1'>Annex A.2, List 1
|
2366
|
+
<xref target='note2'>Clause 3.1, List 2 I)</xref>
|
2367
|
+
<xref target='AN'>Annex A.1, A)</xref>
|
2368
|
+
<xref target='Anote1'>Annex A.2, List 1 iv)</xref>
|
2369
2369
|
<xref target='Anote2'>Annex A.2, List 2 a)</xref>
|
2370
2370
|
</p>
|
2371
2371
|
</foreword>
|
@@ -2377,7 +2377,7 @@ OUTPUT
|
|
2377
2377
|
</ol>
|
2378
2378
|
<clause id='xyz'>
|
2379
2379
|
<title depth='2'>Preparatory</title>
|
2380
|
-
<ol id='N02'>
|
2380
|
+
<ol id='N02' type="arabic">
|
2381
2381
|
<li id='N2'>
|
2382
2382
|
<p>A</p>
|
2383
2383
|
</li>
|
@@ -2392,7 +2392,7 @@ OUTPUT
|
|
2392
2392
|
<tab/>
|
2393
2393
|
Scope
|
2394
2394
|
</title>
|
2395
|
-
<ol id='N0'>
|
2395
|
+
<ol id='N0' type="roman">
|
2396
2396
|
<li id='N'>
|
2397
2397
|
<p>A</p>
|
2398
2398
|
</li>
|
@@ -2408,12 +2408,12 @@ OUTPUT
|
|
2408
2408
|
Widgets
|
2409
2409
|
</title>
|
2410
2410
|
<clause id='widgets1'><title>3.1.</title>
|
2411
|
-
<ol id='note1l'>
|
2411
|
+
<ol id='note1l' type="alphabet">
|
2412
2412
|
<li id='note1'>
|
2413
2413
|
<p>A</p>
|
2414
2414
|
</li>
|
2415
2415
|
</ol>
|
2416
|
-
<ol id='note2l'>
|
2416
|
+
<ol id='note2l' type="roman_upper">
|
2417
2417
|
<li id='note2'>
|
2418
2418
|
<p>A</p>
|
2419
2419
|
</li>
|
@@ -2428,14 +2428,14 @@ OUTPUT
|
|
2428
2428
|
(informative)
|
2429
2429
|
</title>
|
2430
2430
|
<clause id='annex1a'><title>A.1.</title>
|
2431
|
-
<ol id='ANl'>
|
2431
|
+
<ol id='ANl' type="alphabet_upper">
|
2432
2432
|
<li id='AN'>
|
2433
2433
|
<p>A</p>
|
2434
2434
|
</li>
|
2435
2435
|
</ol>
|
2436
2436
|
</clause>
|
2437
2437
|
<clause id='annex1b'><title>A.2.</title>
|
2438
|
-
<ol id='Anote1l'>
|
2438
|
+
<ol id='Anote1l' type="roman" start="4">
|
2439
2439
|
<li id='Anote1'>
|
2440
2440
|
<p>A</p>
|
2441
2441
|
</li>
|
@@ -2547,6 +2547,151 @@ OUTPUT
|
|
2547
2547
|
OUTPUT
|
2548
2548
|
end
|
2549
2549
|
|
2550
|
+
it "cross-references bookmarks" do
|
2551
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2552
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
2553
|
+
<preface>
|
2554
|
+
<foreword>
|
2555
|
+
<p>
|
2556
|
+
<xref target="N1"/>
|
2557
|
+
<xref target="N2"/>
|
2558
|
+
<xref target="N"/>
|
2559
|
+
<xref target="note1"/>
|
2560
|
+
<xref target="note2"/>
|
2561
|
+
<xref target="AN"/>
|
2562
|
+
<xref target="Anote1"/>
|
2563
|
+
<xref target="Anote2"/>
|
2564
|
+
</p>
|
2565
|
+
</foreword>
|
2566
|
+
<introduction id="intro">
|
2567
|
+
<p id="N01">
|
2568
|
+
<bookmark id="N1"/>
|
2569
|
+
</p>
|
2570
|
+
<clause id="xyz"><title>Preparatory</title>
|
2571
|
+
<p id="N02" type="arabic">
|
2572
|
+
<bookmark id="N2"/>
|
2573
|
+
</p>
|
2574
|
+
</clause>
|
2575
|
+
</introduction>
|
2576
|
+
</preface>
|
2577
|
+
<sections>
|
2578
|
+
<clause id="scope" type="scope"><title>Scope</title>
|
2579
|
+
<p id="N0" type="roman">
|
2580
|
+
<bookmark id="N"/>
|
2581
|
+
</p>
|
2582
|
+
</clause>
|
2583
|
+
<terms id="terms"/>
|
2584
|
+
<clause id="widgets"><title>Widgets</title>
|
2585
|
+
<clause id="widgets1">
|
2586
|
+
<p id="note1l" type="alphabet">
|
2587
|
+
<bookmark id="note1"/>
|
2588
|
+
</p>
|
2589
|
+
<p id="note2l" type="roman_upper">
|
2590
|
+
<bookmark id="note2"/>
|
2591
|
+
</p>
|
2592
|
+
</clause>
|
2593
|
+
</clause>
|
2594
|
+
</sections>
|
2595
|
+
<annex id="annex1">
|
2596
|
+
<clause id="annex1a">
|
2597
|
+
<p id="ANl" type="alphabet_upper">
|
2598
|
+
<bookmark id="AN"/>
|
2599
|
+
</p>
|
2600
|
+
</clause>
|
2601
|
+
<clause id="annex1b">
|
2602
|
+
<p id="Anote1l" type="roman" start="4">
|
2603
|
+
<bookmark id="Anote1"/>
|
2604
|
+
</p>
|
2605
|
+
<p id="Anote2l">
|
2606
|
+
<bookmark id="Anote2"/>
|
2607
|
+
</p>
|
2608
|
+
</clause>
|
2609
|
+
</annex>
|
2610
|
+
</iso-standard>
|
2611
|
+
INPUT
|
2612
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
|
2613
|
+
<preface>
|
2614
|
+
<foreword>
|
2615
|
+
<p>
|
2616
|
+
<xref target='N1'>Introduction</xref>
|
2617
|
+
<xref target='N2'>Preparatory</xref>
|
2618
|
+
<xref target='N'>Clause 1</xref>
|
2619
|
+
<xref target='note1'>Clause 3.1</xref>
|
2620
|
+
<xref target='note2'>Clause 3.1</xref>
|
2621
|
+
<xref target='AN'>Annex A.1</xref>
|
2622
|
+
<xref target='Anote1'>Annex A.2</xref>
|
2623
|
+
<xref target='Anote2'>Annex A.2</xref>
|
2624
|
+
</p>
|
2625
|
+
</foreword>
|
2626
|
+
<introduction id='intro'>
|
2627
|
+
<p id='N01'>
|
2628
|
+
<bookmark id='N1'/>
|
2629
|
+
</p>
|
2630
|
+
<clause id='xyz'>
|
2631
|
+
<title depth='2'>Preparatory</title>
|
2632
|
+
<p id='N02' type='arabic'>
|
2633
|
+
<bookmark id='N2'/>
|
2634
|
+
</p>
|
2635
|
+
</clause>
|
2636
|
+
</introduction>
|
2637
|
+
</preface>
|
2638
|
+
<sections>
|
2639
|
+
<clause id='scope' type='scope'>
|
2640
|
+
<title depth='1'>
|
2641
|
+
1.
|
2642
|
+
<tab/>
|
2643
|
+
Scope
|
2644
|
+
</title>
|
2645
|
+
<p id='N0' type='roman'>
|
2646
|
+
<bookmark id='N'/>
|
2647
|
+
</p>
|
2648
|
+
</clause>
|
2649
|
+
<terms id='terms'>
|
2650
|
+
<title>2.</title>
|
2651
|
+
</terms>
|
2652
|
+
<clause id='widgets'>
|
2653
|
+
<title depth='1'>
|
2654
|
+
3.
|
2655
|
+
<tab/>
|
2656
|
+
Widgets
|
2657
|
+
</title>
|
2658
|
+
<clause id='widgets1'>
|
2659
|
+
<title>3.1.</title>
|
2660
|
+
<p id='note1l' type='alphabet'>
|
2661
|
+
<bookmark id='note1'/>
|
2662
|
+
</p>
|
2663
|
+
<p id='note2l' type='roman_upper'>
|
2664
|
+
<bookmark id='note2'/>
|
2665
|
+
</p>
|
2666
|
+
</clause>
|
2667
|
+
</clause>
|
2668
|
+
</sections>
|
2669
|
+
<annex id='annex1'>
|
2670
|
+
<title>
|
2671
|
+
<strong>Annex A</strong>
|
2672
|
+
<br/>
|
2673
|
+
(informative)
|
2674
|
+
</title>
|
2675
|
+
<clause id='annex1a'>
|
2676
|
+
<title>A.1.</title>
|
2677
|
+
<p id='ANl' type='alphabet_upper'>
|
2678
|
+
<bookmark id='AN'/>
|
2679
|
+
</p>
|
2680
|
+
</clause>
|
2681
|
+
<clause id='annex1b'>
|
2682
|
+
<title>A.2.</title>
|
2683
|
+
<p id='Anote1l' type='roman' start='4'>
|
2684
|
+
<bookmark id='Anote1'/>
|
2685
|
+
</p>
|
2686
|
+
<p id='Anote2l'>
|
2687
|
+
<bookmark id='Anote2'/>
|
2688
|
+
</p>
|
2689
|
+
</clause>
|
2690
|
+
</annex>
|
2691
|
+
</iso-standard>
|
2692
|
+
OUTPUT
|
2693
|
+
end
|
2694
|
+
|
2550
2695
|
it "realises subsequences" do
|
2551
2696
|
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
2552
2697
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|