isodoc 1.0.27 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +4 -8
  3. data/.github/workflows/ubuntu.yml +18 -16
  4. data/.github/workflows/windows.yml +4 -8
  5. data/Rakefile +3 -1
  6. data/isodoc.gemspec +2 -2
  7. data/lib/isodoc.rb +2 -0
  8. data/lib/isodoc/base_style/metanorma_word.scss +0 -1
  9. data/lib/isodoc/base_style/reset.scss +3 -3
  10. data/lib/isodoc/common.rb +0 -4
  11. data/lib/isodoc/convert.rb +121 -58
  12. data/lib/isodoc/function/blocks.rb +42 -53
  13. data/lib/isodoc/function/blocks_example_note.rb +108 -0
  14. data/lib/isodoc/function/cleanup.rb +8 -4
  15. data/lib/isodoc/function/i18n.rb +1 -0
  16. data/lib/isodoc/function/inline.rb +70 -90
  17. data/lib/isodoc/function/inline_simple.rb +72 -0
  18. data/lib/isodoc/function/lists.rb +12 -6
  19. data/lib/isodoc/function/references.rb +33 -38
  20. data/lib/isodoc/function/reqt.rb +14 -5
  21. data/lib/isodoc/function/section.rb +8 -11
  22. data/lib/isodoc/function/table.rb +4 -4
  23. data/lib/isodoc/function/terms.rb +3 -3
  24. data/lib/isodoc/function/to_word_html.rb +21 -13
  25. data/lib/isodoc/function/utils.rb +57 -50
  26. data/lib/isodoc/gem_tasks.rb +104 -0
  27. data/lib/isodoc/headlesshtml_convert.rb +7 -6
  28. data/lib/isodoc/html_convert.rb +2 -1
  29. data/lib/isodoc/html_function/footnotes.rb +1 -1
  30. data/lib/isodoc/html_function/html.rb +13 -1
  31. data/lib/isodoc/html_function/postprocess.rb +4 -4
  32. data/lib/isodoc/metadata.rb +74 -62
  33. data/lib/isodoc/pdf_convert.rb +8 -6
  34. data/lib/isodoc/presentation_xml_convert.rb +29 -0
  35. data/lib/isodoc/sassc_importer.rb +11 -0
  36. data/lib/isodoc/version.rb +1 -1
  37. data/lib/isodoc/word_convert.rb +2 -1
  38. data/lib/isodoc/word_function/body.rb +14 -48
  39. data/lib/isodoc/word_function/footnotes.rb +1 -1
  40. data/lib/isodoc/word_function/inline.rb +75 -0
  41. data/lib/isodoc/word_function/postprocess.rb +1 -0
  42. data/lib/isodoc/word_function/table.rb +3 -3
  43. data/lib/isodoc/xref.rb +59 -0
  44. data/lib/isodoc/{function → xref}/xref_anchor.rb +10 -21
  45. data/lib/isodoc/xref/xref_counter.rb +74 -0
  46. data/lib/isodoc/{function → xref}/xref_gen.rb +9 -22
  47. data/lib/isodoc/{function → xref}/xref_gen_seq.rb +41 -32
  48. data/lib/isodoc/{function → xref}/xref_sect_gen.rb +33 -23
  49. data/lib/isodoc/xslfo_convert.rb +16 -4
  50. data/spec/assets/{html.css → html.scss} +0 -0
  51. data/spec/assets/i18n.yaml +4 -1
  52. data/spec/assets/odf.emf +0 -0
  53. data/spec/assets/odf.svg +4 -0
  54. data/spec/assets/odf1.svg +4 -0
  55. data/spec/isodoc/blocks_spec.rb +219 -47
  56. data/spec/isodoc/cleanup_spec.rb +135 -6
  57. data/spec/isodoc/footnotes_spec.rb +22 -7
  58. data/spec/isodoc/inline_spec.rb +262 -2
  59. data/spec/isodoc/lists_spec.rb +8 -8
  60. data/spec/isodoc/metadata_spec.rb +110 -3
  61. data/spec/isodoc/postproc_spec.rb +1321 -1351
  62. data/spec/isodoc/presentation_xml_spec.rb +20 -0
  63. data/spec/isodoc/ref_spec.rb +119 -50
  64. data/spec/isodoc/section_spec.rb +84 -18
  65. data/spec/isodoc/table_spec.rb +6 -6
  66. data/spec/isodoc/terms_spec.rb +7 -7
  67. data/spec/isodoc/xref_spec.rb +165 -45
  68. metadata +36 -27
  69. data/lib/isodoc/function/blocks_example.rb +0 -53
  70. data/lib/isodoc/function/xref_counter.rb +0 -50
@@ -0,0 +1,20 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe IsoDoc do
4
+ it "generates file based on string input" do
5
+ FileUtils.rm_f "test.presentation.xml"
6
+ IsoDoc::PresentationXMLConvert.new({filename: "test"}).convert("test", <<~"INPUT", false)
7
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
8
+ <bibdata>
9
+ <title language="en">test</title>
10
+ </bibdata>
11
+ <preface><foreword>
12
+ <note>
13
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
14
+ </note>
15
+ </foreword></preface>
16
+ </iso-standard>
17
+ INPUT
18
+ expect(File.exist?("test.presentation.xml")).to be true
19
+ end
20
+ end
@@ -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>
@@ -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], ISO 712, <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, IETF RFC 20, 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
+ Citn&#160; 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
 
@@ -70,6 +70,8 @@ RSpec.describe IsoDoc do
70
70
  <title>Acknowledgements</title>
71
71
  </acknowledgements>
72
72
  </preface><sections>
73
+ <note id="NN1"><p>Initial note</p></note>
74
+ <admonition id="NN2" type="warning"><p>Initial admonition</p></admonition>
73
75
  <clause id="D" obligation="normative">
74
76
  <title>Scope</title>
75
77
  <p id="E">Text</p>
@@ -181,6 +183,16 @@ RSpec.describe IsoDoc do
181
183
  <h1 class='IntroTitle'>Acknowledgements</h1>
182
184
  </div>
183
185
  <p class="zzSTDTitle1"/>
186
+ <div id='NN1' class='Note'>
187
+ <p>
188
+ <span class='note_label'>NOTE</span>
189
+ &#160; Initial note
190
+ </p>
191
+ </div>
192
+ <div id='NN2' class='Admonition'>
193
+ <p class='AdmonitionTitle' style='text-align:center;'>WARNING</p>
194
+ <p>Initial admonition</p>
195
+ </div>
184
196
  <div id="D">
185
197
  <h1>1.&#160; Scope</h1>
186
198
  <p id="E">Text</p>
@@ -609,7 +621,7 @@ OUTPUT
609
621
  <div>
610
622
  <h1>
611
623
  Copyright
612
- <a rel='footnote' href='#fn:1' epub:type='footnote'>
624
+ <a class='FootnoteRef' href='#fn:1'>
613
625
  <sup>1</sup>
614
626
  </a>
615
627
  </h1>
@@ -619,7 +631,7 @@ OUTPUT
619
631
  <div>
620
632
  <h1>
621
633
  License
622
- <a rel='footnote' href='#fn:2' epub:type='footnote'>
634
+ <a class='FootnoteRef' href='#fn:2'>
623
635
  <sup>2</sup>
624
636
  </a>
625
637
  </h1>
@@ -629,7 +641,7 @@ OUTPUT
629
641
  <div>
630
642
  <h1>
631
643
  Legal
632
- <a rel='footnote' href='#fn:3' epub:type='footnote'>
644
+ <a class='FootnoteRef' href='#fn:3'>
633
645
  <sup>3</sup>
634
646
  </a>
635
647
  </h1>
@@ -639,7 +651,7 @@ OUTPUT
639
651
  <div>
640
652
  <h1>
641
653
  Feedback
642
- <a rel='footnote' href='#fn:4' epub:type='footnote'>
654
+ <a class='FootnoteRef' href='#fn:4'>
643
655
  <sup>4</sup>
644
656
  </a>
645
657
  </h1>
@@ -661,7 +673,7 @@ OUTPUT
661
673
  <div id='C'>
662
674
  <h2>
663
675
  Introduction Subsection
664
- <a rel='footnote' href='#fn:8' epub:type='footnote'>
676
+ <a class='FootnoteRef' href='#fn:8'>
665
677
  <sup>8</sup>
666
678
  </a>
667
679
  </h2>
@@ -674,14 +686,14 @@ OUTPUT
674
686
  <div id='H'>
675
687
  <h1>
676
688
  2.&#160; Terms, Definitions, Symbols and Abbreviated Terms
677
- <a rel='footnote' href='#fn:10' epub:type='footnote'>
689
+ <a class='FootnoteRef' href='#fn:10'>
678
690
  <sup>10</sup>
679
691
  </a>
680
692
  </h1>
681
693
  <div id='I'>
682
694
  <h2>
683
695
  2.1.&#160; Normal Terms
684
- <a rel='footnote' href='#fn:11' epub:type='footnote'>
696
+ <a class='FootnoteRef' href='#fn:11'>
685
697
  <sup>11</sup>
686
698
  </a>
687
699
  </h2>
@@ -691,7 +703,7 @@ OUTPUT
691
703
  <div id='K'>
692
704
  <h2>
693
705
  2.2.&#160; Definitions
694
- <a rel='footnote' href='#fn:12' epub:type='footnote'>
706
+ <a class='FootnoteRef' href='#fn:12'>
695
707
  <sup>12</sup>
696
708
  </a>
697
709
  </h2>
@@ -715,7 +727,7 @@ OUTPUT
715
727
  <div id='D'>
716
728
  <h1>
717
729
  4.&#160; Scope
718
- <a rel='footnote' href='#fn:9' epub:type='footnote'>
730
+ <a class='FootnoteRef' href='#fn:9'>
719
731
  <sup>9</sup>
720
732
  </a>
721
733
  </h1>
@@ -724,14 +736,14 @@ OUTPUT
724
736
  <div id='M'>
725
737
  <h1>
726
738
  5.&#160; Clause 4
727
- <a rel='footnote' href='#fn:13' epub:type='footnote'>
739
+ <a class='FootnoteRef' href='#fn:13'>
728
740
  <sup>13</sup>
729
741
  </a>
730
742
  </h1>
731
743
  <div id='N'>
732
744
  <h2>
733
745
  5.1.&#160; Introduction
734
- <a rel='footnote' href='#fn:1' epub:type='footnote'>
746
+ <a class='FootnoteRef' href='#fn:1'>
735
747
  <sup>1</sup>
736
748
  </a>
737
749
  </h2>
@@ -739,7 +751,7 @@ OUTPUT
739
751
  <div id='O'>
740
752
  <h2>
741
753
  5.2.&#160; Clause 4.2
742
- <a rel='footnote' href='#fn:14' epub:type='footnote'>
754
+ <a class='FootnoteRef' href='#fn:14'>
743
755
  <sup>14</sup>
744
756
  </a>
745
757
  </h2>
@@ -758,7 +770,7 @@ OUTPUT
758
770
  <br/>
759
771
  <b>
760
772
  Annex
761
- <a rel='footnote' href='#fn:15' epub:type='footnote'>
773
+ <a class='FootnoteRef' href='#fn:15'>
762
774
  <sup>15</sup>
763
775
  </a>
764
776
  </b>
@@ -766,14 +778,14 @@ OUTPUT
766
778
  <div id='Q'>
767
779
  <h2>
768
780
  A.1.&#160; Annex A.1
769
- <a rel='footnote' href='#fn:16' epub:type='footnote'>
781
+ <a class='FootnoteRef' href='#fn:16'>
770
782
  <sup>16</sup>
771
783
  </a>
772
784
  </h2>
773
785
  <div id='Q1'>
774
786
  <h3>
775
787
  A.1.1.&#160; Annex A.1a
776
- <a rel='footnote' href='#fn:17' epub:type='footnote'>
788
+ <a class='FootnoteRef' href='#fn:17'>
777
789
  <sup>17</sup>
778
790
  </a>
779
791
  </h3>
@@ -781,7 +793,7 @@ OUTPUT
781
793
  <div>
782
794
  <h3>
783
795
  A.1.2.&#160; Annex Bibliography
784
- <a rel='footnote' href='#fn:18' epub:type='footnote'>
796
+ <a class='FootnoteRef' href='#fn:18'>
785
797
  <sup>18</sup>
786
798
  </a>
787
799
  </h3>
@@ -999,6 +1011,7 @@ OUTPUT
999
1011
  </clause>
1000
1012
  <clause id="O" inline-header="true" obligation="normative">
1001
1013
  <title>Clause 4.2</title>
1014
+ <p>ABC</p>
1002
1015
  </clause></clause>
1003
1016
 
1004
1017
  </sections>
@@ -1012,7 +1025,8 @@ OUTPUT
1012
1025
  <h2>1.1.&#160; Introduction</h2>
1013
1026
  </div>
1014
1027
  <div id="O">
1015
- <span class="zzMoveToFollowing"><b>1.2.&#160; Clause 4.2 </b></span>
1028
+ <span class="zzMoveToFollowing"><b>1.2.&#160; Clause 4.2&#160; </b></span>
1029
+ <p>ABC</p>
1016
1030
  </div>
1017
1031
  </div>
1018
1032
  </div>
@@ -1043,7 +1057,7 @@ OUTPUT
1043
1057
  <h2>Introduction</h2>
1044
1058
  </div>
1045
1059
  <div id="O">
1046
- <span class="zzMoveToFollowing"><b>Clause 4.2 </b></span>
1060
+ <span class="zzMoveToFollowing"><b>Clause 4.2&#160; </b></span>
1047
1061
  </div>
1048
1062
  </div>
1049
1063
  </div>
@@ -1095,5 +1109,57 @@ OUTPUT
1095
1109
  OUTPUT
1096
1110
  end
1097
1111
 
1112
+ it "processes clauses containing normative references" do
1113
+ expect(xmlpp(IsoDoc::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
1114
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1115
+ <bibliography>
1116
+ <clause id="D" obligation="informative">
1117
+ <title>Bibliography</title>
1118
+ <references id="E" obligation="informative" normative="false">
1119
+ <title>Bibliography Subsection 1</title>
1120
+ </references>
1121
+ <references id="F" obligation="informative" normative="false">
1122
+ <title>Bibliography Subsection 2</title>
1123
+ </references>
1124
+ </clause>
1125
+ <clause id="A" obligation="informative"><title>First References</title>
1126
+ <references id="B" obligation="informative" normative="true">
1127
+ <title>Normative References 1</title>
1128
+ </references>
1129
+ <references id="C" obligation="informative" normative="false">
1130
+ <title>Normative References 2</title>
1131
+ </references>
1132
+ </clause>
1133
+
1134
+ </bibliography>
1135
+ INPUT
1136
+ #{HTML_HDR}
1137
+ <p class='zzSTDTitle1'/>
1138
+ <div>
1139
+ <h1>1.&#160; Normative references</h1>
1140
+ <div>
1141
+ <h2>1.1.&#160; Normative References 1</h2>
1142
+ </div>
1143
+ <div>
1144
+ <h2>1.2.&#160; Normative References 2</h2>
1145
+ </div>
1146
+ </div>
1147
+ <br/>
1148
+ <div>
1149
+ <h1 class='Section3'>Bibliography</h1>
1150
+ <div>
1151
+ <h2 class='Section3'>Bibliography Subsection 1</h2>
1152
+ </div>
1153
+ <div>
1154
+ <h2 class='Section3'>Bibliography Subsection 2</h2>
1155
+ </div>
1156
+ </div>
1157
+ </div>
1158
+ </body>
1159
+ </html>
1160
+
1161
+ OUTPUT
1162
+ end
1163
+
1098
1164
 
1099
1165
  end
@@ -6,7 +6,7 @@ RSpec.describe IsoDoc do
6
6
  <iso-standard xmlns="http://riboseinc.com/isoxml">
7
7
  <preface>
8
8
  <foreword>
9
- <table id="tableD-1" alt="tool tip" summary="long desc" width="70%">
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
11
  <thead>
12
12
  <tr>
@@ -68,11 +68,11 @@ RSpec.describe IsoDoc do
68
68
  <div>
69
69
  <h1 class="ForewordTitle">Foreword</h1>
70
70
  <p class="TableTitle" style="text-align:center;">Table 1&#160;&#8212; Repeatability and reproducibility of <i>husked</i> rice yield
71
- <a rel='footnote' href='#fn:1' epub:type='footnote'>
71
+ <a class='FootnoteRef' href='#fn:1'>
72
72
  <sup>1</sup>
73
73
  </a>
74
74
  </p>
75
- <table id="tableD-1" class="MsoISOTable" style="border-width:1px;border-spacing:0;width:70%;" title="tool tip">
75
+ <table id="tableD-1" class="MsoISOTable" style="border-width:1px;border-spacing:0;width:70%;page-break-after: avoid;page-break-inside: avoid;" title="tool tip" >
76
76
  <caption>
77
77
  <span style="display:none">long desc</span>
78
78
  </caption>
@@ -121,7 +121,7 @@ RSpec.describe IsoDoc do
121
121
  </dt>
122
122
  <dd>A type of rice</dd>
123
123
  </dl>
124
- <div id="" class="Note">
124
+ <div class="Note">
125
125
  <p><span class="note_label">NOTE</span>&#160; This is a table about rice</p>
126
126
  </div>
127
127
  </table>
@@ -227,7 +227,7 @@ RSpec.describe IsoDoc do
227
227
  </div>
228
228
  <p class="TableTitle" style="text-align:center;">Table 2&#160;&#8212; Repeatability and reproducibility of husked rice yield
229
229
  <span style='mso-bookmark:_Ref'>
230
- <a href='#ftn1' epub:type='footnote'>
230
+ <a href='#ftn1' epub:type='footnote' class='FootnoteRef'>
231
231
  <sup>1</sup>
232
232
  </a>
233
233
  </span>
@@ -281,7 +281,7 @@ RSpec.describe IsoDoc do
281
281
  <td valign="top">A type of rice</td>
282
282
  </tr>
283
283
  </table>
284
- <div id="" class="Note">
284
+ <div class="Note">
285
285
  <p class="Note"><span class="note_label">NOTE</span><span style="mso-tab-count:1">&#160; </span>This is a table about rice</p>
286
286
  </div>
287
287
  </table>