isodoc 1.8.4 → 2.0.0
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 +3 -31
- data/lib/isodoc/function/references.rb +31 -22
- data/lib/isodoc/function/section_titles.rb +6 -1
- data/lib/isodoc/function/utils.rb +1 -0
- data/lib/isodoc/html_function/postprocess.rb +9 -2
- data/lib/isodoc/presentation_function/bibdata.rb +0 -6
- data/lib/isodoc/presentation_function/section.rb +27 -7
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/xref/xref_sect_gen.rb +7 -3
- data/spec/isodoc/blocks_spec.rb +2 -1
- data/spec/isodoc/postproc_spec.rb +28 -0
- data/spec/isodoc/presentation_xml_spec.rb +208 -37
- data/spec/isodoc/ref_spec.rb +332 -300
- data/spec/isodoc/section_spec.rb +70 -204
- metadata +2 -2
@@ -717,49 +717,220 @@ RSpec.describe IsoDoc do
|
|
717
717
|
</annex>
|
718
718
|
</iso-standard>
|
719
719
|
INPUT
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
</
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
720
|
+
presxml = <<~OUTPUT
|
721
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
|
722
|
+
<bibdata/>
|
723
|
+
<sections>
|
724
|
+
<clause id='_' inline-header='false' obligation='normative' displayorder='1'>
|
725
|
+
<title depth='1'>
|
726
|
+
<strong>Annex A</strong>
|
727
|
+
<br/>
|
728
|
+
(normative).
|
729
|
+
<tab/>
|
730
|
+
Clause
|
731
|
+
</title>
|
732
|
+
<p id='_'>Text</p>
|
733
|
+
<clause id='_' inline-header='false' obligation='normative'>
|
734
|
+
<title depth='1'>
|
735
|
+
<strong>Annex A</strong>
|
736
|
+
<br/>
|
737
|
+
(normative).
|
738
|
+
<tab/>
|
739
|
+
Subclause
|
740
|
+
</title>
|
741
|
+
<variant-title variant_title='true' type='sub' id='_'>“A” ‘B’</variant-title>
|
742
|
+
<variant-title variant_title='true' type='toc' id='_'>
|
743
|
+
Clause
|
744
|
+
<em>A</em>
|
745
|
+
<stem type='MathML'>
|
746
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
747
|
+
<mi>x</mi>
|
748
|
+
</math>
|
749
|
+
<!-- x -->
|
750
|
+
</stem>
|
751
|
+
</variant-title>
|
752
|
+
<p id='_'>Text</p>
|
753
|
+
</clause>
|
754
|
+
</clause>
|
755
|
+
</sections>
|
756
|
+
<annex id='_' inline-header='false' obligation='normative' displayorder='2'>
|
757
|
+
<title>
|
758
|
+
<strong>Annex A</strong>
|
759
|
+
<br/>
|
760
|
+
(normative)
|
761
|
+
<br/>
|
762
|
+
<br/>
|
763
|
+
<strong>Clause</strong>
|
764
|
+
</title>
|
765
|
+
<variant-title variant_title='true' type='toc' id='_'>
|
766
|
+
Clause
|
767
|
+
<em>A</em>
|
768
|
+
<stem type='MathML'>
|
769
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
770
|
+
<mi>x</mi>
|
771
|
+
</math>
|
772
|
+
<!-- x -->
|
773
|
+
</stem>
|
774
|
+
</variant-title>
|
775
|
+
<p id='_'>Text</p>
|
776
|
+
</annex>
|
777
|
+
</iso-standard>
|
778
|
+
OUTPUT
|
779
|
+
html = <<~OUTPUT
|
780
|
+
<html lang='en'>
|
781
|
+
<head/>
|
782
|
+
<body lang='en'>
|
783
|
+
<div class='title-section'>
|
784
|
+
<p> </p>
|
785
|
+
</div>
|
751
786
|
<br/>
|
787
|
+
<div class='prefatory-section'>
|
788
|
+
<p> </p>
|
789
|
+
</div>
|
752
790
|
<br/>
|
753
|
-
<
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
791
|
+
<div class='main-section'>
|
792
|
+
<p class='zzSTDTitle1'/>
|
793
|
+
<div id='_'>
|
794
|
+
<h1>
|
795
|
+
<b>Annex A</b>
|
796
|
+
<br/>
|
797
|
+
(normative).   Clause
|
798
|
+
</h1>
|
799
|
+
<p id='_'>Text</p>
|
800
|
+
<div id='_'>
|
801
|
+
<h1>
|
802
|
+
<b>Annex A</b>
|
803
|
+
<br/>
|
804
|
+
(normative).   Subclause
|
805
|
+
<br/>
|
806
|
+
<br/>
|
807
|
+
“A” ‘B’
|
808
|
+
</h1>
|
809
|
+
<p style='display:none;' class='variant-title-toc'>
|
810
|
+
Clause
|
811
|
+
<i>A</i>
|
812
|
+
<span class='stem'>
|
813
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
814
|
+
<mi>x</mi>
|
815
|
+
</math>
|
816
|
+
</span>
|
817
|
+
</p>
|
818
|
+
<p id='_'>Text</p>
|
819
|
+
</div>
|
820
|
+
</div>
|
821
|
+
<br/>
|
822
|
+
<div id='_' class='Section3'>
|
823
|
+
<h1 class='Annex'>
|
824
|
+
<b>Annex A</b>
|
825
|
+
<br/>
|
826
|
+
(normative)
|
827
|
+
<br/>
|
828
|
+
<br/>
|
829
|
+
<b>Clause</b>
|
830
|
+
</h1>
|
831
|
+
<p style='display:none;' class='variant-title-toc'>
|
832
|
+
Clause
|
833
|
+
<i>A</i>
|
834
|
+
<span class='stem'>
|
835
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
836
|
+
<mi>x</mi>
|
837
|
+
</math>
|
838
|
+
</span>
|
839
|
+
</p>
|
840
|
+
<p id='_'>Text</p>
|
841
|
+
</div>
|
842
|
+
</div>
|
843
|
+
</body>
|
844
|
+
</html>
|
845
|
+
OUTPUT
|
846
|
+
doc = <<~OUTPUT
|
847
|
+
<html xmlns:epub='http://www.idpf.org/2007/ops' lang='en'>
|
848
|
+
<head>
|
849
|
+
<style>
|
850
|
+
</style>
|
851
|
+
</head>
|
852
|
+
<body lang='EN-US' link='blue' vlink='#954F72'>
|
853
|
+
<div class='WordSection1'>
|
854
|
+
<p> </p>
|
855
|
+
</div>
|
856
|
+
<p>
|
857
|
+
<br clear='all' class='section'/>
|
858
|
+
</p>
|
859
|
+
<div class='WordSection2'>
|
860
|
+
<p> </p>
|
861
|
+
</div>
|
862
|
+
<p>
|
863
|
+
<br clear='all' class='section'/>
|
864
|
+
</p>
|
865
|
+
<div class='WordSection3'>
|
866
|
+
<p class='zzSTDTitle1'/>
|
867
|
+
<div id='_'>
|
868
|
+
<h1>
|
869
|
+
<b>Annex A</b>
|
870
|
+
<br/>
|
871
|
+
(normative).
|
872
|
+
<span style='mso-tab-count:1'>  </span>
|
873
|
+
Clause
|
874
|
+
</h1>
|
875
|
+
<p id='_'>Text</p>
|
876
|
+
<div id='_'>
|
877
|
+
<h1>
|
878
|
+
<b>Annex A</b>
|
879
|
+
<br/>
|
880
|
+
(normative).
|
881
|
+
<span style='mso-tab-count:1'>  </span>
|
882
|
+
Subclause
|
883
|
+
<br/>
|
884
|
+
<br/>
|
885
|
+
“A” ‘B’
|
886
|
+
</h1>
|
887
|
+
<p style='display:none;' class='variant-title-toc'>
|
888
|
+
Clause
|
889
|
+
<i>A</i>
|
890
|
+
<span class='stem'>
|
891
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
892
|
+
<mi>x</mi>
|
893
|
+
</math>
|
894
|
+
</span>
|
895
|
+
</p>
|
896
|
+
<p id='_'>Text</p>
|
897
|
+
</div>
|
898
|
+
</div>
|
899
|
+
<p>
|
900
|
+
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
901
|
+
</p>
|
902
|
+
<div id='_' class='Section3'>
|
903
|
+
<h1 class='Annex'>
|
904
|
+
<b>Annex A</b>
|
905
|
+
<br/>
|
906
|
+
(normative)
|
907
|
+
<br/>
|
908
|
+
<br/>
|
909
|
+
<b>Clause</b>
|
910
|
+
</h1>
|
911
|
+
<p style='display:none;' class='variant-title-toc'>
|
912
|
+
Clause
|
913
|
+
<i>A</i>
|
914
|
+
<span class='stem'>
|
915
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
916
|
+
<mi>x</mi>
|
917
|
+
</math>
|
918
|
+
</span>
|
919
|
+
</p>
|
920
|
+
<p id='_'>Text</p>
|
921
|
+
</div>
|
922
|
+
</div>
|
923
|
+
</body>
|
924
|
+
</html>
|
758
925
|
OUTPUT
|
759
926
|
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
760
927
|
.convert("test", input, true))
|
761
928
|
.sub(%r{<localized-strings>.*</localized-strings>}m, ""))
|
762
|
-
.to be_equivalent_to xmlpp(
|
929
|
+
.to be_equivalent_to xmlpp(presxml)
|
930
|
+
expect(xmlpp(IsoDoc::HtmlConvert.new({})
|
931
|
+
.convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
932
|
+
expect(xmlpp(IsoDoc::WordConvert.new({})
|
933
|
+
.convert("test", presxml, true))).to be_equivalent_to xmlpp(doc)
|
763
934
|
end
|
764
935
|
|
765
936
|
it "duplicates EMF and SVG files" do
|