metanorma-cli 1.3.3.1 → 1.3.4

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 (950) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +62 -69
  3. data/gems/ruby/2.6.0/gems/fontist-1.2.0/Gemfile +4 -0
  4. data/gems/ruby/2.6.0/gems/fontist-1.2.0/LICENSE.txt +26 -0
  5. data/gems/ruby/2.6.0/gems/fontist-1.2.0/README.md +179 -0
  6. data/gems/ruby/2.6.0/gems/fontist-1.2.0/Rakefile +6 -0
  7. data/gems/ruby/2.6.0/gems/fontist-1.2.0/bin/console +11 -0
  8. data/gems/ruby/2.6.0/gems/fontist-1.2.0/bin/rspec +29 -0
  9. data/gems/ruby/2.6.0/gems/fontist-1.2.0/bin/setup +7 -0
  10. data/gems/ruby/2.6.0/gems/fontist-1.2.0/fontist.gemspec +32 -0
  11. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist.rb +48 -0
  12. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/errors.rb +10 -0
  13. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/font.rb +78 -0
  14. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/font_formula.rb +123 -0
  15. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formula.rb +90 -0
  16. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas.rb +15 -0
  17. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/andale_font.rb +79 -0
  18. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/arial_black_font.rb +78 -0
  19. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/cleartype_fonts.rb +226 -0
  20. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/comic_font.rb +77 -0
  21. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/courier_font.rb +80 -0
  22. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/euphemia_font.rb +85 -0
  23. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/georgia_font.rb +79 -0
  24. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/impact_font.rb +77 -0
  25. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/montserrat_font.rb +132 -0
  26. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/ms_truetype_fonts.rb +124 -0
  27. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/open_sans_fonts.rb +263 -0
  28. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/overpass_font.rb +73 -0
  29. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/source_fonts.rb +109 -0
  30. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/stix_fonts.rb +108 -0
  31. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/tahoma_font.rb +146 -0
  32. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/formulas/webding_font.rb +77 -0
  33. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/registry.rb +42 -0
  34. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/system.yml +17 -0
  35. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/system_font.rb +72 -0
  36. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/utils.rb +9 -0
  37. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/utils/downloader.rb +74 -0
  38. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/utils/dsl.rb +77 -0
  39. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/utils/exe_extractor.rb +72 -0
  40. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/utils/zip_extractor.rb +38 -0
  41. data/gems/ruby/2.6.0/gems/fontist-1.2.0/lib/fontist/version.rb +3 -0
  42. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fixtures/fonts/DejaVuSerif.ttf +0 -0
  43. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/font_formula_spec.rb +67 -0
  44. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/font_spec.rb +87 -0
  45. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formula_spec.rb +67 -0
  46. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/andale_font_spec.rb +29 -0
  47. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/arial_black_font_spec.rb +29 -0
  48. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/cleartype_fonts_spec.rb +38 -0
  49. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/comic_font_spec.rb +29 -0
  50. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/courier_font_spec.rb +29 -0
  51. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/euphemia_font_spec.rb +29 -0
  52. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/georgia_font_spec.rb +29 -0
  53. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/impact_font_spec.rb +29 -0
  54. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/montserrat_font_spec.rb +29 -0
  55. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/ms_truetype_fonts_spec.rb +29 -0
  56. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/open_sans_fonts_spec.rb +29 -0
  57. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/overpass_font_spec.rb +29 -0
  58. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/source_fonts_spec.rb +31 -0
  59. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/stix_fonts_spec.rb +29 -0
  60. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/tahoma_font_spec.rb +29 -0
  61. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/formulas/webding_font_spec.rb +29 -0
  62. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/registry_spec.rb +47 -0
  63. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/system_font_spec.rb +44 -0
  64. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist/utils/downloader_spec.rb +35 -0
  65. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/fontist_spec.rb +5 -0
  66. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/spec_helper.rb +22 -0
  67. data/gems/ruby/2.6.0/gems/fontist-1.2.0/spec/support/fontist_helper.rb +10 -0
  68. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/CODE_OF_CONDUCT.md +46 -0
  69. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/Gemfile +11 -0
  70. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/LICENSE +25 -0
  71. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/Rakefile +8 -0
  72. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/bin/rspec +18 -0
  73. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/isodoc.gemspec +51 -0
  74. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc-yaml/i18n-en.yaml +98 -0
  75. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc-yaml/i18n-fr.yaml +91 -0
  76. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc-yaml/i18n-zh-Hans.yaml +92 -0
  77. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc.rb +30 -0
  78. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/all.css +207 -0
  79. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/all.scss +6 -0
  80. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/bands.scss +79 -0
  81. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/blocks.css +0 -0
  82. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/blocks.scss +128 -0
  83. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/coverpage.css +0 -0
  84. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/coverpage.scss +7 -0
  85. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/defaults.css +0 -0
  86. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/defaults.scss +26 -0
  87. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/metanorma_word.css +34 -0
  88. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/metanorma_word.scss +30 -0
  89. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/nav.css +0 -0
  90. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/nav.scss +180 -0
  91. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/reset.css +105 -0
  92. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/reset.scss +129 -0
  93. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/typography.css +0 -0
  94. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/base_style/typography.scss +67 -0
  95. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/class_utils.rb +30 -0
  96. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/common.rb +29 -0
  97. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/convert.rb +250 -0
  98. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function.rb +4 -0
  99. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/blocks.rb +208 -0
  100. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/blocks_example_note.rb +107 -0
  101. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/cleanup.rb +218 -0
  102. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/inline.rb +155 -0
  103. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/inline_simple.rb +72 -0
  104. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/lists.rb +94 -0
  105. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/references.rb +214 -0
  106. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/reqt.rb +115 -0
  107. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/section.rb +228 -0
  108. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/table.rb +108 -0
  109. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/terms.rb +78 -0
  110. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/to_word_html.rb +230 -0
  111. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/function/utils.rb +190 -0
  112. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/gem_tasks.rb +133 -0
  113. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/headlesshtml_convert.rb +45 -0
  114. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/html_convert.rb +30 -0
  115. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/html_function.rb +4 -0
  116. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/html_function/comments.rb +144 -0
  117. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/html_function/footnotes.rb +83 -0
  118. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/html_function/html.rb +115 -0
  119. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/html_function/postprocess.rb +243 -0
  120. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/i18n.rb +122 -0
  121. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/metadata.rb +235 -0
  122. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/metadata_date.rb +39 -0
  123. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/pdf_convert.rb +50 -0
  124. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/presentation_function/block.rb +138 -0
  125. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/presentation_function/inline.rb +131 -0
  126. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/presentation_function/section.rb +46 -0
  127. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/presentation_xml_convert.rb +62 -0
  128. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/sassc_importer.rb +11 -0
  129. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/version.rb +3 -0
  130. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_convert.rb +45 -0
  131. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_function.rb +4 -0
  132. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_function/body.rb +214 -0
  133. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_function/comments.rb +145 -0
  134. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_function/footnotes.rb +105 -0
  135. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_function/inline.rb +77 -0
  136. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_function/postprocess.rb +247 -0
  137. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_function/postprocess_cover.rb +79 -0
  138. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/word_function/table.rb +60 -0
  139. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/xref.rb +61 -0
  140. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/xref/xref_anchor.rb +56 -0
  141. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/xref/xref_counter.rb +74 -0
  142. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/xref/xref_gen.rb +117 -0
  143. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/xref/xref_gen_seq.rb +163 -0
  144. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/xref/xref_sect_gen.rb +151 -0
  145. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/lib/isodoc/xslfo_convert.rb +46 -0
  146. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/assets/html.scss +6 -0
  147. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/assets/i18n.yaml +16 -0
  148. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/assets/odf.emf +0 -0
  149. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/assets/odf.svg +4 -0
  150. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/assets/odf1.svg +4 -0
  151. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/assets/rice_image1 +0 -0
  152. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/assets/std.css +2 -0
  153. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/assets/word.css +2 -0
  154. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/blocks_spec.rb +2643 -0
  155. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/cleanup_spec.rb +1188 -0
  156. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/footnotes_spec.rb +280 -0
  157. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/i18n_spec.rb +1131 -0
  158. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/inline_spec.rb +995 -0
  159. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/lists_spec.rb +346 -0
  160. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/metadata_spec.rb +342 -0
  161. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/postproc_spec.rb +1536 -0
  162. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/presentation_xml_spec.rb +20 -0
  163. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/ref_spec.rb +427 -0
  164. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/section_spec.rb +993 -0
  165. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/table_spec.rb +454 -0
  166. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/terms_spec.rb +268 -0
  167. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/isodoc/xref_spec.rb +2764 -0
  168. data/gems/ruby/2.6.0/gems/isodoc-1.2.1/spec/spec_helper.rb +74 -0
  169. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/CODE_OF_CONDUCT.md +74 -0
  170. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/Gemfile +11 -0
  171. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/LICENSE +25 -0
  172. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/Rakefile +8 -0
  173. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/bin/console +14 -0
  174. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/bin/rspec +18 -0
  175. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/bin/setup +8 -0
  176. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc.rb +5 -0
  177. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/basicdoc.rng +1059 -0
  178. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/biblio.rng +1237 -0
  179. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/cc.rng +116 -0
  180. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/converter.rb +72 -0
  181. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/front.rb +93 -0
  182. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/isodoc.rng +1510 -0
  183. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/reqt.rng +194 -0
  184. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/validate.rb +29 -0
  185. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/asciidoctor/cc/validate_section.rb +124 -0
  186. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/base_convert.rb +21 -0
  187. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/csd.standard.xsl +3371 -0
  188. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html/_coverpage.css +307 -0
  189. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html/_coverpage.scss +130 -0
  190. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html/cc.css +801 -0
  191. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html/cc.scss +763 -0
  192. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html/htmlstyle.css +1013 -0
  193. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html/htmlstyle.scss +409 -0
  194. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html/wordstyle.css +1253 -0
  195. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html/wordstyle.scss +1156 -0
  196. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/html_convert.rb +53 -0
  197. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/i18n-en.yaml +2 -0
  198. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/i18n.rb +10 -0
  199. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/init.rb +23 -0
  200. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/metadata.rb +61 -0
  201. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/pdf_convert.rb +21 -0
  202. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/presentation_xml_convert.rb +19 -0
  203. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/word_convert.rb +40 -0
  204. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/isodoc/cc/xref.rb +6 -0
  205. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/metanorma-cc.rb +11 -0
  206. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/metanorma/cc.rb +29 -0
  207. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/metanorma/cc/processor.rb +49 -0
  208. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/lib/metanorma/cc/version.rb +5 -0
  209. data/gems/ruby/2.6.0/gems/metanorma-cc-1.5.0/metanorma-cc.gemspec +44 -0
  210. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/CODE_OF_CONDUCT.md +74 -0
  211. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/Gemfile +11 -0
  212. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/LICENSE +25 -0
  213. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/Rakefile +8 -0
  214. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/bin/console +14 -0
  215. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/bin/rspec +18 -0
  216. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/bin/setup +8 -0
  217. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/asciidoctor/csa.rb +5 -0
  218. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/asciidoctor/csa/basicdoc.rng +1059 -0
  219. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/asciidoctor/csa/biblio.rng +1237 -0
  220. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/asciidoctor/csa/converter.rb +139 -0
  221. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/asciidoctor/csa/csa.rng +115 -0
  222. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/asciidoctor/csa/isodoc.rng +1510 -0
  223. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/asciidoctor/csa/reqt.rng +194 -0
  224. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/asciidoctor/csa/validate.rb +22 -0
  225. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/base_convert.rb +23 -0
  226. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/csa.standard.xsl +3387 -0
  227. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/html/csa.css +801 -0
  228. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/html/csa.scss +763 -0
  229. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/html/htmlstyle.css +1070 -0
  230. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/html/htmlstyle.scss +806 -0
  231. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/html/wordstyle.css +1253 -0
  232. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/html/wordstyle.scss +1157 -0
  233. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/html_convert.rb +60 -0
  234. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/i18n-en.yaml +2 -0
  235. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/i18n.rb +10 -0
  236. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/init.rb +24 -0
  237. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/metadata.rb +51 -0
  238. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/pdf_convert.rb +22 -0
  239. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/presentation_xml_convert.rb +19 -0
  240. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/word_convert.rb +42 -0
  241. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/isodoc/csa/xref.rb +6 -0
  242. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/metanorma-csa.rb +11 -0
  243. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/metanorma/csa.rb +7 -0
  244. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/metanorma/csa/processor.rb +52 -0
  245. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/lib/metanorma/csa/version.rb +7 -0
  246. data/gems/ruby/2.6.0/gems/metanorma-csa-1.6.0/metanorma-csa.gemspec +52 -0
  247. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/CODE_OF_CONDUCT.md +74 -0
  248. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/Gemfile +10 -0
  249. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/LICENSE +25 -0
  250. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/Rakefile +23 -0
  251. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/asciidoctor-gb.gemspec.old +47 -0
  252. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/bin/console +14 -0
  253. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/bin/rspec +18 -0
  254. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/bin/setup +8 -0
  255. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb.rb +5 -0
  256. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/basicdoc.rng +1059 -0
  257. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/biblio.rng +1237 -0
  258. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/cleanup.rb +130 -0
  259. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/converter.rb +146 -0
  260. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/front.rb +242 -0
  261. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/front_id.rb +57 -0
  262. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/gbstandard.rng +300 -0
  263. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/isodoc.rng +1510 -0
  264. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/isostandard.rng +533 -0
  265. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/reqt.rng +194 -0
  266. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/section_input.rb +42 -0
  267. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/asciidoctor/gb/validate.rb +132 -0
  268. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/base_convert.rb +211 -0
  269. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/cleanup.rb +79 -0
  270. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/common.rb +72 -0
  271. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/gb.recommendation.xsl +3739 -0
  272. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/_coverpage.css +193 -0
  273. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/_coverpage.scss +249 -0
  274. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb-logos/gb-issuer-default.svg +980 -0
  275. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb-logos/gb-standard-db.svg +1 -0
  276. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb-logos/gb-standard-gb.svg +1 -0
  277. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb-logos/gb-standard-gjb.svg +1 -0
  278. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb-logos/gb-standard-gm.svg +1 -0
  279. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb-logos/gb-standard-jjf.svg +1 -0
  280. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb-logos/gb-standard-zb.svg +13 -0
  281. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb.css +657 -0
  282. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/gb.scss +617 -0
  283. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/htmlcompliantstyle.css +1303 -0
  284. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/htmlcompliantstyle.scss +1004 -0
  285. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/htmlstyle.css +844 -0
  286. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/htmlstyle.scss +414 -0
  287. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/wordstyle.css +2932 -0
  288. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html/wordstyle.scss +2750 -0
  289. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/html_convert.rb +70 -0
  290. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/i18n-en.yaml +11 -0
  291. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/i18n-zh-Hans.yaml +11 -0
  292. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/i18n.rb +16 -0
  293. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/init.rb +29 -0
  294. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/metadata.rb +225 -0
  295. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/pdf_convert.rb +21 -0
  296. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/presentation_xml_convert.rb +26 -0
  297. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/word_convert.rb +126 -0
  298. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/isodoc/gb/xref.rb +6 -0
  299. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/metanorma-gb.rb +12 -0
  300. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/metanorma/gb.rb +7 -0
  301. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/metanorma/gb/processor.rb +73 -0
  302. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/lib/metanorma/gb/version.rb +5 -0
  303. data/gems/ruby/2.6.0/gems/metanorma-gb-1.5.1/metanorma-gb.gemspec +49 -0
  304. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/CODE_OF_CONDUCT.md +74 -0
  305. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/Gemfile +11 -0
  306. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/LICENSE +25 -0
  307. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/Rakefile +6 -0
  308. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/bin/console +14 -0
  309. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/bin/rspec +17 -0
  310. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/bin/setup +8 -0
  311. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/asciidoctor/generic.rb +7 -0
  312. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/asciidoctor/generic/basicdoc.rng +1059 -0
  313. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/asciidoctor/generic/biblio.rng +1237 -0
  314. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/asciidoctor/generic/converter.rb +219 -0
  315. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/asciidoctor/generic/generic.rng +79 -0
  316. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/asciidoctor/generic/isodoc.rng +1510 -0
  317. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/asciidoctor/generic/reqt.rng +194 -0
  318. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/asciidoctor/generic/rsd.rng +225 -0
  319. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic.rb +11 -0
  320. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/base_convert.rb +43 -0
  321. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/html/generic.scss +766 -0
  322. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/html/htmlstyle.scss +710 -0
  323. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/html/wordstyle.scss +1157 -0
  324. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/html_convert.rb +65 -0
  325. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/init.rb +27 -0
  326. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/metadata.rb +59 -0
  327. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/pdf_convert.rb +66 -0
  328. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/presentation_xml_convert.rb +19 -0
  329. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/word_convert.rb +60 -0
  330. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/isodoc/generic/xref.rb +6 -0
  331. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/metanorma-generic.rb +8 -0
  332. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/metanorma/generic.rb +108 -0
  333. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/metanorma/generic/processor.rb +88 -0
  334. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/lib/metanorma/generic/version.rb +5 -0
  335. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/metanorma-generic.gemspec +44 -0
  336. data/gems/ruby/2.6.0/gems/metanorma-generic-1.6.0/metanorma.yml.example +61 -0
  337. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/CODE_OF_CONDUCT.md +74 -0
  338. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/Gemfile +7 -0
  339. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/LICENSE +25 -0
  340. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/Rakefile +8 -0
  341. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/bin/rspec +18 -0
  342. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/asciidoctor/iec/basicdoc.rng +1059 -0
  343. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/asciidoctor/iec/biblio.rng +1237 -0
  344. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/asciidoctor/iec/converter.rb +80 -0
  345. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/asciidoctor/iec/front.rb +220 -0
  346. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/asciidoctor/iec/iec.rng +43 -0
  347. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/asciidoctor/iec/isodoc.rng +1510 -0
  348. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/asciidoctor/iec/isostandard.rng +533 -0
  349. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/asciidoctor/iec/reqt.rng +194 -0
  350. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/base_convert.rb +147 -0
  351. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/html/htmlstyle.css +962 -0
  352. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/html/htmlstyle.scss +703 -0
  353. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/html/isodoc.css +845 -0
  354. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/html/isodoc.scss +836 -0
  355. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/html/wordstyle.css +2013 -0
  356. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/html/wordstyle.scss +1854 -0
  357. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/html_convert.rb +43 -0
  358. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/i18n-en.yaml +18 -0
  359. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/i18n-fr.yaml +18 -0
  360. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/i18n-zh-Hans.yaml +14 -0
  361. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/i18n.rb +19 -0
  362. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/iec.international-standard.xsl +4782 -0
  363. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/init.rb +29 -0
  364. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/metadata.rb +28 -0
  365. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/pdf_convert.rb +21 -0
  366. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/presentation_xml_convert.rb +35 -0
  367. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/word_convert.rb +188 -0
  368. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/isodoc/iec/xref.rb +45 -0
  369. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/metanorma-iec.rb +15 -0
  370. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/metanorma/iec.rb +8 -0
  371. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/metanorma/iec/processor.rb +49 -0
  372. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/lib/metanorma/iec/version.rb +6 -0
  373. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/metanorma-iec.gemspec +45 -0
  374. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/asciidoctor-iec/base_spec.rb +602 -0
  375. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/asciidoctor-iec/blocks_spec.rb +481 -0
  376. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/asciidoctor-iec/cleanup_spec.rb +440 -0
  377. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/asciidoctor-iec/iev_spec.rb +234 -0
  378. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/asciidoctor-iec/inline_spec.rb +164 -0
  379. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/asciidoctor-iec/lists_spec.rb +190 -0
  380. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/asciidoctor-iec/section_spec.rb +369 -0
  381. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/asciidoctor-iec/validate_spec.rb +20 -0
  382. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/assets/html.css +2 -0
  383. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/assets/word.css +2 -0
  384. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/blocks_spec.rb +219 -0
  385. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/i18n_spec.rb +648 -0
  386. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/iev_spec.rb +564 -0
  387. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/inline_spec.rb +287 -0
  388. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/iso_spec.rb +217 -0
  389. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/metadata_spec.rb +242 -0
  390. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/postproc_spec.rb +299 -0
  391. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/ref_spec.rb +376 -0
  392. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/section_spec.rb +541 -0
  393. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/isodoc/terms_spec.rb +193 -0
  394. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/metanorma/processor_spec.rb +76 -0
  395. data/gems/ruby/2.6.0/gems/metanorma-iec-1.2.1/spec/spec_helper.rb +296 -0
  396. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/CODE_OF_CONDUCT.md +74 -0
  397. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/Gemfile +13 -0
  398. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/Guardfile +22 -0
  399. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/LICENSE +25 -0
  400. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/Rakefile +6 -0
  401. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/bin/asciidoctor-rfc2 +14 -0
  402. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/bin/asciidoctor-rfc2.bat +2 -0
  403. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/bin/asciidoctor-rfc3 +14 -0
  404. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/bin/console +14 -0
  405. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/bin/rspec +17 -0
  406. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/bin/setup +8 -0
  407. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/docs/installation.md +21 -0
  408. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/docs/navigation.md +7 -0
  409. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/docs/overview.md +5 -0
  410. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/basicdoc.rng +1059 -0
  411. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/biblio.rng +1237 -0
  412. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/blocks.rb +78 -0
  413. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/converter.rb +201 -0
  414. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/front.rb +144 -0
  415. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/ietf.rng +888 -0
  416. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/isodoc.rng +1510 -0
  417. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/reqt.rng +194 -0
  418. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/asciidoctor/ietf/validate.rb +84 -0
  419. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/blocks.rb +227 -0
  420. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/cleanup.rb +230 -0
  421. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/footnotes.rb +70 -0
  422. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/front.rb +236 -0
  423. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/inline.rb +167 -0
  424. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/metadata.rb +54 -0
  425. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/references.rb +148 -0
  426. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/reqt.rb +79 -0
  427. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/rfc_convert.rb +82 -0
  428. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/section.rb +175 -0
  429. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/table.rb +43 -0
  430. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/terms.rb +52 -0
  431. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/isodoc/ietf/xref.rb +20 -0
  432. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/metanorma-ietf.rb +8 -0
  433. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/metanorma/ietf.rb +8 -0
  434. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/metanorma/ietf/processor.rb +103 -0
  435. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/lib/metanorma/ietf/version.rb +5 -0
  436. data/gems/ruby/2.6.0/gems/metanorma-ietf-2.2.0/metanorma-ietf.gemspec +53 -0
  437. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/CODE_OF_CONDUCT.md +74 -0
  438. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/Gemfile +11 -0
  439. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/LICENSE +25 -0
  440. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/Rakefile +8 -0
  441. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/bin/console +14 -0
  442. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/bin/rspec +18 -0
  443. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/bin/setup +8 -0
  444. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/asciidoctor/iho.rb +4 -0
  445. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/asciidoctor/iho/basicdoc.rng +1059 -0
  446. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/asciidoctor/iho/biblio.rng +1237 -0
  447. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/asciidoctor/iho/converter.rb +105 -0
  448. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/asciidoctor/iho/iho.rng +144 -0
  449. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/asciidoctor/iho/isodoc.rng +1510 -0
  450. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/asciidoctor/iho/reqt.rng +194 -0
  451. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/base_convert.rb +20 -0
  452. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/html/htmlstyle.css +1007 -0
  453. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/html/htmlstyle.scss +757 -0
  454. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/html/iho.css +798 -0
  455. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/html/iho.scss +759 -0
  456. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/html/logo.svg +555 -0
  457. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/html/wordstyle.css +1252 -0
  458. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/html/wordstyle.scss +1155 -0
  459. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/html_convert.rb +34 -0
  460. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/iho.specification.xsl +3501 -0
  461. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/iho.standard.xsl +3501 -0
  462. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/init.rb +23 -0
  463. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/metadata.rb +26 -0
  464. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/pdf_convert.rb +23 -0
  465. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/presentation_xml_convert.rb +12 -0
  466. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/word_convert.rb +47 -0
  467. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/isodoc/iho/xref.rb +64 -0
  468. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/metanorma-iho.rb +13 -0
  469. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/metanorma/iho.rb +32 -0
  470. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/metanorma/iho/processor.rb +46 -0
  471. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/lib/metanorma/iho/version.rb +5 -0
  472. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/metanorma-iho.gemspec +44 -0
  473. data/gems/ruby/2.6.0/gems/metanorma-iho-0.2.0/metanorma.yml +56 -0
  474. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/CODE_OF_CONDUCT.md +46 -0
  475. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/Gemfile +14 -0
  476. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/LICENSE +25 -0
  477. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/Makefile +39 -0
  478. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/Rakefile +8 -0
  479. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/bin/rspec +18 -0
  480. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/base.rb +67 -0
  481. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/basicdoc.rng +1059 -0
  482. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/biblio.rng +1237 -0
  483. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/cleanup.rb +129 -0
  484. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/converter.rb +18 -0
  485. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/front.rb +138 -0
  486. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/front_id.rb +196 -0
  487. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/isodoc.rng +1510 -0
  488. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/isostandard-amd.rng +98 -0
  489. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/isostandard.rnc +176 -0
  490. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/isostandard.rng +533 -0
  491. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/macros.rb +21 -0
  492. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/reqt.rng +194 -0
  493. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/section.rb +46 -0
  494. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/term_lookup_cleanup.rb +86 -0
  495. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/validate.rb +194 -0
  496. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/validate_requirements.rb +105 -0
  497. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/validate_section.rb +185 -0
  498. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/validate_style.rb +150 -0
  499. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/asciidoctor/iso/validate_title.rb +99 -0
  500. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/base_convert.rb +156 -0
  501. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/htmlstyle.css +47 -0
  502. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/htmlstyle.scss +45 -0
  503. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/isodoc.css +862 -0
  504. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/isodoc.scss +851 -0
  505. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/style-human.css +968 -0
  506. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/style-human.scss +695 -0
  507. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/style-iso.css +996 -0
  508. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/style-iso.scss +712 -0
  509. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/wordstyle.css +1515 -0
  510. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html/wordstyle.scss +1393 -0
  511. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/html_convert.rb +55 -0
  512. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/i18n-en.yaml +11 -0
  513. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/i18n-fr.yaml +10 -0
  514. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/i18n-zh-Hans.yaml +8 -0
  515. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/i18n.rb +19 -0
  516. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/init.rb +33 -0
  517. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/iso.amendment.xsl +4638 -0
  518. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/iso.international-standard.xsl +4638 -0
  519. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/metadata.rb +217 -0
  520. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/pdf_convert.rb +26 -0
  521. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/presentation_xml_convert.rb +111 -0
  522. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/sections.rb +61 -0
  523. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/sts_convert.rb +31 -0
  524. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/word_convert.rb +127 -0
  525. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/isodoc/iso/xref.rb +113 -0
  526. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/metanorma-iso.rb +14 -0
  527. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/metanorma/iso.rb +7 -0
  528. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/metanorma/iso/processor.rb +62 -0
  529. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/lib/metanorma/iso/version.rb +5 -0
  530. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/metanorma-iso.gemspec +50 -0
  531. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/amd_spec.rb +726 -0
  532. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/base_spec.rb +593 -0
  533. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/blocks_spec.rb +482 -0
  534. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/cleanup_spec.rb +995 -0
  535. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/inline_spec.rb +164 -0
  536. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/lists_spec.rb +190 -0
  537. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/macros_spec.rb +310 -0
  538. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/refs_spec.rb +286 -0
  539. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/section_spec.rb +357 -0
  540. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/table_spec.rb +307 -0
  541. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/asciidoctor-iso/validate_spec.rb +1127 -0
  542. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/assets/html.css +2 -0
  543. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/assets/i18n.yaml +2 -0
  544. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/assets/std.css +2 -0
  545. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/assets/word.css +2 -0
  546. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/examples/english.yaml +69 -0
  547. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/examples/rice.sh +4 -0
  548. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/amd_spec.rb +808 -0
  549. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/blocks_spec.rb +534 -0
  550. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/i18n_spec.rb +954 -0
  551. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/inline_spec.rb +331 -0
  552. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/iso_spec.rb +384 -0
  553. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/metadata_spec.rb +248 -0
  554. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/postproc_spec.rb +708 -0
  555. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/ref_spec.rb +346 -0
  556. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/section_spec.rb +555 -0
  557. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/table_spec.rb +426 -0
  558. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/terms_spec.rb +202 -0
  559. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/isodoc/xref_spec.rb +1477 -0
  560. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/metanorma/processor_spec.rb +61 -0
  561. data/gems/ruby/2.6.0/gems/metanorma-iso-1.5.1/spec/spec_helper.rb +267 -0
  562. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/CODE_OF_CONDUCT.md +74 -0
  563. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/Gemfile +11 -0
  564. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/LICENSE +25 -0
  565. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/Rakefile +8 -0
  566. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/bin/console +14 -0
  567. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/bin/rspec +18 -0
  568. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/bin/setup +8 -0
  569. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu.rb +7 -0
  570. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/basicdoc.rng +1059 -0
  571. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/biblio.rng +1237 -0
  572. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/cleanup.rb +205 -0
  573. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/converter.rb +143 -0
  574. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/front.rb +216 -0
  575. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/isodoc.rng +1510 -0
  576. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/itu.rng +264 -0
  577. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/macros.rb +27 -0
  578. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/reqt.rng +194 -0
  579. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/asciidoctor/itu/validate.rb +145 -0
  580. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu.rb +12 -0
  581. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/base_convert.rb +196 -0
  582. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/International_Telecommunication_Union_Logo.svg +1 -0
  583. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/_coverpage.css +349 -0
  584. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/_coverpage.scss +183 -0
  585. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/htmlstyle.css +1159 -0
  586. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/htmlstyle.scss +601 -0
  587. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/itu.css +1138 -0
  588. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/itu.scss +1097 -0
  589. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/wordstyle.css +1808 -0
  590. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html/wordstyle.scss +1679 -0
  591. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/html_convert.rb +73 -0
  592. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/i18n-en.yaml +41 -0
  593. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/i18n.rb +14 -0
  594. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/init.rb +29 -0
  595. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/itu.recommendation-annex.xsl +3798 -0
  596. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/itu.recommendation.xsl +3798 -0
  597. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/itu.resolution.xsl +3798 -0
  598. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/metadata.rb +96 -0
  599. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/pdf_convert.rb +25 -0
  600. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/presentation_xml_convert.rb +55 -0
  601. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/ref.rb +130 -0
  602. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/terms.rb +64 -0
  603. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/word_convert.rb +238 -0
  604. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/isodoc/itu/xref.rb +175 -0
  605. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/metanorma-itu.rb +8 -0
  606. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/metanorma/itu.rb +9 -0
  607. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/metanorma/itu/processor.rb +53 -0
  608. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/lib/metanorma/itu/version.rb +5 -0
  609. data/gems/ruby/2.6.0/gems/metanorma-itu-1.2.0/metanorma-itu.gemspec +44 -0
  610. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/CODE_OF_CONDUCT.md +74 -0
  611. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/Gemfile +11 -0
  612. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/LICENSE +25 -0
  613. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/Rakefile +8 -0
  614. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/bin/console +14 -0
  615. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/bin/rspec +18 -0
  616. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/bin/setup +8 -0
  617. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/asciidoctor/m3aawg.rb +5 -0
  618. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/asciidoctor/m3aawg/basicdoc.rng +1059 -0
  619. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/asciidoctor/m3aawg/biblio.rng +1237 -0
  620. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/asciidoctor/m3aawg/converter.rb +142 -0
  621. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/asciidoctor/m3aawg/isodoc.rng +1510 -0
  622. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/asciidoctor/m3aawg/m3d.rng +109 -0
  623. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/asciidoctor/m3aawg/reqt.rng +194 -0
  624. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/asciidoctor/m3aawg/validate.rb +22 -0
  625. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/base_convert.rb +22 -0
  626. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/html/htmlstyle.css +1030 -0
  627. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/html/htmlstyle.scss +733 -0
  628. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/html/m3d.css +758 -0
  629. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/html/m3d.scss +742 -0
  630. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/html/wordstyle.css +1278 -0
  631. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/html/wordstyle.scss +1174 -0
  632. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/html_convert.rb +65 -0
  633. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/i18n-en.yaml +1 -0
  634. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/i18n.rb +10 -0
  635. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/init.rb +27 -0
  636. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/m3d.report.xsl +3408 -0
  637. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/metadata.rb +53 -0
  638. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/pdf_convert.rb +22 -0
  639. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/presentation_xml_convert.rb +19 -0
  640. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/word_convert.rb +63 -0
  641. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/isodoc/m3aawg/xref.rb +6 -0
  642. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/metanorma-m3aawg.rb +12 -0
  643. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/metanorma/m3aawg.rb +7 -0
  644. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/metanorma/m3aawg/processor.rb +50 -0
  645. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/lib/metanorma/m3aawg/version.rb +5 -0
  646. data/gems/ruby/2.6.0/gems/metanorma-m3aawg-1.5.0/metanorma-m3d.gemspec +47 -0
  647. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/CODE_OF_CONDUCT.md +74 -0
  648. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/Gemfile +11 -0
  649. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/LICENSE +25 -0
  650. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/Rakefile +8 -0
  651. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/bin/console +14 -0
  652. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/bin/rspec +18 -0
  653. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/bin/setup +8 -0
  654. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist.rb +5 -0
  655. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/basicdoc.rng +1059 -0
  656. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/biblio.rng +1237 -0
  657. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/boilerplate.rb +107 -0
  658. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/cleanup.rb +206 -0
  659. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/converter.rb +218 -0
  660. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/front.rb +259 -0
  661. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/front_id.rb +124 -0
  662. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/isodoc.rng +1510 -0
  663. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/nist.rng +186 -0
  664. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/reqt.rng +194 -0
  665. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/asciidoctor/nist/validate.rb +95 -0
  666. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/base_convert.rb +185 -0
  667. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/common.xsl +1246 -0
  668. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/_coverpage.css +243 -0
  669. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/_coverpage.scss +328 -0
  670. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/htmlstyle.css +955 -0
  671. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/htmlstyle.scss +463 -0
  672. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/nist.css +1055 -0
  673. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/nist.scss +1010 -0
  674. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/nist_cswp.css +996 -0
  675. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/nist_cswp.scss +955 -0
  676. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/wordstyle.css +1440 -0
  677. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/wordstyle.scss +1348 -0
  678. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/wordstyle_cswp.css +1119 -0
  679. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html/wordstyle_cswp.scss +1026 -0
  680. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/html_convert.rb +137 -0
  681. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/i18n-en.yaml +13 -0
  682. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/i18n.rb +10 -0
  683. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/init.rb +37 -0
  684. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/metadata.rb +236 -0
  685. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/metadata_id.rb +125 -0
  686. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/nist.cswp.xsl +3645 -0
  687. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/nist.sp.xsl +4726 -0
  688. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/pdf_convert.rb +22 -0
  689. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/presentation_xml_convert.rb +80 -0
  690. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/refs.rb +89 -0
  691. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/render.rb +255 -0
  692. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/render_contributors.rb +80 -0
  693. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/render_dates.rb +42 -0
  694. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/section.rb +58 -0
  695. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/word_convert.rb +173 -0
  696. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/word_convert_toc.rb +86 -0
  697. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/isodoc/nist/xref.rb +61 -0
  698. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/metanorma-nist.rb +14 -0
  699. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/metanorma/nist.rb +7 -0
  700. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/metanorma/nist/processor.rb +48 -0
  701. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/lib/metanorma/nist/version.rb +5 -0
  702. data/gems/ruby/2.6.0/gems/metanorma-nist-1.2.0/metanorma-nist.gemspec +47 -0
  703. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/CODE_OF_CONDUCT.md +74 -0
  704. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/Gemfile +11 -0
  705. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/LICENSE +25 -0
  706. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/README.adoc.old +187 -0
  707. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/Rakefile +8 -0
  708. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/bin/console +14 -0
  709. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/bin/rspec +17 -0
  710. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/bin/setup +8 -0
  711. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc.rb +7 -0
  712. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc/basicdoc.rng +1059 -0
  713. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc/biblio.rng +1237 -0
  714. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc/converter.rb +134 -0
  715. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc/front.rb +195 -0
  716. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc/isodoc.rng +1510 -0
  717. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc/ogc.rng +124 -0
  718. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc/reqt.rng +194 -0
  719. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/asciidoctor/ogc/validate.rb +108 -0
  720. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc.rb +12 -0
  721. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/base_convert.rb +79 -0
  722. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/biblio.rb +120 -0
  723. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html/_coverpage.css +195 -0
  724. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html/_coverpage.scss +247 -0
  725. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html/htmlstyle.css +1084 -0
  726. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html/htmlstyle.scss +599 -0
  727. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html/ogc.css +835 -0
  728. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html/ogc.scss +792 -0
  729. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html/wordstyle.css +1253 -0
  730. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html/wordstyle.scss +1155 -0
  731. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/html_convert.rb +89 -0
  732. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/i18n-en.yaml +11 -0
  733. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/i18n.rb +10 -0
  734. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/init.rb +32 -0
  735. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/metadata.rb +111 -0
  736. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +3802 -0
  737. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.best-practice.xsl +3802 -0
  738. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +3802 -0
  739. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.community-practice.xsl +3802 -0
  740. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.community-standard.xsl +3802 -0
  741. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.discussion-paper.xsl +3802 -0
  742. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.engineering-report.xsl +3802 -0
  743. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.other.xsl +3802 -0
  744. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.policy.xsl +3802 -0
  745. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.reference-model.xsl +3802 -0
  746. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.release-notes.xsl +3802 -0
  747. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.standard.xsl +3802 -0
  748. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.test-suite.xsl +3802 -0
  749. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.user-guide.xsl +3802 -0
  750. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/ogc.white-paper.xsl +3554 -0
  751. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/pdf_convert.rb +24 -0
  752. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/presentation_xml_convert.rb +137 -0
  753. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/reqt.rb +168 -0
  754. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/sections.rb +66 -0
  755. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/word_convert.rb +189 -0
  756. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/isodoc/ogc/xref.rb +156 -0
  757. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/metanorma-ogc.rb +8 -0
  758. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/metanorma/ogc.rb +12 -0
  759. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/metanorma/ogc/processor.rb +49 -0
  760. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/lib/metanorma/ogc/version.rb +5 -0
  761. data/gems/ruby/2.6.0/gems/metanorma-ogc-1.2.0/metanorma-ogc.gemspec +41 -0
  762. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/CODE_OF_CONDUCT.md +46 -0
  763. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/Gemfile +11 -0
  764. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/LICENSE +25 -0
  765. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/Makefile +39 -0
  766. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/Rakefile +8 -0
  767. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/bin/rspec +18 -0
  768. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/base.rb +242 -0
  769. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/basicdoc.rng +1059 -0
  770. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/biblio.rng +1237 -0
  771. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/blocks.rb +191 -0
  772. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/blocks_notes.rb +89 -0
  773. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/cleanup.rb +177 -0
  774. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/cleanup_block.rb +183 -0
  775. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/cleanup_boilerplate.rb +100 -0
  776. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/cleanup_footnotes.rb +87 -0
  777. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/cleanup_inline.rb +134 -0
  778. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/cleanup_ref.rb +247 -0
  779. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/cleanup_section.rb +221 -0
  780. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/cleanup_terms.rb +144 -0
  781. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/converter.rb +86 -0
  782. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/datamodel/attributes_table_preprocessor.rb +57 -0
  783. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/datamodel/diagram_preprocessor.rb +102 -0
  784. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/datamodel/plantuml_renderer.rb +408 -0
  785. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/front.rb +210 -0
  786. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/front_contributor.rb +99 -0
  787. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/inline.rb +233 -0
  788. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/isodoc.rng +1510 -0
  789. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/lists.rb +115 -0
  790. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/log.rb +50 -0
  791. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/macros.rb +179 -0
  792. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/macros_plantuml.rb +100 -0
  793. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/macros_yaml2text.rb +165 -0
  794. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/ref.rb +257 -0
  795. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/ref_sect.rb +124 -0
  796. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/reqt.rb +73 -0
  797. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/reqt.rng +194 -0
  798. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/section.rb +244 -0
  799. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/table.rb +70 -0
  800. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/utils.rb +194 -0
  801. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/validate.rb +97 -0
  802. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/validate_section.rb +51 -0
  803. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/views/datamodel/model_representation.adoc.erb +30 -0
  804. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/asciidoctor/standoc/views/datamodel/plantuml_representation.adoc.erb +20 -0
  805. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/metanorma-standoc.rb +10 -0
  806. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/metanorma/standoc.rb +11 -0
  807. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/metanorma/standoc/latexml_requirement.rb +62 -0
  808. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/metanorma/standoc/processor.rb +38 -0
  809. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/metanorma/standoc/requirement.rb +13 -0
  810. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/lib/metanorma/standoc/version.rb +5 -0
  811. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/metanorma-standoc.gemspec +56 -0
  812. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/base_spec.rb +519 -0
  813. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/blocks_spec.rb +1271 -0
  814. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/cleanup_spec.rb +3224 -0
  815. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/datamodel/attributes_table_preprocessor_spec.rb +111 -0
  816. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/datamodel/diagram_preprocessor_spec.rb +72 -0
  817. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/inline_spec.rb +308 -0
  818. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/isobib_cache_spec.rb +705 -0
  819. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/lists_spec.rb +205 -0
  820. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/macros_spec.rb +538 -0
  821. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/macros_yaml2text_spec.rb +565 -0
  822. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/refs_dl_spec.rb +850 -0
  823. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/refs_spec.rb +1648 -0
  824. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/section_spec.rb +983 -0
  825. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/table_spec.rb +307 -0
  826. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/asciidoctor-standoc/validate_spec.rb +328 -0
  827. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/assets/codes.yml +695 -0
  828. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/assets/html.scss +13 -0
  829. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/assets/i18n.yaml +17 -0
  830. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/assets/iso123.rxl +107 -0
  831. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/assets/std.css +2 -0
  832. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/assets/word.scss +13 -0
  833. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/AddressClassProfile.yml +90 -0
  834. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/AddressComponentProfile.yml +63 -0
  835. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/AddressComponentSpecification.yml +15 -0
  836. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/AddressProfile.yml +36 -0
  837. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/AttributeProfile.yml +32 -0
  838. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/InterchangeAddressClassProfile.yml +79 -0
  839. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/Localization copy.yml +23 -0
  840. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/Localization.yml +23 -0
  841. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/ProfileCompliantAddress.yml +36 -0
  842. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/ProfileCompliantAddressComponent.yml +15 -0
  843. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/Signature.yml +20 -0
  844. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/SignatureBlankDefinition.yml +20 -0
  845. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/TextDirectionCode copy.yml +16 -0
  846. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/TextDirectionCode.yml +16 -0
  847. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/Validity.yml +14 -0
  848. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/iso19160-1/Address.yml +22 -0
  849. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/models/iso19160-1/AddressComponent.yml +2 -0
  850. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/style.uml.inc +37 -0
  851. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/views/CommonModels.yml +9 -0
  852. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/datamodel/models/views/TopDown.yml +62 -0
  853. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/english.yaml +69 -0
  854. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/examples/rice.sh +4 -0
  855. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/metanorma/processor_spec.rb +92 -0
  856. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/spec_helper.rb +249 -0
  857. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +719 -0
  858. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/vcr_cassettes/isobib_get_123.yml +182 -0
  859. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/vcr_cassettes/isobib_get_123_1.yml +361 -0
  860. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/vcr_cassettes/isobib_get_123_2001.yml +182 -0
  861. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/vcr_cassettes/isobib_get_124.yml +182 -0
  862. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +109 -0
  863. data/gems/ruby/2.6.0/gems/metanorma-standoc-1.5.0/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +436 -0
  864. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/CODE_OF_CONDUCT.md +74 -0
  865. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/Gemfile +11 -0
  866. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/LICENSE +25 -0
  867. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/Rakefile +8 -0
  868. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/bin/console +14 -0
  869. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/bin/rspec +17 -0
  870. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/bin/setup +8 -0
  871. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/asciidoctor/un.rb +7 -0
  872. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/asciidoctor/un/basicdoc.rng +1059 -0
  873. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/asciidoctor/un/biblio.rng +1237 -0
  874. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/asciidoctor/un/converter.rb +253 -0
  875. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/asciidoctor/un/isodoc.rng +1510 -0
  876. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/asciidoctor/un/reqt.rng +194 -0
  877. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/asciidoctor/un/un.rng +356 -0
  878. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/asciidoctor/un/validate.rb +23 -0
  879. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un.rb +11 -0
  880. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/base_convert.rb +35 -0
  881. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/html/htmlstyle.css +1096 -0
  882. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/html/htmlstyle.scss +881 -0
  883. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/html/unece.css +818 -0
  884. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/html/unece.scss +801 -0
  885. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/html/wordstyle.css +1237 -0
  886. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/html/wordstyle.scss +1140 -0
  887. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/html_convert.rb +112 -0
  888. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/i18n-en.yaml +2 -0
  889. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/i18n.rb +11 -0
  890. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/init.rb +29 -0
  891. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/metadata.rb +102 -0
  892. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/pdf_convert.rb +28 -0
  893. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/presentation_xml_convert.rb +53 -0
  894. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/un.plenary-attachment.xsl +3618 -0
  895. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/un.plenary.xsl +3618 -0
  896. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/un.recommendation.xsl +3605 -0
  897. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/word_convert.rb +174 -0
  898. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/isodoc/un/xref.rb +185 -0
  899. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/metanorma-un.rb +8 -0
  900. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/metanorma/un.rb +12 -0
  901. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/metanorma/un/UN_emblem_blue.svg +193 -0
  902. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/metanorma/un/input.rb +18 -0
  903. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/metanorma/un/processor.rb +49 -0
  904. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/lib/metanorma/un/version.rb +5 -0
  905. data/gems/ruby/2.6.0/gems/metanorma-un-0.5.0/metanorma-unece.gemspec +46 -0
  906. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/CHANGELOG.md +6 -0
  907. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/Gemfile +8 -0
  908. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/LICENSE +25 -0
  909. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/Rakefile +6 -0
  910. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/bin/console +11 -0
  911. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/bin/rspec +29 -0
  912. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/bin/setup +8 -0
  913. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/exe/relaton +21 -0
  914. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/i18n.yaml +1 -0
  915. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton-cli.rb +10 -0
  916. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/bibcollection.rb +120 -0
  917. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/bibdata.rb +90 -0
  918. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/cli.rb +55 -0
  919. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/cli/base_convertor.rb +141 -0
  920. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/cli/command.rb +115 -0
  921. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/cli/relaton_file.rb +276 -0
  922. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/cli/version.rb +5 -0
  923. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/cli/xml_convertor.rb +47 -0
  924. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/cli/xml_to_html_renderer.rb +116 -0
  925. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/cli/yaml_convertor.rb +99 -0
  926. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/lib/relaton/element_finder.rb +25 -0
  927. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/relaton-cli.gemspec +40 -0
  928. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/templates/_document.liquid +92 -0
  929. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/templates/_index.liquid +53 -0
  930. data/gems/ruby/2.6.0/gems/relaton-cli-1.2.1/templates/index-style.css +1017 -0
  931. data/gems/ruby/2.6.0/specifications/fontist-1.2.0.gemspec +51 -0
  932. data/gems/ruby/2.6.0/specifications/isodoc-1.2.1.gemspec +87 -0
  933. data/gems/ruby/2.6.0/specifications/metanorma-cc-1.5.0.gemspec +67 -0
  934. data/gems/ruby/2.6.0/specifications/metanorma-csa-1.6.0.gemspec +85 -0
  935. data/gems/ruby/2.6.0/specifications/metanorma-gb-1.5.1.gemspec +79 -0
  936. data/gems/ruby/2.6.0/specifications/metanorma-generic-1.6.0.gemspec +73 -0
  937. data/gems/ruby/2.6.0/specifications/metanorma-iec-1.2.1.gemspec +72 -0
  938. data/gems/ruby/2.6.0/specifications/metanorma-ietf-2.2.0.gemspec +73 -0
  939. data/gems/ruby/2.6.0/specifications/metanorma-iho-0.2.0.gemspec +73 -0
  940. data/gems/ruby/2.6.0/specifications/metanorma-iso-1.5.1.gemspec +81 -0
  941. data/gems/ruby/2.6.0/specifications/metanorma-itu-1.2.0.gemspec +79 -0
  942. data/gems/ruby/2.6.0/specifications/metanorma-m3aawg-1.5.0.gemspec +73 -0
  943. data/gems/ruby/2.6.0/specifications/metanorma-nist-1.2.0.gemspec +82 -0
  944. data/gems/ruby/2.6.0/specifications/metanorma-ogc-1.2.0.gemspec +70 -0
  945. data/gems/ruby/2.6.0/specifications/metanorma-standoc-1.5.0.gemspec +99 -0
  946. data/gems/ruby/2.6.0/specifications/metanorma-un-0.5.0.gemspec +76 -0
  947. data/gems/ruby/2.6.0/specifications/relaton-cli-1.2.1.gemspec +73 -0
  948. data/lib/metanorma/cli/version.rb +1 -1
  949. data/metanorma-cli.gemspec +18 -18
  950. metadata +981 -34
@@ -0,0 +1,1536 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+ require "fileutils"
5
+
6
+ RSpec.describe IsoDoc do
7
+ it "generates file based on string input" do
8
+ FileUtils.rm_f "test.doc"
9
+ FileUtils.rm_f "test.html"
10
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", filename: "test"}).convert("test", <<~"INPUT", false)
11
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
12
+ <bibdata>
13
+ <title language="en">test</title>
14
+ </bibdata>
15
+ <preface><foreword>
16
+ <note>
17
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
18
+ </note>
19
+ </foreword></preface>
20
+ </iso-standard>
21
+ INPUT
22
+ expect(File.exist?("test.html")).to be true
23
+ html = File.read("test.html")
24
+ expect(html).to match(%r{<title>test</title>})
25
+ expect(html).to match(/another empty stylesheet/)
26
+ expect(html).to match(%r{cdnjs\.cloudflare\.com/ajax/libs/mathjax/})
27
+ expect(html).to match(/delimiters: \[\['\(#\(', '\)#\)'\]\]/)
28
+ end
29
+
30
+ it "ignores Liquid markup in the document body" do
31
+ FileUtils.rm_f "test.doc"
32
+ FileUtils.rm_f "test.html"
33
+ IsoDoc::HtmlConvert.new(wordstylesheet: "spec/assets/word.css").convert("test", <<~"INPUT", false)
34
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
35
+ <bibdata>
36
+ <title language="en">test</title>
37
+ </bibdata>
38
+ <preface><foreword>
39
+ <note>
40
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">{% elif %}These results are based on a study carried out on three different types of kernel.</p>
41
+ </note>
42
+ </foreword></preface>
43
+ </iso-standard>
44
+ INPUT
45
+ expect(File.exist?("test.html")).to be true
46
+ html = File.read("test.html")
47
+ end
48
+
49
+ it "ignores Liquid markup in the document body (Word)" do
50
+ FileUtils.rm_f "test.doc"
51
+ FileUtils.rm_f "test.html"
52
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css"}).convert("test", <<~"INPUT", false)
53
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
54
+ <bibdata>
55
+ <title language="en">test</title>
56
+ </bibdata>
57
+ <preface><foreword>
58
+ <note>
59
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">{% elif %}These results are based on a study carried out on three different types of kernel.</p>
60
+ </note>
61
+ </foreword></preface>
62
+ </iso-standard>
63
+ INPUT
64
+ expect(File.exist?("test.doc")).to be true
65
+ html = File.read("test.doc")
66
+ end
67
+
68
+ it "generates HTML output docs with null configuration" do
69
+ FileUtils.rm_f "test.doc"
70
+ FileUtils.rm_f "test.html"
71
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css"}).convert("test", <<~"INPUT", false)
72
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
73
+ <preface><foreword>
74
+ <note>
75
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
76
+ </note>
77
+ </foreword></preface>
78
+ </iso-standard>
79
+ INPUT
80
+ expect(File.exist?("test.html")).to be true
81
+ html = File.read("test.html")
82
+ expect(html).not_to match(%r{<title>test</title>})
83
+ expect(html).not_to match(/another empty stylesheet/)
84
+ expect(html).to match(%r{cdnjs\.cloudflare\.com/ajax/libs/mathjax/})
85
+ expect(html).to match(/delimiters: \[\['\(#\(', '\)#\)'\]\]/)
86
+ end
87
+
88
+ it "generates Word output docs with null configuration" do
89
+ FileUtils.rm_f "test.doc"
90
+ FileUtils.rm_f "test.html"
91
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
92
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
93
+ <preface><foreword>
94
+ <note>
95
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
96
+ </note>
97
+ </foreword></preface>
98
+ </iso-standard>
99
+ INPUT
100
+ expect(File.exist?("test.doc")).to be true
101
+ word = File.read("test.doc")
102
+ expect(word).to match(/one empty stylesheet/)
103
+ expect(word).to match(/div\.table_container/)
104
+ end
105
+
106
+ it "generates HTML output docs with null configuration from file" do
107
+ FileUtils.rm_f "spec/assets/iso.doc"
108
+ FileUtils.rm_f "spec/assets/iso.html"
109
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("spec/assets/iso.xml", nil, false)
110
+ expect(File.exist?("spec/assets/iso.html")).to be true
111
+ html = File.read("spec/assets/iso.html")
112
+ expect(html).to match(/another empty stylesheet/)
113
+ expect(html).to match(%r{https://use.fontawesome.com})
114
+ expect(html).to match(%r{libs/jquery})
115
+ end
116
+
117
+ it "generates Headless HTML output docs with null configuration from file" do
118
+ FileUtils.rm_f "spec/assets/iso.html"
119
+ IsoDoc::HeadlessHtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("spec/assets/iso.xml", nil, false)
120
+ expect(File.exist?("spec/assets/iso.headless.html")).to be true
121
+ html = File.read("spec/assets/iso.headless.html")
122
+ expect(html).not_to match(/another empty stylesheet/)
123
+ expect(html).not_to match(%r{https://use.fontawesome.com})
124
+ expect(html).not_to match(%r{libs/jquery})
125
+ expect(html).not_to match(%r{<html})
126
+ expect(html).not_to match(%r{<head})
127
+ expect(html).not_to match(%r{<body})
128
+ expect(html).to match(%r{<div})
129
+ end
130
+
131
+ it "generates Word output docs with null configuration from file" do
132
+ FileUtils.rm_f "spec/assets/iso.doc"
133
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("spec/assets/iso.xml", nil, false)
134
+ expect(File.exist?("spec/assets/iso.doc")).to be true
135
+ word = File.read("spec/assets/iso.doc")
136
+ expect(word).to match(/one empty stylesheet/)
137
+ end
138
+
139
+ it "generates HTML output docs with complete configuration" do
140
+ FileUtils.rm_f "test.doc"
141
+ FileUtils.rm_f "test.html"
142
+ IsoDoc::HtmlConvert.new({bodyfont: "Zapf", htmlstylesheet: "spec/assets/html.scss", htmlcoverpage: "spec/assets/htmlcover.html", htmlintropage: "spec/assets/htmlintro.html", scripts: "spec/assets/scripts.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
143
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
144
+ <preface><foreword>
145
+ <note>
146
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
147
+ </note>
148
+ </foreword></preface>
149
+ </iso-standard>
150
+ INPUT
151
+ html = File.read("test.html")
152
+ expect(html).to match(/another empty stylesheet/)
153
+ expect(html).to match(/font-family: Zapf/)
154
+ expect(html).to match(/an empty html cover page/)
155
+ expect(html).to match(/an empty html intro page/)
156
+ expect(html).to match(/This is > a script/)
157
+ expect(html).not_to match(/CDATA/)
158
+ expect(html).to match(%r{Anta&#x16D;parolo</h1>})
159
+ end
160
+
161
+ it "generates HTML output docs with default fonts" do
162
+ FileUtils.rm_f "test.doc"
163
+ FileUtils.rm_f "test.html"
164
+ IsoDoc::HtmlConvert.new({htmlstylesheet: "spec/assets/html.scss", htmlcoverpage: "spec/assets/htmlcover.html", htmlintropage: "spec/assets/htmlintro.html", scripts: "spec/assets/scripts.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
165
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
166
+ <preface><foreword>
167
+ <note>
168
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
169
+ </note>
170
+ </foreword></preface>
171
+ </iso-standard>
172
+ INPUT
173
+ html = File.read("test.html")
174
+ expect(html).to match(/another empty stylesheet/)
175
+ expect(html).to match(/font-family: Arial/)
176
+ expect(html).to match(/an empty html cover page/)
177
+ expect(html).to match(/an empty html intro page/)
178
+ expect(html).to match(/This is > a script/)
179
+ expect(html).not_to match(/CDATA/)
180
+ expect(html).to match(%r{Anta&#x16D;parolo</h1>})
181
+ end
182
+
183
+ it "generates Word output docs with complete configuration" do
184
+ FileUtils.rm_f "test.doc"
185
+ FileUtils.rm_f "test.html"
186
+ IsoDoc::WordConvert.new({bodyfont: "Zapf", wordstylesheet: "spec/assets/html.scss", standardstylesheet: "spec/assets/std.css", header: "spec/assets/header.html", wordcoverpage: "spec/assets/wordcover.html", wordintropage: "spec/assets/wordintro.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
187
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
188
+ <preface><foreword>
189
+ <note>
190
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
191
+ </note>
192
+ </foreword></preface>
193
+ </iso-standard>
194
+ INPUT
195
+ word = File.read("test.doc")
196
+ expect(word).to match(/another empty stylesheet/)
197
+ expect(word).to match(/font-family: Zapf/)
198
+ expect(word).to match(/a third empty stylesheet/)
199
+ #expect(word).to match(/<title>test<\/title>/)
200
+ expect(word).to match(/test_files\/header.html/)
201
+ expect(word).to match(/an empty word cover page/)
202
+ expect(word).to match(/an empty word intro page/)
203
+ expect(word).to match(%r{Anta&#x16D;parolo</h1>})
204
+ end
205
+
206
+ it "generates Word output docs with default fonts" do
207
+ FileUtils.rm_f "test.doc"
208
+ FileUtils.rm_f "test.html"
209
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/html.scss", standardstylesheet: "spec/assets/std.css", header: "spec/assets/header.html", wordcoverpage: "spec/assets/wordcover.html", wordintropage: "spec/assets/wordintro.html", i18nyaml: "spec/assets/i18n.yaml", ulstyle: "l1", olstyle: "l2"}).convert("test", <<~"INPUT", false)
210
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
211
+ <preface><foreword>
212
+ <note>
213
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
214
+ </note>
215
+ </foreword></preface>
216
+ </iso-standard>
217
+ INPUT
218
+ word = File.read("test.doc")
219
+ expect(word).to match(/another empty stylesheet/)
220
+ expect(word).to match(/font-family: Arial/)
221
+ expect(word).to match(/a third empty stylesheet/)
222
+ #expect(word).to match(/<title>test<\/title>/)
223
+ expect(word).to match(/test_files\/header.html/)
224
+ expect(word).to match(/an empty word cover page/)
225
+ expect(word).to match(/an empty word intro page/)
226
+ expect(word).to match(%r{Anta&#x16D;parolo</h1>})
227
+ end
228
+
229
+ it "converts definition lists to tables for Word" do
230
+ FileUtils.rm_f "test.doc"
231
+ FileUtils.rm_f "test.html"
232
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
233
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
234
+ <preface><foreword>
235
+ <dl>
236
+ <dt>Term</dt>
237
+ <dd>Definition</dd>
238
+ <dt>Term 2</dt>
239
+ <dd>Definition 2</dd>
240
+ </dl>
241
+ </foreword></preface>
242
+ </iso-standard>
243
+ INPUT
244
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2">').
245
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "")
246
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
247
+ <div class="WordSection2">
248
+ <p class="MsoNormal"><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
249
+ <div>
250
+ <h1 class="ForewordTitle">Foreword</h1>
251
+ <table class="dl">
252
+ <tr>
253
+ <td valign="top" align="left">
254
+ <p align="left" style="margin-left:0pt;text-align:left;" class="MsoNormal">Term</p>
255
+ </td>
256
+ <td valign="top">Definition</td>
257
+ </tr>
258
+ <tr>
259
+ <td valign="top" align="left">
260
+ <p align="left" style="margin-left:0pt;text-align:left;" class="MsoNormal">Term 2</p>
261
+ </td>
262
+ <td valign="top">Definition 2</td>
263
+ </tr>
264
+ </table>
265
+ </div>
266
+ <p class="MsoNormal">&#xA0;</p>
267
+ </div>
268
+ OUTPUT
269
+ end
270
+
271
+ it "populates Word template with terms reference labels" do
272
+ FileUtils.rm_f "test.doc"
273
+ FileUtils.rm_f "test.html"
274
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
275
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
276
+ <sections>
277
+ <terms id="_terms_and_definitions" obligation="normative"><title>1.<tab/>Terms and Definitions</title>
278
+ <term id="paddy1"><name>1.1.</name><preferred>paddy</preferred>
279
+ <definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f">rice retaining its husk after threshing</p></definition>
280
+ <termsource status="modified">
281
+ <origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011">ISO 7301:2011, Clause 3.1</origin>
282
+ <modification>
283
+ <p id="_e73a417d-ad39-417d-a4c8-20e4e2529489">The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here</p>
284
+ </modification>
285
+ </termsource></term>
286
+ </terms>
287
+ </sections>
288
+ </iso-standard>
289
+ INPUT
290
+ word = File.read("test.doc").sub(/^.*<div class="WordSection3">/m, '<div class="WordSection3">').
291
+ sub(%r{<div style="mso-element:footnote-list"/>.*$}m, "")
292
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
293
+ <div class="WordSection3">
294
+ <p class="zzSTDTitle1"></p>
295
+ <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1>1.<span style="mso-tab-count:1">&#xA0; </span>Terms and Definitions</h1>
296
+ <p class="TermNum"><a name="paddy1" id="paddy1"></a>1.1.</p><p class="Terms" style="text-align:left;">paddy</p>
297
+ <p class="MsoNormal"><a name="_eb29b35e-123e-4d1c-b50b-2714d41e747f" id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"></a>rice retaining its husk after threshing</p>
298
+ <p class="MsoNormal">[SOURCE: <a href="#ISO7301">ISO 7301:2011, Clause 3.1</a>, modified &#x2014; The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here]</p></div>
299
+ </div>
300
+ OUTPUT
301
+ end
302
+
303
+ it "populates Word header" do
304
+ FileUtils.rm_f "test.doc"
305
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", header: "spec/assets/header.html"}).convert("test", <<~"INPUT", false)
306
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
307
+ <bibdata type="article">
308
+ <docidentifier>
309
+ <project-number part="1">1000</project-number>
310
+ </docidentifier>
311
+ </bibdata>
312
+ </iso-standard>
313
+ INPUT
314
+ word = File.read("test.doc").sub(%r{^.*Content-Location: file:///C:/Doc/test_files/header.html}m, "Content-Location: file:///C:/Doc/test_files/header.html").
315
+ sub(/------=_NextPart.*$/m, "")
316
+ expect(word).to be_equivalent_to <<~"OUTPUT"
317
+ Content-Location: file:///C:/Doc/test_files/header.html
318
+ Content-Transfer-Encoding: base64
319
+ Content-Type: text/html charset="utf-8"
320
+ Ci8qIGFuIGVtcHR5IGhlYWRlciAqLwoKU1RBUlQgRE9DIElEOiAKICAgICAgICAgICAxMDAwCiAg
321
+ ICAgICAgIDogRU5EIERPQyBJRAoKRklMRU5BTUU6IHRlc3QKCg==
322
+ OUTPUT
323
+ end
324
+
325
+ it "populates Word ToC" do
326
+ FileUtils.rm_f "test.doc"
327
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", wordintropage: "spec/assets/wordintro.html"}).convert("test", <<~"INPUT", false)
328
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
329
+ <sections>
330
+ <clause id="A" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
331
+ <title>Introduction<bookmark id="Q"/> to this<fn reference="1">
332
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
333
+ </fn></title>
334
+ </clause>
335
+ <clause id="O" inline-header="false" obligation="normative">
336
+ <title>Clause 4.2</title>
337
+ <p>A<fn reference="1">
338
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
339
+ </fn></p>
340
+ <clause id="P" inline-header="false" obligation="normative">
341
+ <title>Clause 4.2.1</title>
342
+ </clause>
343
+ </clause></clause>
344
+ </sections>
345
+ </iso-standard>
346
+ INPUT
347
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2">').
348
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "")
349
+ expect(xmlpp(word.gsub(/_Toc\d\d+/, "_Toc"))).to be_equivalent_to xmlpp(<<~'OUTPUT')
350
+ <div class="WordSection2">
351
+ /* an empty word intro page */
352
+
353
+ <p class="MsoToc1"><span lang="EN-GB" xml:lang="EN-GB"><span style="mso-element:field-begin"></span><span style="mso-spacerun:yes">&#xA0;</span>TOC
354
+ \o "1-2" \h \z \u <span style="mso-element:field-separator"></span></span>
355
+ <span class="MsoHyperlink"><span lang="EN-GB" style="mso-no-proof:yes" xml:lang="EN-GB">
356
+ <a href="#_Toc">Clause 4<span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
357
+ <span style="mso-tab-count:1 dotted">. </span>
358
+ </span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
359
+ <span style="mso-element:field-begin"></span></span>
360
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"> PAGEREF _Toc \h </span>
361
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-separator"></span></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">1</span>
362
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-end"></span></span></a></span></span></p>
363
+ <p class="MsoToc2">
364
+ <span class="MsoHyperlink">
365
+ <span lang="EN-GB" style="mso-no-proof:yes" xml:lang="EN-GB">
366
+ <a href="#_Toc">Introduction to this<span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
367
+ <span style="mso-tab-count:1 dotted">. </span>
368
+ </span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
369
+ <span style="mso-element:field-begin"></span></span>
370
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"> PAGEREF _Toc \h </span>
371
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-separator"></span></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">1</span>
372
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-end"></span></span></a></span>
373
+ </span>
374
+ </p>
375
+ <p class="MsoToc2">
376
+ <span class="MsoHyperlink">
377
+ <span lang="EN-GB" style="mso-no-proof:yes" xml:lang="EN-GB">
378
+ <a href="#_Toc">Clause 4.2<span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
379
+ <span style="mso-tab-count:1 dotted">. </span>
380
+ </span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
381
+ <span style="mso-element:field-begin"></span></span>
382
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"> PAGEREF _Toc \h </span>
383
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-separator"></span></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">1</span>
384
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-end"></span></span></a></span>
385
+ </span>
386
+ </p>
387
+ <p class="MsoToc1">
388
+ <span lang="EN-GB" xml:lang="EN-GB">
389
+ <span style="mso-element:field-end"></span>
390
+ </span>
391
+ <span lang="EN-GB" xml:lang="EN-GB">
392
+ <p class="MsoNormal">&#xA0;</p>
393
+ </span>
394
+ </p>
395
+ <p class="MsoNormal">&#xA0;</p>
396
+ </div>
397
+ OUTPUT
398
+ end
399
+
400
+ it "populates Word ToC with custom levels" do
401
+ FileUtils.rm_f "test.doc"
402
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", wordintropage: "spec/assets/wordintro.html", doctoclevels: 3}).convert("test", <<~"INPUT", false)
403
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
404
+ <sections>
405
+ <clause id="A" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
406
+ <title>Introduction<bookmark id="Q"/> to this<fn reference="1">
407
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
408
+ </fn></title>
409
+ </clause>
410
+ <clause id="O" inline-header="false" obligation="normative">
411
+ <title>Clause 4.2</title>
412
+ <p>A<fn reference="1">
413
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
414
+ </fn></p>
415
+ <clause id="P" inline-header="false" obligation="normative">
416
+ <title>Clause 4.2.1</title>
417
+ </clause>
418
+ </clause></clause>
419
+ </sections>
420
+ </iso-standard>
421
+ INPUT
422
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2">').
423
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "")
424
+ expect(xmlpp(word.gsub(/_Toc\d\d+/, "_Toc"))).to be_equivalent_to xmlpp(<<~'OUTPUT')
425
+ <div class="WordSection2">
426
+ /* an empty word intro page */
427
+
428
+ <p class="MsoToc1"><span lang="EN-GB" xml:lang="EN-GB"><span style="mso-element:field-begin"></span><span style="mso-spacerun:yes">&#xA0;</span>TOC
429
+ \o "1-3" \h \z \u <span style="mso-element:field-separator"></span></span>
430
+ <span class="MsoHyperlink"><span lang="EN-GB" style="mso-no-proof:yes" xml:lang="EN-GB">
431
+ <a href="#_Toc">Clause 4<span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
432
+ <span style="mso-tab-count:1 dotted">. </span>
433
+ </span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
434
+ <span style="mso-element:field-begin"></span></span>
435
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"> PAGEREF _Toc \h </span>
436
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-separator"></span></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">1</span>
437
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-end"></span></span></a></span></span></p>
438
+ <p class="MsoToc2">
439
+ <span class="MsoHyperlink">
440
+ <span lang="EN-GB" style="mso-no-proof:yes" xml:lang="EN-GB">
441
+ <a href="#_Toc">Introduction to this<span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
442
+ <span style="mso-tab-count:1 dotted">. </span>
443
+ </span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
444
+ <span style="mso-element:field-begin"></span></span>
445
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"> PAGEREF _Toc \h </span>
446
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-separator"></span></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">1</span>
447
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-end"></span></span></a></span>
448
+ </span>
449
+ </p>
450
+ <p class="MsoToc2">
451
+ <span class="MsoHyperlink">
452
+ <span lang="EN-GB" style="mso-no-proof:yes" xml:lang="EN-GB">
453
+ <a href="#_Toc">Clause 4.2<span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
454
+ <span style="mso-tab-count:1 dotted">. </span>
455
+ </span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
456
+ <span style="mso-element:field-begin"></span></span>
457
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"> PAGEREF _Toc \h </span>
458
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-separator"></span></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">1</span>
459
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-end"></span></span></a></span>
460
+ </span>
461
+ </p>
462
+ <p class="MsoToc3">
463
+ <span class="MsoHyperlink">
464
+ <span lang="EN-GB" style="mso-no-proof:yes" xml:lang="EN-GB">
465
+ <a href="#_Toc">Clause 4.2.1<span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
466
+ <span style="mso-tab-count:1 dotted">. </span>
467
+ </span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">
468
+ <span style="mso-element:field-begin"></span></span>
469
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"> PAGEREF _Toc \h </span>
470
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-separator"></span></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB">1</span>
471
+ <span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"></span><span lang="EN-GB" class="MsoTocTextSpan" xml:lang="EN-GB"><span style="mso-element:field-end"></span></span></a></span>
472
+ </span>
473
+ </p>
474
+ <p class="MsoToc1">
475
+ <span lang="EN-GB" xml:lang="EN-GB">
476
+ <span style="mso-element:field-end"></span>
477
+ </span>
478
+ <span lang="EN-GB" xml:lang="EN-GB">
479
+ <p class="MsoNormal">&#xA0;</p>
480
+ </span>
481
+ </p>
482
+ <p class="MsoNormal">&#xA0;</p>
483
+ </div>
484
+ OUTPUT
485
+ end
486
+
487
+ it "generates HTML output with custom ToC levels function" do
488
+ FileUtils.rm_f "test.doc"
489
+ FileUtils.rm_f "test.html"
490
+ IsoDoc::HtmlConvert.new({htmltoclevels: 3}).convert("test", <<~"INPUT", false)
491
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
492
+ <preface><foreword>
493
+ <note>
494
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
495
+ </note>
496
+ </foreword></preface>
497
+ </iso-standard>
498
+ INPUT
499
+ html = File.read("test.html")
500
+ toclevel = <<~"TOCLEVEL"
501
+ function toclevel() { return "h1:not(:empty):not(.TermNum):not(.noTOC),h2:not(:empty):not(.TermNum):not(.noTOC),h3:not(:empty):not(.TermNum):not(.noTOC)";}
502
+ TOCLEVEL
503
+ expect(html).to include toclevel
504
+ end
505
+
506
+ it "reorders footnote numbers in HTML" do
507
+ FileUtils.rm_f "test.html"
508
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", wordintropage: "spec/assets/wordintro.html"}).convert("test", <<~"INPUT", false)
509
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
510
+ <sections>
511
+ <clause id="A" inline-header="false" obligation="normative"><title>Clause 4</title><fn reference="3">
512
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">This is a footnote.</p>
513
+ </fn><clause id="N" inline-header="false" obligation="normative">
514
+ <title>Introduction to this<fn reference="2">
515
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
516
+ </fn></title>
517
+ </clause>
518
+ <clause id="O" inline-header="false" obligation="normative">
519
+ <title>Clause 4.2</title>
520
+ <p>A<fn reference="1">
521
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
522
+ </fn></p>
523
+ </clause></clause>
524
+ </sections>
525
+ </iso-standard>
526
+ INPUT
527
+ html = File.read("test.html").sub(/^.*<main class="main-section">/m, '<main xmlns:epub="epub" class="main-section">').
528
+ sub(%r{</main>.*$}m, "</main>")
529
+ expect(xmlpp(html)).to be_equivalent_to xmlpp(<<~"OUTPUT")
530
+ <main xmlns:epub="epub" class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
531
+ <p class="zzSTDTitle1"></p>
532
+ <div id="A">
533
+ <h1>Clause 4</h1>
534
+ <a class='FootnoteRef' href='#fn:3' id='fnref:1'>
535
+ <sup>1</sup>
536
+ </a>
537
+ <div id="N">
538
+ <h2>Introduction to this<a class='FootnoteRef' href='#fn:2' id='fnref:2'><sup>2</sup></a></h2>
539
+ </div>
540
+ <div id="O">
541
+ <h2>Clause 4.2</h2>
542
+ <p>A<a class='FootnoteRef' href='#fn:2'><sup>2</sup></a></p>
543
+ </div>
544
+ </div>
545
+ <aside id="fn:3" class="footnote">
546
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a class='FootnoteRef' href='#fn:3'>
547
+ <sup>1</sup>
548
+ </a>This is a footnote.</p>
549
+ <a href="#fnref:1">&#x21A9;</a></aside>
550
+ <aside id="fn:2" class="footnote">
551
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a class='FootnoteRef' href='#fn:2'><sup>2</sup></a>Formerly denoted as 15 % (m/m).</p>
552
+ <a href="#fnref:2">&#x21A9;</a></aside>
553
+ </main>
554
+ OUTPUT
555
+ end
556
+
557
+ it "moves images in HTML" do
558
+ FileUtils.rm_f "test.html"
559
+ FileUtils.rm_rf "test_htmlimages"
560
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
561
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
562
+ <preface><foreword>
563
+ <figure id="_">
564
+ <name>Split-it-right sample divider</name>
565
+ <image src="#{File.expand_path(File.join(File.dirname(__FILE__), "..", "assets/rice_image1.png"))}" id="_" mimetype="image/png"/>
566
+ <image src="spec/assets/rice_image1.png" id="_" mimetype="image/png"/>
567
+ <image src="spec/assets/rice_image1.png" id="_" width="20000" height="300000" mimetype="image/png"/>
568
+ <image src="spec/assets/rice_image1.png" id="_" width="99" height="auto" mimetype="image/png"/>
569
+ <image src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB9AAAAfQCAAAAAC/U5ulAAAjo0lEQVR4nOzVMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuAAAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMBAAA//8DAE/7hyLdS2yEAAAAAElFTkSuQmCC" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f3" mimetype="image/png"/>
570
+ </figure>
571
+ </foreword></preface>
572
+ </iso-standard>
573
+ INPUT
574
+ html = File.read("test.html").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
575
+ sub(%r{</main>.*$}m, "</main>")
576
+ expect(`ls test_htmlimages`).to match(/\.png$/)
577
+ expect(xmlpp(html.gsub(/\/[0-9a-f-]+\.png/, "/_.png"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
578
+ <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
579
+ <br />
580
+ <div>
581
+ <h1 class="ForewordTitle">Foreword</h1>
582
+ <div id="_" class="figure">
583
+ <img src="test_htmlimages/_.png" height="776" width="922" />
584
+ <img src="test_htmlimages/_.png" height="776" width="922" />
585
+ <img src="test_htmlimages/_.png" height="800" width="53" />
586
+ <img src="test_htmlimages/_.png" height="83" width="99" />
587
+ <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB9AAAAfQCAAAAAC/U5ulAAAjo0lEQVR4nOzVMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuAAAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMBAAA//8DAE/7hyLdS2yEAAAAAElFTkSuQmCC" height="800" width="800" />
588
+ <p class="FigureTitle" style="text-align:center;">Split-it-right sample divider</p></div>
589
+ </div>
590
+ <p class="zzSTDTitle1"></p>
591
+ </main>
592
+ OUTPUT
593
+
594
+ end
595
+
596
+
597
+ it "moves images in HTML with no file suffix" do
598
+ FileUtils.rm_f "test.html"
599
+ FileUtils.rm_rf "test_htmlimages"
600
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
601
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
602
+ <preface><foreword>
603
+ <figure id="_">
604
+ <name>Split-it-right sample divider</name>
605
+ <image src="spec/assets/rice_image1" id="_" mimetype="image/png"/>
606
+ <image src="spec/assets/rice_image1" id="_" mimetype="image/*"/>
607
+ <image src="data:image/*;base64,iVBORw0KGgoAAAANSUhEUgAAB9AAAAfQCAAAAAC/U5ulAAAjo0lEQVR4nOzVMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuAAAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMBAAA//8DAE/7hyLdS2yEAAAAAElFTkSuQmCC" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f3" mimetype="image/png"/>
608
+ </figure>
609
+ </foreword></preface>
610
+ </iso-standard>
611
+ INPUT
612
+ html = File.read("test.html").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
613
+ sub(%r{</main>.*$}m, "</main>")
614
+ expect(`ls test_htmlimages`).to match(/\.png$/)
615
+ expect(xmlpp(html.gsub(/\/[0-9a-f-]+\.png/, "/_.png"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
616
+ <main class='main-section'>
617
+ <button onclick='topFunction()' id='myBtn' title='Go to top'>Top</button>
618
+ <br/>
619
+ <div>
620
+ <h1 class='ForewordTitle'>Foreword</h1>
621
+ <div id='_' class='figure'>
622
+ <img src='test_htmlimages/_.png' height='776' width='922'/>
623
+ <img src='test_htmlimages/_.png' height='776' width='922'/>
624
+ <img src='data:image/*;base64,iVBORw0KGgoAAAANSUhEUgAAB9AAAAfQCAAAAAC/U5ulAAAjo0lEQVR4nOzVMQ0AMAzAsPInvYHoMS2yEeTLHADge/M6AADYM3QACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIMHQACDB0AAgwdAAIuAAAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMCB0ABgIAAP//7NWBDAAAAMAgf+t7fCWR0AFgQOgAMCB0ABgQOgAMCB0ABoQOAANCB4ABoQPAgNABYEDoADAgdAAYEDoADAgdAAaEDgADQgeAAaEDwIDQAWBA6AAwIHQAGBA6AAwIHQAGhA4AA0IHgAGhA8CA0AFgQOgAMCB0ABgQOgAMBAAA//8DAE/7hyLdS2yEAAAAAElFTkSuQmCC' height='800' width='800'/>
625
+ <p class='FigureTitle' style='text-align:center;'>Split-it-right sample divider</p>
626
+ </div>
627
+ </div>
628
+ <p class='zzSTDTitle1'/>
629
+ </main>
630
+ OUTPUT
631
+ end
632
+
633
+ it "moves images in HTML, using relative file location" do
634
+ FileUtils.rm_f "spec/test.html"
635
+ FileUtils.rm_rf "spec/test_htmlimages"
636
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("spec/test", <<~"INPUT", false)
637
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
638
+ <preface><foreword>
639
+ <figure id="_">
640
+ <name>Split-it-right sample divider</name>
641
+ <image src="#{File.expand_path(File.join(File.dirname(__FILE__), "..", "assets/rice_image1.png"))}" id="_" mimetype="image/png"/>
642
+ <image src="assets/rice_image1.png" id="_" mimetype="image/png"/>
643
+ <image src="assets/rice_image1.png" id="_" width="20000" height="300000" mimetype="image/png"/>
644
+ <image src="assets/rice_image1.png" id="_" width="99" height="auto" mimetype="image/png"/>
645
+ </figure>
646
+ </foreword></preface>
647
+ </iso-standard>
648
+ INPUT
649
+ html = File.read("spec/test.html").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
650
+ sub(%r{</main>.*$}m, "</main>")
651
+ expect(`ls test_htmlimages`).to match(/\.png$/)
652
+ expect(xmlpp(html.gsub(/\/[0-9a-f-]+\.png/, "/_.png"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
653
+ <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
654
+ <br />
655
+ <div>
656
+ <h1 class="ForewordTitle">Foreword</h1>
657
+ <div id="_" class="figure">
658
+ <img src="test_htmlimages/_.png" height="776" width="922" />
659
+ <img src="test_htmlimages/_.png" height="776" width="922" />
660
+ <img src="test_htmlimages/_.png" height="800" width="53" />
661
+ <img src="test_htmlimages/_.png" height="83" width="99" />
662
+ <p class="FigureTitle" style="text-align:center;">Split-it-right sample divider</p></div>
663
+ </div>
664
+ <p class="zzSTDTitle1"></p>
665
+ </main>
666
+ OUTPUT
667
+ end
668
+
669
+
670
+ it "encodes images in HTML as data URIs" do
671
+ FileUtils.rm_f "test.html"
672
+ FileUtils.rm_rf "test_htmlimages"
673
+ IsoDoc::HtmlConvert.new({htmlstylesheet: "spec/assets/html.scss", datauriimage: true}).convert("test", <<~"INPUT", false)
674
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
675
+ <preface><foreword>
676
+ <figure id="_">
677
+ <name>Split-it-right sample divider</name>
678
+ <image src="#{File.expand_path(File.join(File.dirname(__FILE__), "..", "assets/rice_image1.png"))}" id="_" mimetype="image/png"/>
679
+ <image src="spec/assets/rice_image1.png" id="_" mimetype="image/png"/>
680
+ </figure>
681
+ </foreword></preface>
682
+ </iso-standard>
683
+ INPUT
684
+ html = File.read("test.html").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
685
+ sub(%r{</main>.*$}m, "</main>")
686
+ expect(xmlpp(html.gsub(%r{src="data:image/png;base64,[^"]+"}, %{src="data:image/png;base64,_"}))).to be_equivalent_to xmlpp(<<~"OUTPUT")
687
+ <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
688
+ <br />
689
+ <div>
690
+ <h1 class="ForewordTitle">Foreword</h1>
691
+ <div id="_" class="figure">
692
+ <img src="data:image/png;base64,_" height="776" width="922" />
693
+ <img src="data:image/png;base64,_" height="776" width="922" />
694
+ <p class="FigureTitle" style="text-align:center;">Split-it-right sample divider</p></div>
695
+ </div>
696
+ <p class="zzSTDTitle1"></p>
697
+ </main>
698
+ OUTPUT
699
+
700
+ end
701
+
702
+ it "encodes images in HTML as data URIs, using relative file location" do
703
+ FileUtils.rm_f "spec/test.html"
704
+ FileUtils.rm_rf "spec/test_htmlimages"
705
+ IsoDoc::HtmlConvert.new({htmlstylesheet: "spec/assets/html.scss", datauriimage: true}).convert("spec/test", <<~"INPUT", false)
706
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
707
+ <preface><foreword>
708
+ <figure id="_">
709
+ <name>Split-it-right sample divider</name>
710
+ <image src="#{File.expand_path(File.join(File.dirname(__FILE__), "..", "assets/rice_image1.png"))}" id="_" mimetype="image/png"/>
711
+ <image src="assets/rice_image1.png" id="_" mimetype="image/png"/>
712
+ </figure>
713
+ </foreword></preface>
714
+ </iso-standard>
715
+ INPUT
716
+ html = File.read("spec/test.html").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
717
+ sub(%r{</main>.*$}m, "</main>")
718
+ expect(xmlpp(html.gsub(%r{src="data:image/png;base64,[^"]+"}, %{src="data:image/png;base64,_"}))).to be_equivalent_to xmlpp(<<~"OUTPUT")
719
+ <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
720
+ <br />
721
+ <div>
722
+ <h1 class="ForewordTitle">Foreword</h1>
723
+ <div id="_" class="figure">
724
+ <img src="data:image/png;base64,_" height="776" width="922" />
725
+ <img src="data:image/png;base64,_" height="776" width="922" />
726
+ <p class="FigureTitle" style="text-align:center;">Split-it-right sample divider</p></div>
727
+ </div>
728
+ <p class="zzSTDTitle1"></p>
729
+ </main>
730
+ OUTPUT
731
+
732
+ end
733
+
734
+
735
+ it "processes IsoXML terms for HTML" do
736
+ FileUtils.rm_f "test.html"
737
+ FileUtils.rm_f "test.doc"
738
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
739
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
740
+ <sections>
741
+ <terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
742
+ <term id="paddy1"><name>1.1.</name><preferred>paddy</preferred>
743
+ <domain>rice</domain>
744
+ <definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f">rice retaining its husk after threshing</p></definition>
745
+ <termexample id="_bd57bbf1-f948-4bae-b0ce-73c00431f892">
746
+ <p id="_65c9a509-9a89-4b54-a890-274126aeb55c">Foreign seeds, husks, bran, sand, dust.</p>
747
+ <ul>
748
+ <li>A</li>
749
+ </ul>
750
+ </termexample>
751
+ <termexample id="_bd57bbf1-f948-4bae-b0ce-73c00431f894">
752
+ <ul>
753
+ <li>A</li>
754
+ </ul>
755
+ </termexample>
756
+ <termsource status="modified">
757
+ <origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality></origin>
758
+ <modification>
759
+ <p id="_e73a417d-ad39-417d-a4c8-20e4e2529489">The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here</p>
760
+ </modification>
761
+ </termsource></term>
762
+ <term id="paddy"><name>1.2.</name><preferred>paddy</preferred><admitted>paddy rice</admitted>
763
+ <admitted>rough rice</admitted>
764
+ <deprecates>cargo rice</deprecates>
765
+ <definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f">rice retaining its husk after threshing</p></definition>
766
+ <termexample id="_bd57bbf1-f948-4bae-b0ce-73c00431f893">
767
+ <ul>
768
+ <li>A</li>
769
+ </ul>
770
+ </termexample>
771
+ <termnote id="_671a1994-4783-40d0-bc81-987d06ffb74e">
772
+ <p id="_19830f33-e46c-42cc-94ca-a5ef101132d5">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
773
+ </termnote>
774
+ <termnote id="_671a1994-4783-40d0-bc81-987d06ffb74f">
775
+ <ul><li>A</li></ul>
776
+ <p id="_19830f33-e46c-42cc-94ca-a5ef101132d5">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
777
+ </termnote>
778
+ <termsource status="identical">
779
+ <origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality></origin>
780
+ </termsource></term>
781
+ </terms>
782
+ </sections>
783
+ </iso-standard>
784
+ INPUT
785
+ expect(File.exist?("test.html")).to be true
786
+ html = File.read("test.html")
787
+ expect(html).to match(%r{<h2 class="TermNum" id="paddy1">1\.1\.</h2>})
788
+ expect(html).to match(%r{<h2 class="TermNum" id="paddy">1\.2\.</h2>})
789
+ end
790
+
791
+ it "processes empty term modifications" do
792
+ FileUtils.rm_f "test.html"
793
+ FileUtils.rm_f "test.doc"
794
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
795
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
796
+ <sections>
797
+ <terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
798
+ <term id="paddy1"><preferred>paddy</preferred>
799
+ <domain>rice</domain>
800
+ <definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f">rice retaining its husk after threshing</p></definition>
801
+ <termexample id="_bd57bbf1-f948-4bae-b0ce-73c00431f892">
802
+ <p id="_65c9a509-9a89-4b54-a890-274126aeb55c">Foreign seeds, husks, bran, sand, dust.</p>
803
+ <ul>
804
+ <li>A</li>
805
+ </ul>
806
+ </termexample>
807
+ <termexample id="_bd57bbf1-f948-4bae-b0ce-73c00431f894">
808
+ <ul>
809
+ <li>A</li>
810
+ </ul>
811
+ </termexample>
812
+ <termsource status="modified">
813
+ <origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011">ISO 7301:2011, Clause 3.1</origin>
814
+ <modification>
815
+ <p id="_e73a417d-ad39-417d-a4c8-20e4e2529489"/>
816
+ </modification>
817
+ </termsource></term>
818
+ </terms>
819
+ </sections>
820
+ </iso-standard>
821
+ INPUT
822
+ expect(File.exist?("test.html")).to be true
823
+ html = File.read("test.html")
824
+ expect(html).to include '[SOURCE: <a href="#ISO7301">ISO 7301:2011, Clause 3.1</a>, modified]'
825
+ end
826
+
827
+
828
+ it "creates continuation styles for multiparagraph list items in Word" do
829
+ FileUtils.rm_f "test.doc"
830
+ FileUtils.rm_f "test.html"
831
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
832
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
833
+ <preface><foreword>
834
+ <ul>
835
+ <li><p>A</p>
836
+ <p>B</p></li>
837
+ <li><ol><li><p>C</p>
838
+ <p>D</p>
839
+ <sourcecode>E</sourcecode></li>
840
+ </ol></li>
841
+ </ul>
842
+ <ol>
843
+ <li><p>A1</p>
844
+ <p>B1</p></li>
845
+ <li><ul><li><p>C1</p>
846
+ <formula id="_5fc1ef0f-75d2-4b54-802c-b1bad4a53b62">
847
+ <stem type="AsciiMath">D1</stem>
848
+ </formula>
849
+ </ul></li>
850
+ </ol>
851
+ </foreword></preface>
852
+ </iso-standard>
853
+ INPUT
854
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2" xmlns:m="m">').
855
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "")
856
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
857
+ <div class='WordSection2' xmlns:m='m'>
858
+ <p class='MsoNormal'>
859
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
860
+ </p>
861
+ <div>
862
+ <h1 class='ForewordTitle'>Foreword</h1>
863
+ <p class='MsoListParagraphCxSpFirst'>
864
+ A
865
+ <div class='ListContLevel1'>
866
+ <p class='MsoNormal'>B</p>
867
+ </div>
868
+ </p>
869
+ <p class='MsoListParagraphCxSpLast'>
870
+ <p class='MsoListParagraphCxSpFirst'>
871
+ C
872
+ <div class='ListContLevel2'>
873
+ <p class='MsoNormal'>D</p>
874
+ </div>
875
+ <div class='ListContLevel2'>
876
+ <p class='Sourcecode'>E</p>
877
+ </div>
878
+ </p>
879
+ </p>
880
+ <p class='MsoListParagraphCxSpFirst'>
881
+ A1
882
+ <div class='ListContLevel1'>
883
+ <p class='MsoNormal'>B1</p>
884
+ </div>
885
+ </p>
886
+ <p class='MsoListParagraphCxSpLast'>
887
+ C1
888
+ <div class='ListContLevel2'>
889
+ <div>
890
+ <a name='_5fc1ef0f-75d2-4b54-802c-b1bad4a53b62' id='_5fc1ef0f-75d2-4b54-802c-b1bad4a53b62'/>
891
+ <div class='formula'>
892
+ <p class='MsoNormal'>
893
+ <span class='stem'>
894
+ <m:oMath>
895
+ <m:r>
896
+ <m:t>D1</m:t>
897
+ </m:r>
898
+ </m:oMath>
899
+ </span>
900
+ </p>
901
+ </div>
902
+ </div>
903
+ </div>
904
+ </p>
905
+ </div>
906
+ <p class='MsoNormal'>&#xA0;</p>
907
+ </div>
908
+ OUTPUT
909
+ end
910
+
911
+ it "does not lose HTML escapes in postprocessing" do
912
+ FileUtils.rm_f "test.doc"
913
+ FileUtils.rm_f "test.html"
914
+ IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
915
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
916
+ <preface><foreword>
917
+ <sourcecode id="samplecode">
918
+ <name>XML code</name>
919
+ &lt;xml&gt; &amp;
920
+ </sourcecode>
921
+ </foreword></preface>
922
+ </iso-standard>
923
+ INPUT
924
+ html = File.read("test.html").sub(/^.*<main class="main-section">/m, '<main class="main-section">').
925
+ sub(%r{</main>.*$}m, "</main>")
926
+ expect(xmlpp(html)).to be_equivalent_to xmlpp(<<~"OUTPUT")
927
+ <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
928
+ <br />
929
+ <div>
930
+ <h1 class="ForewordTitle">Foreword</h1>
931
+ <pre id="samplecode" class="prettyprint "><br />&#xA0;&#xA0;&#xA0; <br />&#xA0; &lt;xml&gt; &amp;<br />
932
+ </pre>
933
+ <p class="SourceTitle" style="text-align:center;">XML code</p>
934
+ </div>
935
+ <p class="zzSTDTitle1"></p>
936
+ </main>
937
+ OUTPUT
938
+ end
939
+
940
+
941
+ it "does not lose HTML escapes in postprocessing (Word)" do
942
+ FileUtils.rm_f "test.doc"
943
+ FileUtils.rm_f "test.html"
944
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
945
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
946
+ <preface><foreword>
947
+ <sourcecode id="samplecode">
948
+ <name>XML code</name>
949
+ &lt;xml&gt; &amp;
950
+ </sourcecode>
951
+ </foreword></preface>
952
+ </iso-standard>
953
+ INPUT
954
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2">').
955
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "")
956
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
957
+ <div class="WordSection2">
958
+ <p class="MsoNormal">
959
+ <br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
960
+ </p>
961
+ <div>
962
+ <h1 class="ForewordTitle">Foreword</h1>
963
+ <p class="Sourcecode" style="page-break-after:avoid;"><a name="samplecode" id="samplecode"></a><br/>&#xA0;&#xA0;&#xA0; <br/>&#xA0; &lt;xml&gt; &amp;<br/></p><p class="SourceTitle" style="text-align:center;">XML code</p>
964
+ </div>
965
+ <p class="MsoNormal">&#xA0;</p>
966
+ </div>
967
+ OUTPUT
968
+ end
969
+
970
+ it "propagates example style to paragraphs in postprocessing (Word)" do
971
+ FileUtils.rm_f "test.doc"
972
+ FileUtils.rm_f "test.html"
973
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
974
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
975
+ <preface><foreword>
976
+ <example id="samplecode">
977
+ <p>ABC</p>
978
+ </example>
979
+ </foreword></preface>
980
+ </iso-standard>
981
+ INPUT
982
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2">').
983
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "")
984
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
985
+ <div class="WordSection2">
986
+ <p class="MsoNormal">
987
+ <br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
988
+ </p>
989
+ <div>
990
+ <h1 class="ForewordTitle">Foreword</h1>
991
+ <div class="example"><a name="samplecode" id="samplecode"></a>
992
+ <p class="example">ABC</p>
993
+ </div>
994
+ </div>
995
+ <p class="MsoNormal">&#xA0;</p>
996
+ </div>
997
+ OUTPUT
998
+ end
999
+
1000
+ it "deals with image captions (Word)" do
1001
+ FileUtils.rm_f "test.doc"
1002
+ FileUtils.rm_f "test.html"
1003
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
1004
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1005
+ <preface><foreword>
1006
+ <figure id="fig1">
1007
+ <name>Typical arrangement of the far-field scan set-up</name>
1008
+ <image src="spec/assets/rice_image1.png" id="_" mimetype="image/png"/>
1009
+ </figure>
1010
+ </foreword></preface>
1011
+ </iso-standard>
1012
+ INPUT
1013
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2">').
1014
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "").
1015
+ sub(/src="[^"]+"/, 'src="_"')
1016
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
1017
+ <div class="WordSection2">
1018
+ <p class="MsoNormal">
1019
+ <br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
1020
+ </p>
1021
+ <div>
1022
+ <h1 class="ForewordTitle">Foreword</h1>
1023
+ <div class="figure"><a name="fig1" id="fig1"></a>
1024
+ <p style="page-break-after:avoid;" class="figure"><img src="_" width="400" height="337"/></p>
1025
+ <p class="FigureTitle" style="text-align:center;">Typical arrangement of the far-field scan set-up</p></div>
1026
+ </div>
1027
+ <p class="MsoNormal">&#xA0;</p>
1028
+ </div>
1029
+ OUTPUT
1030
+
1031
+ end
1032
+
1033
+ it "deals with empty table titles (Word)" do
1034
+ FileUtils.rm_f "test.doc"
1035
+ FileUtils.rm_f "test.html"
1036
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
1037
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1038
+ <preface><foreword>
1039
+ <table id="_fe12b8f8-6858-4cd6-af7d-d4b6f3ebd1a7" unnumbered="true"><thead><tr>
1040
+ <td rowspan="2">
1041
+ <p id="_c47d9b39-adb2-431d-9320-78cb148fdb56">Output wavelength <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mo>(</mo><mi>μ</mi><mi>m</mi><mo>)</mo></mrow></math></stem></p>
1042
+ </td>
1043
+ <th colspan="3" align="left">Predictive wavelengths</th>
1044
+ </tr>
1045
+ </thead>
1046
+ </table>
1047
+ </preface>
1048
+ </iso-standard>
1049
+ INPUT
1050
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2" xmlns:m="m">').
1051
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "").
1052
+ sub(/src="[^"]+"/, 'src="_"')
1053
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
1054
+ <div class="WordSection2" xmlns:m="m">
1055
+ <p class="MsoNormal">
1056
+ <br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
1057
+ </p>
1058
+ <div>
1059
+ <h1 class="ForewordTitle">Foreword</h1>
1060
+ <div align="center" class="table_container">
1061
+ <table class="MsoISOTable" style="mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;"><a name="_fe12b8f8-6858-4cd6-af7d-d4b6f3ebd1a7" id="_fe12b8f8-6858-4cd6-af7d-d4b6f3ebd1a7"></a>
1062
+ <thead>
1063
+ <tr>
1064
+ <td rowspan="2" style="border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;">
1065
+ <p class="MsoNormal"><a name="_c47d9b39-adb2-431d-9320-78cb148fdb56" id="_c47d9b39-adb2-431d-9320-78cb148fdb56"></a>Output wavelength <span class="stem"><m:oMath>
1066
+ <m:r><m:t>(&#x3BC;m)</m:t></m:r>
1067
+ </m:oMath>
1068
+ </span></p>
1069
+ </td>
1070
+ <th colspan="3" align="left" style="font-weight:bold;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;">Predictive wavelengths</th>
1071
+ </tr>
1072
+ </thead>
1073
+ </table>
1074
+ </div>
1075
+ </div>
1076
+ <p class="MsoNormal">&#xA0;</p>
1077
+ </div>
1078
+ OUTPUT
1079
+ end
1080
+
1081
+ it "propagates alignment of table cells (Word)" do
1082
+ FileUtils.rm_f "test.doc"
1083
+ FileUtils.rm_f "test.html"
1084
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss"}).convert("test", <<~"INPUT", false)
1085
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1086
+ <preface><foreword>
1087
+ <table id="_fe12b8f8-6858-4cd6-af7d-d4b6f3ebd1a7" unnumbered="true"><thead><tr>
1088
+ <td rowspan="2" align="left">
1089
+ <p id="_c47d9b39-adb2-431d-9320-78cb148fdb56">Output wavelength</p>
1090
+ <p id="_c47d9b39-adb2-431d-9320-78cb148fdb57">Output wavelength</p>
1091
+ </td>
1092
+ <th colspan="3" align="right"><p id="_c47d9b39-adb2-431d-9320-78cb148fdb58">Predictive wavelengths</p></th>
1093
+ </tr>
1094
+ </thead>
1095
+ </table>
1096
+ </preface>
1097
+ </iso-standard>
1098
+ INPUT
1099
+ word = File.read("test.doc").sub(/^.*<div class="WordSection2">/m, '<div class="WordSection2" xmlns:m="m">').
1100
+ sub(%r{<p class="MsoNormal">\s*<br clear="all" class="section"/>\s*</p>\s*<div class="WordSection3">.*$}m, "").
1101
+ sub(/src="[^"]+"/, 'src="_"')
1102
+ expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
1103
+ <div class='WordSection2' xmlns:m='m'>
1104
+ <p class='MsoNormal'>
1105
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
1106
+ </p>
1107
+ <div>
1108
+ <h1 class='ForewordTitle'>Foreword</h1>
1109
+ <div align='center' class="table_container">
1110
+ <table class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;'>
1111
+ <a name='_fe12b8f8-6858-4cd6-af7d-d4b6f3ebd1a7' id='_fe12b8f8-6858-4cd6-af7d-d4b6f3ebd1a7'/>
1112
+ <thead>
1113
+ <tr>
1114
+ <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.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
1115
+ <p style='text-align: left' class='MsoNormal'>
1116
+ <a name='_c47d9b39-adb2-431d-9320-78cb148fdb56' id='_c47d9b39-adb2-431d-9320-78cb148fdb56'/>
1117
+ Output wavelength
1118
+ </p>
1119
+ <p style='text-align: left' class='MsoNormal'>
1120
+ <a name='_c47d9b39-adb2-431d-9320-78cb148fdb57' id='_c47d9b39-adb2-431d-9320-78cb148fdb57'/>
1121
+ Output wavelength
1122
+ </p>
1123
+ </td>
1124
+ <th colspan='3' align='right' style='font-weight:bold;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;'>
1125
+ <p style='text-align: right' class='MsoNormal'>
1126
+ <a name='_c47d9b39-adb2-431d-9320-78cb148fdb58' id='_c47d9b39-adb2-431d-9320-78cb148fdb58'/>
1127
+ Predictive wavelengths
1128
+ </p>
1129
+ </th>
1130
+ </tr>
1131
+ </thead>
1132
+ </table>
1133
+ </div>
1134
+ </div>
1135
+ <p class='MsoNormal'>&#xA0;</p>
1136
+ </div>
1137
+ OUTPUT
1138
+ end
1139
+
1140
+ it "cleans up boilerplate" do
1141
+ expect(xmlpp(IsoDoc::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", filename: "test"}).html_preface(Nokogiri::XML(<<~INPUT)).to_xml).sub(/^.*<main/m, "<main").sub(%r{</main>.*$}m, "</main>")).to be_equivalent_to xmlpp(<<~"OUTPUT")
1142
+ <html>
1143
+ <head/>
1144
+ <body>
1145
+ <div class="main-section">
1146
+ <div id="boilerplate-copyright"> <h1>Copyright</h1> </div>
1147
+ <div id="boilerplate-license"> <h1>License</h1> </div>
1148
+ <div id="boilerplate-legal"> <h1>Legal</h1> </div>
1149
+ <div id="boilerplate-feedback"> <h1>Feedback</h1> </div>
1150
+ <hr/>
1151
+ <div id="boilerplate-feedback-destination"/>
1152
+ <div id="boilerplate-legal-destination"/>
1153
+ <div id="boilerplate-license-destination"/>
1154
+ <div id="boilerplate-copyright-destination"/>
1155
+ </div>
1156
+ </body>
1157
+ </html>
1158
+ INPUT
1159
+ <main class='main-section'>
1160
+ <button onclick='topFunction()' id='myBtn' title='Go to top'>Top</button>
1161
+ <hr/>
1162
+ <div id='boilerplate-feedback'>
1163
+ <h1 class='IntroTitle'>Feedback</h1>
1164
+ </div>
1165
+ <div id='boilerplate-legal'>
1166
+ <h1 class='IntroTitle'>Legal</h1>
1167
+ </div>
1168
+ <div id='boilerplate-license'>
1169
+ <h1 class='IntroTitle'>License</h1>
1170
+ </div>
1171
+ <div id='boilerplate-copyright'>
1172
+ <h1 class='IntroTitle'>Copyright</h1>
1173
+ </div>
1174
+ </main>
1175
+ OUTPUT
1176
+ end
1177
+
1178
+ it "cleans up boilerplate (Word)" do
1179
+ expect(xmlpp(IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", filename: "test"}).word_cleanup(Nokogiri::XML(<<~INPUT)).to_xml).sub(/^.*<main/m, "<main").sub(%r{</main>.*$}m, "</main>")).to be_equivalent_to xmlpp(<<~"OUTPUT")
1180
+ <html>
1181
+ <head/>
1182
+ <body>
1183
+ <div class="main-section">
1184
+ <div id="boilerplate-copyright"> <h1>Copyright</h1> </div>
1185
+ <div id="boilerplate-license"> <h1>License</h1> </div>
1186
+ <div id="boilerplate-legal"> <h1>Legal</h1> </div>
1187
+ <div id="boilerplate-feedback"> <h1>Feedback</h1> </div>
1188
+ <hr/>
1189
+ <div id="boilerplate-feedback-destination"/>
1190
+ <div id="boilerplate-legal-destination"/>
1191
+ <div id="boilerplate-license-destination"/>
1192
+ <div id="boilerplate-copyright-destination"/>
1193
+ </div>
1194
+ </body>
1195
+ </html>
1196
+ INPUT
1197
+ <html>
1198
+ <head/>
1199
+ <body>
1200
+ <div class='main-section'>
1201
+ <hr/>
1202
+ <div id='boilerplate-feedback'>
1203
+ <p class='TitlePageSubhead'>Feedback</p>
1204
+ </div>
1205
+ <div id='boilerplate-legal'>
1206
+ <p class='TitlePageSubhead'>Legal</p>
1207
+ </div>
1208
+ <div id='boilerplate-license'>
1209
+ <p class='TitlePageSubhead'>License</p>
1210
+ </div>
1211
+ <div id='boilerplate-copyright'>
1212
+ <p class='TitlePageSubhead'>Copyright</p>
1213
+ </div>
1214
+ </div>
1215
+ </body>
1216
+ </html>
1217
+ OUTPUT
1218
+ end
1219
+
1220
+ it "deals with landscape and portrait pagebreaks (Word)" do
1221
+ FileUtils.rm_f "test.doc"
1222
+ IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", filename: "test"}).convert("test", <<~"INPUT", false)
1223
+ <standard-document xmlns="http://riboseinc.com/isoxml">
1224
+ <bibdata type="standard">
1225
+ <title language="en" format="text/plain">Document title</title>
1226
+ <version>
1227
+ <draft>1.2</draft>
1228
+ </version>
1229
+ <language>en</language>
1230
+ <script>Latn</script>
1231
+ <status><stage>published</stage></status>
1232
+ <ext>
1233
+ <doctype>article</doctype>
1234
+ </ext>
1235
+ </bibdata>
1236
+ <preface>
1237
+ <introduction><title>Preface 1</title>
1238
+ <p align="center">This is a <pagebreak orientation="landscape"/> paragraph</p>
1239
+ <table>
1240
+ <tbody>
1241
+ <tr><td>A</td><td>B</td></tr>
1242
+ </tbody>
1243
+ </table>
1244
+ <clause><title>Preface 1.1</title>
1245
+ <p>On my side</p>
1246
+ <pagebreak orientation="portrait"/>
1247
+ <p>Upright again</p>
1248
+ </clause>
1249
+ <clause><title>Preface 1.3</title>
1250
+ <p>And still upright</p>
1251
+ </clause>
1252
+ </introduction>
1253
+ </preface>
1254
+ <sections><clause><title>Foreword</title>
1255
+ <note>
1256
+ <p id="_">For further information on the Foreword, see <strong>ISO/IEC Directives, Part 2, 2016, Clause 12.</strong></p>
1257
+ <pagebreak orientation="landscape"/>
1258
+ <table id="_c09a7e60-b0c7-4418-9bfc-2ef0bc09a249">
1259
+ <thead>
1260
+ <tr>
1261
+ <th align="left">A</th>
1262
+ <th align="left">B</th>
1263
+ </tr>
1264
+ </thead>
1265
+ <tbody>
1266
+ <tr>
1267
+ <td align="left">C</td>
1268
+ <td align="left">D</td>
1269
+ </tr>
1270
+ </tbody>
1271
+ <note id="_8fff1596-290e-4314-b03c-7a8aab97eebe">
1272
+ <p id="_32c22439-387a-48cf-a006-5ab3b934ba73">B</p>
1273
+ </note></table>
1274
+ <pagebreak orientation="portrait"/>
1275
+ <p>And up</p>
1276
+ </note>
1277
+ <pagebreak orientation="portrait"/>
1278
+ </clause></sections>
1279
+ <annex id="_level_1" inline-header="false" obligation="normative">
1280
+ <title>Annex 1</title>
1281
+ </annex>
1282
+ </standard-document>
1283
+ INPUT
1284
+ expect(File.exist?("test.doc")).to be true
1285
+ html = File.read("test.doc", encoding: "UTF-8")
1286
+ expect(html).to include "div.WordSection2_0 {page:WordSection2P;}"
1287
+ expect(html).to include "div.WordSection2_1 {page:WordSection2L;}"
1288
+ expect(html).to include "div.WordSection3_0 {page:WordSection3P;}"
1289
+ expect(html).to include "div.WordSection3_1 {page:WordSection3P;}"
1290
+ expect(html).to include "div.WordSection3_2 {page:WordSection3L;}"
1291
+
1292
+
1293
+ expect(xmlpp(html.sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
1294
+ <body lang='EN-US' xml:lang='EN-US' link='blue' vlink='#954F72'>
1295
+ <div class='WordSection1'>
1296
+ <p class='MsoNormal'>&#xA0;</p>
1297
+ </div>
1298
+ <p class='MsoNormal'>
1299
+ <br clear='all' class='section'/>
1300
+ </p>
1301
+ <div class='WordSection2'>
1302
+ <p class='MsoNormal'>
1303
+ <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
1304
+ </p>
1305
+ <div class='Section3' id=''>
1306
+ <h1 class='IntroTitle'>Preface 1</h1>
1307
+ <p align='center' style='text-align:center;' class='MsoNormal'>
1308
+ This is a
1309
+ <p class='MsoNormal'>
1310
+ <br clear='all' class='section'/>
1311
+ </p>
1312
+ paragraph
1313
+ </p>
1314
+ </div>
1315
+ </div>
1316
+ <div class='WordSection2_1'>
1317
+ <div align='center' class='table_container'>
1318
+ <table class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;'>
1319
+ <tbody>
1320
+ <tr>
1321
+ <td 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;'>A</td>
1322
+ <td 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;'>B</td>
1323
+ </tr>
1324
+ </tbody>
1325
+ </table>
1326
+ </div>
1327
+ <div>
1328
+ <h2>Preface 1.1</h2>
1329
+ <p class='MsoNormal'>On my side</p>
1330
+ <p class='MsoNormal'>
1331
+ <br clear='all' class='section'/>
1332
+ </p>
1333
+ </div>
1334
+ </div>
1335
+ <div class='WordSection2_0'>
1336
+ <p class='MsoNormal'>Upright again</p>
1337
+ <div>
1338
+ <h2>Preface 1.3</h2>
1339
+ <p class='MsoNormal'>And still upright</p>
1340
+ </div>
1341
+ <p class='MsoNormal'>&#xA0;</p>
1342
+ </div>
1343
+ <p class='MsoNormal'>
1344
+ <br clear='all' class='section'/>
1345
+ </p>
1346
+ <div class='WordSection3'>
1347
+ <p class='zzSTDTitle1'>Document title</p>
1348
+ <div>
1349
+ <h1>Foreword</h1>
1350
+ <div class='Note'>
1351
+ <p class='Note'>
1352
+ <span class='note_label'/>
1353
+ <span style='mso-tab-count:1'>&#xA0; </span>
1354
+ For further information on the Foreword, see
1355
+ <b>ISO/IEC Directives, Part 2, 2016, Clause 12.</b>
1356
+ </p>
1357
+ <p class='Note'>
1358
+ <br clear='all' class='section'/>
1359
+ </p>
1360
+ </div>
1361
+ </div>
1362
+ </div>
1363
+ <div class='WordSection3_2'>
1364
+ <div align='center' class='table_container'>
1365
+ <table class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;'>
1366
+ <a name='_c09a7e60-b0c7-4418-9bfc-2ef0bc09a249' id='_c09a7e60-b0c7-4418-9bfc-2ef0bc09a249'/>
1367
+ <thead>
1368
+ <tr>
1369
+ <th align='left' style='font-weight:bold;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;'>A</th>
1370
+ <th align='left' style='font-weight:bold;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;'>B</th>
1371
+ </tr>
1372
+ </thead>
1373
+ <tbody>
1374
+ <tr>
1375
+ <td 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;'>C</td>
1376
+ <td 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;'>D</td>
1377
+ </tr>
1378
+ </tbody>
1379
+ <tfoot>
1380
+ <tr>
1381
+ <td colspan='2' style='border-top:0pt;mso-border-top-alt:0pt;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>
1382
+ <div class='Note'>
1383
+ <a name='_8fff1596-290e-4314-b03c-7a8aab97eebe' id='_8fff1596-290e-4314-b03c-7a8aab97eebe'/>
1384
+ <p class='Note'>
1385
+ <span class='note_label'/>
1386
+ <span style='mso-tab-count:1'>&#xA0; </span>
1387
+ B
1388
+ </p>
1389
+ </div>
1390
+ </td>
1391
+ </tr>
1392
+ </tfoot>
1393
+ </table>
1394
+ </div>
1395
+ <p class='Note'>
1396
+ <br clear='all' class='section'/>
1397
+ </p>
1398
+ </div>
1399
+ <div class='WordSection3_1'>
1400
+ <p class='Note'>And up</p>
1401
+ <p class='MsoNormal'>
1402
+ <br clear='all' class='section'/>
1403
+ </p>
1404
+ </div>
1405
+ <div class='WordSection3_0'>
1406
+ <div class='Section3'>
1407
+ <a name='_level_1' id='_level_1'/>
1408
+ <h1 class='Annex'>Annex 1</h1>
1409
+ </div>
1410
+ </div>
1411
+ <div style='mso-element:footnote-list'/>
1412
+ </body>
1413
+ OUTPUT
1414
+ end
1415
+
1416
+ it "expands out nested tables in Word" do
1417
+ expect(xmlpp(IsoDoc::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.scss", filename: "test"}).word_cleanup(Nokogiri::XML(<<~INPUT)).to_xml).sub(/^.*<main/m, "<main").sub(%r{</main>.*$}m, "</main>")).to be_equivalent_to xmlpp(<<~"OUTPUT")
1418
+ <html>
1419
+ <head/>
1420
+ <body>
1421
+ <div class="main-section">
1422
+ <table id="_7830dff8-419e-4b9e-85cf-a063689f44ca" class="recommend" style="border-collapse:collapse;border-spacing:0;"><thead><tr style="background:#A5A5A5;"><th style="vertical-align:top;" class="recommend" colspan="2"><p class="RecommendationTitle">Requirement 1:</p></th></tr></thead><tbody><tr><td style="vertical-align:top;" class="recommend" colspan="2"><p>requirement label</p></td></tr>
1423
+ <table id="_a0f8c202-fd34-460c-bd5e-b2f4cc29210d" class="recommend" style="border-collapse:collapse;border-spacing:0;"><thead><tr style="background:#A5A5A5;"><th style="vertical-align:top;" class="recommend" colspan="2"><p class="RecommendationTitle">Requirement 1-1:</p></th></tr></thead><tbody><tr style="background:#C9C9C9;"><td style="vertical-align:top;" class="recommend" colspan="2">
1424
+ <p id="_2e2c247b-ce4c-48c5-96dd-f3e090a5b4a7">Description text</p>
1425
+ </td></tr></tbody></table>
1426
+ </tbody></table>
1427
+ </div>
1428
+ <div id="_second_sample"><h2>1.2.<span style="mso-tab-count:1">&#xA0; </span>Second sample</h2>
1429
+ <table id="_9846c486-14e5-4b1c-bb2f-55cc254dd309" class="recommend" style="border-collapse:collapse;border-spacing:0;"><thead><tr style="background:#A5A5A5;"><th style="vertical-align:top;" class="recommend" colspan="2"><p class="RecommendationTitle">Requirement 2:</p></th></tr></thead><tbody><tr><td style="vertical-align:top;" class="recommend" colspan="2"><p>requirement label</p></td></tr><table id="_62de974c-7128-44d6-ba86-99f818f1d467" class="recommend" style="border-collapse:collapse;border-spacing:0;"><thead><tr style="background:#A5A5A5;"><th style="vertical-align:top;" class="recommend" colspan="2"><p class="RecommendationTitle">Requirement 2-1:</p></th></tr></thead><tbody><tr style="background:#C9C9C9;"><td style="vertical-align:top;" class="recommend" colspan="2">
1430
+ <p id="_30b90b08-bd71-4497-bbcc-8c61fbb9f772">Description text</p>
1431
+ </td></tr></tbody></table>
1432
+ <table id="_fede5681-71f6-47bb-bc65-7bd0b11acd01" class="recommend" style="border-collapse:collapse;border-spacing:0;"><thead><tr style="background:#A5A5A5;"><th style="vertical-align:top;" class="recommend" colspan="2"><p class="RecommendationTitle">Requirement 2-2:</p></th></tr></thead><tbody><tr><td style="vertical-align:top;" class="recommend" colspan="2">
1433
+ <p id="_8daa3d74-90fd-4a57-9169-de457a68cfda">Description text</p>
1434
+ </td></tr></tbody></table></tbody></table>
1435
+ </div>
1436
+ </body>
1437
+ </html>
1438
+ INPUT
1439
+ <html>
1440
+ <head/>
1441
+ <body>
1442
+ <div class='main-section'>
1443
+ <table id='_7830dff8-419e-4b9e-85cf-a063689f44ca' class='recommend' style='border-collapse:collapse;border-spacing:0;'>
1444
+ <thead>
1445
+ <tr style='background:#A5A5A5;'>
1446
+ <th style='vertical-align:top;' class='recommend' colspan='2'>
1447
+ <p class='RecommendationTitle'>Requirement 1:</p>
1448
+ </th>
1449
+ </tr>
1450
+ </thead>
1451
+ <tbody>
1452
+ <tr>
1453
+ <td style='vertical-align:top;' class='recommend' colspan='2'>
1454
+ <p>requirement label</p>
1455
+ </td>
1456
+ </tr>
1457
+ </tbody>
1458
+ </table>
1459
+ <table id='_a0f8c202-fd34-460c-bd5e-b2f4cc29210d' class='recommend' style='border-collapse:collapse;border-spacing:0;'>
1460
+ <thead>
1461
+ <tr style='background:#A5A5A5;'>
1462
+ <th style='vertical-align:top;' class='recommend' colspan='2'>
1463
+ <p class='RecommendationTitle'>Requirement 1-1:</p>
1464
+ </th>
1465
+ </tr>
1466
+ </thead>
1467
+ <tbody>
1468
+ <tr style='background:#C9C9C9;'>
1469
+ <td style='vertical-align:top;' class='recommend' colspan='2'>
1470
+ <p id='_2e2c247b-ce4c-48c5-96dd-f3e090a5b4a7'>Description text</p>
1471
+ </td>
1472
+ </tr>
1473
+ </tbody>
1474
+ </table>
1475
+ </div>
1476
+ <div id='_second_sample'>
1477
+ <h2>
1478
+ 1.2.
1479
+ <span style='mso-tab-count:1'>&#xA0; </span>
1480
+ Second sample
1481
+ </h2>
1482
+ <table id='_9846c486-14e5-4b1c-bb2f-55cc254dd309' class='recommend' style='border-collapse:collapse;border-spacing:0;'>
1483
+ <thead>
1484
+ <tr style='background:#A5A5A5;'>
1485
+ <th style='vertical-align:top;' class='recommend' colspan='2'>
1486
+ <p class='RecommendationTitle'>Requirement 2:</p>
1487
+ </th>
1488
+ </tr>
1489
+ </thead>
1490
+ <tbody>
1491
+ <tr>
1492
+ <td style='vertical-align:top;' class='recommend' colspan='2'>
1493
+ <p>requirement label</p>
1494
+ </td>
1495
+ </tr>
1496
+ </tbody>
1497
+ </table>
1498
+ <table id='_62de974c-7128-44d6-ba86-99f818f1d467' class='recommend' style='border-collapse:collapse;border-spacing:0;'>
1499
+ <thead>
1500
+ <tr style='background:#A5A5A5;'>
1501
+ <th style='vertical-align:top;' class='recommend' colspan='2'>
1502
+ <p class='RecommendationTitle'>Requirement 2-1:</p>
1503
+ </th>
1504
+ </tr>
1505
+ </thead>
1506
+ <tbody>
1507
+ <tr style='background:#C9C9C9;'>
1508
+ <td style='vertical-align:top;' class='recommend' colspan='2'>
1509
+ <p id='_30b90b08-bd71-4497-bbcc-8c61fbb9f772'>Description text</p>
1510
+ </td>
1511
+ </tr>
1512
+ </tbody>
1513
+ </table>
1514
+ <table id='_fede5681-71f6-47bb-bc65-7bd0b11acd01' class='recommend' style='border-collapse:collapse;border-spacing:0;'>
1515
+ <thead>
1516
+ <tr style='background:#A5A5A5;'>
1517
+ <th style='vertical-align:top;' class='recommend' colspan='2'>
1518
+ <p class='RecommendationTitle'>Requirement 2-2:</p>
1519
+ </th>
1520
+ </tr>
1521
+ </thead>
1522
+ <tbody>
1523
+ <tr>
1524
+ <td style='vertical-align:top;' class='recommend' colspan='2'>
1525
+ <p id='_8daa3d74-90fd-4a57-9169-de457a68cfda'>Description text</p>
1526
+ </td>
1527
+ </tr>
1528
+ </tbody>
1529
+ </table>
1530
+ </div>
1531
+ </body>
1532
+ </html>
1533
+ OUTPUT
1534
+ end
1535
+
1536
+ end