metanorma-document 0.5.1 → 0.5.2.pre.alpha.1

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 (534) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +81 -0
  3. data/Rakefile +3 -7
  4. data/data/themes/ogc.yaml +5 -0
  5. data/lib/metanorma/basic_document/ancillary_blocks/figure_block.rb +2 -2
  6. data/lib/metanorma/basic_document/multi_paragraph/admonition_block.rb +2 -2
  7. data/lib/metanorma/document/cli.rb +134 -0
  8. data/lib/metanorma/document/components/ancillary_blocks/figure_block.rb +5 -0
  9. data/lib/metanorma/document/components/ancillary_blocks/fmt_figure_element.rb +47 -0
  10. data/lib/metanorma/document/components/ancillary_blocks/formula_block.rb +2 -0
  11. data/lib/metanorma/document/components/ancillary_blocks/imagemap_element.rb +73 -0
  12. data/lib/metanorma/document/components/ancillary_blocks/literal_block.rb +2 -0
  13. data/lib/metanorma/document/components/ancillary_blocks/sourcecode_block.rb +2 -0
  14. data/lib/metanorma/document/components/ancillary_blocks/svg_target_element.rb +27 -0
  15. data/lib/metanorma/document/components/ancillary_blocks/svgmap_element.rb +28 -0
  16. data/lib/metanorma/document/components/ancillary_blocks.rb +4 -0
  17. data/lib/metanorma/document/components/bib_data/bibliographic_item.rb +4 -0
  18. data/lib/metanorma/document/components/blocks/fmt_provision.rb +25 -0
  19. data/lib/metanorma/document/components/blocks/note_block.rb +8 -0
  20. data/lib/metanorma/document/components/blocks/permission_model.rb +9 -0
  21. data/lib/metanorma/document/components/blocks/recommendation_model.rb +9 -0
  22. data/lib/metanorma/document/components/blocks/requirement_base.rb +12 -0
  23. data/lib/metanorma/document/components/blocks/requirement_import.rb +23 -0
  24. data/lib/metanorma/document/components/blocks/requirement_measurement_target.rb +23 -0
  25. data/lib/metanorma/document/components/blocks/requirement_model.rb +9 -0
  26. data/lib/metanorma/document/components/blocks/requirement_specification.rb +23 -0
  27. data/lib/metanorma/document/components/blocks/requirement_verification.rb +23 -0
  28. data/lib/metanorma/document/components/blocks.rb +8 -0
  29. data/lib/metanorma/document/components/data_types/formatted_string.rb +9 -0
  30. data/lib/metanorma/document/components/id_elements/image.rb +4 -0
  31. data/lib/metanorma/document/components/inline/columnbreak_element.rb +17 -0
  32. data/lib/metanorma/document/components/inline/concept_element.rb +18 -0
  33. data/lib/metanorma/document/components/inline/date_element.rb +29 -0
  34. data/lib/metanorma/document/components/inline/display_text_element.rb +2 -0
  35. data/lib/metanorma/document/components/inline/em_raw_element.rb +6 -7
  36. data/lib/metanorma/document/components/inline/eref_element.rb +48 -22
  37. data/lib/metanorma/document/components/inline/eref_stack.rb +23 -0
  38. data/lib/metanorma/document/components/inline/error_message.rb +28 -0
  39. data/lib/metanorma/document/components/inline/fmt_date_element.rb +28 -0
  40. data/lib/metanorma/document/components/inline/fmt_date_inline_element.rb +26 -0
  41. data/lib/metanorma/document/components/inline/fmt_eref_element.rb +25 -0
  42. data/lib/metanorma/document/components/inline/fmt_origin_element.rb +24 -0
  43. data/lib/metanorma/document/components/inline/fmt_preferred_element.rb +3 -0
  44. data/lib/metanorma/document/components/inline/fmt_source_element.rb +31 -0
  45. data/lib/metanorma/document/components/inline/fn_element.rb +11 -0
  46. data/lib/metanorma/document/components/inline/link_element.rb +8 -0
  47. data/lib/metanorma/document/components/inline/name_with_id_element.rb +2 -0
  48. data/lib/metanorma/document/components/inline/refterm_element.rb +21 -0
  49. data/lib/metanorma/document/components/inline/semx_element.rb +22 -0
  50. data/lib/metanorma/document/components/inline/sourcelocality_stack_element.rb +27 -0
  51. data/lib/metanorma/document/components/inline/span_element.rb +2 -0
  52. data/lib/metanorma/document/components/inline/stem_inline_element.rb +2 -0
  53. data/lib/metanorma/document/components/inline/strong_raw_element.rb +6 -9
  54. data/lib/metanorma/document/components/inline/sub_element.rb +2 -0
  55. data/lib/metanorma/document/components/inline/termref_element.rb +24 -0
  56. data/lib/metanorma/document/components/inline/title_with_annotation_element.rb +10 -31
  57. data/lib/metanorma/document/components/inline/variant_title_element.rb +2 -0
  58. data/lib/metanorma/document/components/inline/vocabulary.rb +36 -0
  59. data/lib/metanorma/document/components/inline.rb +23 -0
  60. data/lib/metanorma/document/components/lists/dd_element.rb +6 -1
  61. data/lib/metanorma/document/components/lists/definition.rb +2 -0
  62. data/lib/metanorma/document/components/lists/definition_list.rb +3 -0
  63. data/lib/metanorma/document/components/lists/dt_element.rb +3 -0
  64. data/lib/metanorma/document/components/lists/fmt_list_element.rb +73 -0
  65. data/lib/metanorma/document/components/lists/list_item.rb +3 -0
  66. data/lib/metanorma/document/components/lists/ordered_list.rb +4 -2
  67. data/lib/metanorma/document/components/lists/unordered_list.rb +2 -0
  68. data/lib/metanorma/document/components/lists.rb +2 -0
  69. data/lib/metanorma/document/components/multi_paragraph/quote_block.rb +16 -0
  70. data/lib/metanorma/document/components/multi_paragraph/review_block.rb +2 -2
  71. data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +15 -0
  72. data/lib/metanorma/document/components/reference_elements/citation.rb +7 -0
  73. data/lib/metanorma/document/components/reference_elements/source_element.rb +4 -0
  74. data/lib/metanorma/document/components/semantic/node.rb +46 -0
  75. data/lib/metanorma/document/components/semantic.rb +11 -0
  76. data/lib/metanorma/document/components/tables/header_table_cell.rb +1 -0
  77. data/lib/metanorma/document/components/tables/table_cell.rb +70 -44
  78. data/lib/metanorma/document/components/tables/text_table_cell.rb +1 -0
  79. data/lib/metanorma/document/components/tables/text_table_row.rb +2 -0
  80. data/lib/metanorma/document/components/text_elements/ruby_annotation_element.rb +26 -0
  81. data/lib/metanorma/document/components/text_elements/ruby_element.rb +41 -6
  82. data/lib/metanorma/document/components/text_elements/ruby_pronunciation_element.rb +25 -0
  83. data/lib/metanorma/document/components/text_elements/strike_element.rb +3 -0
  84. data/lib/metanorma/document/components/text_elements/underline_element.rb +3 -0
  85. data/lib/metanorma/document/components/text_elements.rb +2 -0
  86. data/lib/metanorma/document/components.rb +1 -0
  87. data/lib/metanorma/document/grammar_vocabulary.rb +109 -0
  88. data/lib/metanorma/document/mirror_seed.rb +253 -0
  89. data/lib/metanorma/document/mko/collection.rb +168 -0
  90. data/lib/metanorma/document/mko/exporter.rb +17 -0
  91. data/lib/metanorma/document/mko/project.rb +1110 -0
  92. data/lib/metanorma/document/mko.rb +122 -0
  93. data/lib/metanorma/document/model_access.rb +44 -0
  94. data/lib/metanorma/document/native_models.rb +319 -0
  95. data/lib/metanorma/document/plain_text.rb +39 -0
  96. data/lib/metanorma/document/relaton/version_info.rb +4 -0
  97. data/lib/metanorma/document/version.rb +1 -1
  98. data/lib/metanorma/document.rb +19 -26
  99. data/lib/metanorma/{collection → document_collection}/directive.rb +1 -1
  100. data/lib/metanorma/{collection → document_collection}/doc_container.rb +6 -2
  101. data/lib/metanorma/{collection → document_collection}/entry.rb +2 -2
  102. data/lib/metanorma/{collection → document_collection}/root.rb +2 -2
  103. data/lib/metanorma/document_collection.rb +10 -0
  104. data/lib/metanorma/html/base_renderer.rb +94 -25
  105. data/lib/metanorma/html/component/footnote_collector.rb +21 -20
  106. data/lib/metanorma/html/concerns/metadata_extraction.rb +8 -3
  107. data/lib/metanorma/html/concerns/presentation_validation.rb +1 -2
  108. data/lib/metanorma/html/concerns/text_extraction.rb +154 -35
  109. data/lib/metanorma/html/concerns.rb +19 -0
  110. data/lib/metanorma/html/drops/admonition_drop.rb +1 -1
  111. data/lib/metanorma/html/drops/footnote_drop.rb +1 -1
  112. data/lib/metanorma/html/drops/sourcecode_drop.rb +22 -4
  113. data/lib/metanorma/html/generator.rb +11 -187
  114. data/lib/metanorma/html/renderer_delegation.rb +2 -2
  115. data/lib/metanorma/html/renderers/block_renderer.rb +206 -46
  116. data/lib/metanorma/html/renderers/inline_renderer.rb +144 -17
  117. data/lib/metanorma/html/renderers/section_renderer.rb +12 -2
  118. data/lib/metanorma/html/renderers/semantic_renderer.rb +487 -0
  119. data/lib/metanorma/html/renderers.rb +2 -0
  120. data/lib/metanorma/html/standard_renderer.rb +732 -76
  121. data/lib/metanorma/html/templates/_agency_cover.html.liquid +30 -0
  122. data/lib/metanorma/html/templates/_columnbreak.html.liquid +1 -0
  123. data/lib/metanorma/html/templates/_cover.html.liquid +3 -0
  124. data/lib/metanorma/html/templates/_main_content.html.liquid +1 -1
  125. data/lib/metanorma/html/templates/_ruby.html.liquid +1 -0
  126. data/lib/metanorma/html/templates/_sourcecode.html.liquid +4 -3
  127. data/lib/metanorma/html/templates/_standard_cover.html.liquid +54 -3
  128. data/lib/metanorma/html.rb +30 -15
  129. data/tasks/flavors.rake +116 -0
  130. data/tasks/grammar.rake +28 -0
  131. data/tasks/roundtrip_samples.rake +48 -34
  132. metadata +121 -416
  133. data/frontend/dist/app.css +0 -1
  134. data/frontend/dist/app.iife.js +0 -24
  135. data/lib/metanorma/bipm_document/metadata/bipm_bib_data_extension_type.rb +0 -20
  136. data/lib/metanorma/bipm_document/metadata/bipm_bibliographic_item.rb +0 -17
  137. data/lib/metanorma/bipm_document/metadata/bipm_structured_identifier.rb +0 -21
  138. data/lib/metanorma/bipm_document/metadata/depiction_element.rb +0 -18
  139. data/lib/metanorma/bipm_document/metadata.rb +0 -15
  140. data/lib/metanorma/bipm_document/root.rb +0 -25
  141. data/lib/metanorma/bipm_document.rb +0 -8
  142. data/lib/metanorma/bsi_document/metadata/bsi_bib_data_extension_type.rb +0 -10
  143. data/lib/metanorma/bsi_document/metadata/bsi_bibliographic_item.rb +0 -15
  144. data/lib/metanorma/bsi_document/metadata.rb +0 -12
  145. data/lib/metanorma/bsi_document/root.rb +0 -29
  146. data/lib/metanorma/bsi_document/sections/bsi_annex_section.rb +0 -25
  147. data/lib/metanorma/bsi_document/sections/bsi_clause_section.rb +0 -25
  148. data/lib/metanorma/bsi_document/sections/bsi_sections.rb +0 -27
  149. data/lib/metanorma/bsi_document/sections.rb +0 -11
  150. data/lib/metanorma/bsi_document.rb +0 -11
  151. data/lib/metanorma/cc_document/metadata/cc_bib_data_extension_type.rb +0 -12
  152. data/lib/metanorma/cc_document/metadata/cc_bibliographic_item.rb +0 -17
  153. data/lib/metanorma/cc_document/metadata.rb +0 -11
  154. data/lib/metanorma/cc_document/root.rb +0 -25
  155. data/lib/metanorma/cc_document.rb +0 -8
  156. data/lib/metanorma/collection.rb +0 -10
  157. data/lib/metanorma/csa_document/root.rb +0 -27
  158. data/lib/metanorma/csa_document.rb +0 -9
  159. data/lib/metanorma/gb_document/metadata/gb_bib_data_extension_type.rb +0 -10
  160. data/lib/metanorma/gb_document/metadata/gb_bibliographic_item.rb +0 -15
  161. data/lib/metanorma/gb_document/metadata.rb +0 -12
  162. data/lib/metanorma/gb_document/root.rb +0 -29
  163. data/lib/metanorma/gb_document.rb +0 -10
  164. data/lib/metanorma/generic_document/root.rb +0 -31
  165. data/lib/metanorma/generic_document.rb +0 -7
  166. data/lib/metanorma/html/bipm_renderer.rb +0 -23
  167. data/lib/metanorma/html/cc_renderer.rb +0 -9
  168. data/lib/metanorma/html/csa_renderer.rb +0 -9
  169. data/lib/metanorma/html/flavor.rb +0 -50
  170. data/lib/metanorma/html/flavor_registry.rb +0 -49
  171. data/lib/metanorma/html/icc_renderer.rb +0 -10
  172. data/lib/metanorma/html/iec_renderer.rb +0 -9
  173. data/lib/metanorma/html/ieee_renderer.rb +0 -9
  174. data/lib/metanorma/html/ietf_renderer.rb +0 -9
  175. data/lib/metanorma/html/iho_renderer.rb +0 -9
  176. data/lib/metanorma/html/iso_renderer.rb +0 -535
  177. data/lib/metanorma/html/itu_renderer.rb +0 -9
  178. data/lib/metanorma/html/ogc_renderer.rb +0 -23
  179. data/lib/metanorma/html/pdfa_renderer.rb +0 -10
  180. data/lib/metanorma/html/ribose_renderer.rb +0 -9
  181. data/lib/metanorma/html/templates/_bipm_cover.html.liquid +0 -27
  182. data/lib/metanorma/html/templates/_iso_cover.html.liquid +0 -31
  183. data/lib/metanorma/html/templates/_iso_doc_title.html.liquid +0 -3
  184. data/lib/metanorma/iec_document/root.rb +0 -27
  185. data/lib/metanorma/iec_document.rb +0 -9
  186. data/lib/metanorma/ieee_document/metadata/ieee_bib_data_extension_type.rb +0 -18
  187. data/lib/metanorma/ieee_document/metadata/ieee_bibliographic_item.rb +0 -20
  188. data/lib/metanorma/ieee_document/metadata/ieee_structured_identifier.rb +0 -25
  189. data/lib/metanorma/ieee_document/metadata.rb +0 -14
  190. data/lib/metanorma/ieee_document/root.rb +0 -29
  191. data/lib/metanorma/ieee_document/sections/ieee_sections.rb +0 -31
  192. data/lib/metanorma/ieee_document/sections.rb +0 -9
  193. data/lib/metanorma/ieee_document.rb +0 -11
  194. data/lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb +0 -31
  195. data/lib/metanorma/ietf_document/metadata/ietf_bibliographic_item.rb +0 -51
  196. data/lib/metanorma/ietf_document/metadata/ietf_editorial_group.rb +0 -17
  197. data/lib/metanorma/ietf_document/metadata/pi_settings.rb +0 -32
  198. data/lib/metanorma/ietf_document/metadata.rb +0 -16
  199. data/lib/metanorma/ietf_document/root.rb +0 -30
  200. data/lib/metanorma/ietf_document/sections/ietf_annex_section.rb +0 -26
  201. data/lib/metanorma/ietf_document/sections/ietf_clause_section.rb +0 -26
  202. data/lib/metanorma/ietf_document/sections/ietf_content_section.rb +0 -25
  203. data/lib/metanorma/ietf_document/sections/ietf_sections.rb +0 -35
  204. data/lib/metanorma/ietf_document/sections.rb +0 -12
  205. data/lib/metanorma/ietf_document.rb +0 -11
  206. data/lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb +0 -23
  207. data/lib/metanorma/iho_document/metadata/iho_bibliographic_item.rb +0 -20
  208. data/lib/metanorma/iho_document/metadata/iho_editorial_group.rb +0 -19
  209. data/lib/metanorma/iho_document/metadata/iho_series.rb +0 -22
  210. data/lib/metanorma/iho_document/metadata/iho_sub_group.rb +0 -18
  211. data/lib/metanorma/iho_document/metadata.rb +0 -15
  212. data/lib/metanorma/iho_document/root.rb +0 -25
  213. data/lib/metanorma/iho_document.rb +0 -8
  214. data/lib/metanorma/iso_document/annotation_container.rb +0 -7
  215. data/lib/metanorma/iso_document/blocks/iso_admonition_block.rb +0 -27
  216. data/lib/metanorma/iso_document/blocks/iso_admonition_type.rb +0 -25
  217. data/lib/metanorma/iso_document/blocks.rb +0 -12
  218. data/lib/metanorma/iso_document/boilerplate.rb +0 -7
  219. data/lib/metanorma/iso_document/metadata/abstract_title.rb +0 -36
  220. data/lib/metanorma/iso_document/metadata/doc_identifier.rb +0 -26
  221. data/lib/metanorma/iso_document/metadata/doctype_element.rb +0 -20
  222. data/lib/metanorma/iso_document/metadata/ics.rb +0 -19
  223. data/lib/metanorma/iso_document/metadata/iec_document_category.rb +0 -23
  224. data/lib/metanorma/iso_document/metadata/iso_bib_data_extension_type.rb +0 -38
  225. data/lib/metanorma/iso_document/metadata/iso_bibliographic_item.rb +0 -103
  226. data/lib/metanorma/iso_document/metadata/iso_document_id.rb +0 -46
  227. data/lib/metanorma/iso_document/metadata/iso_document_stage_codes.rb +0 -26
  228. data/lib/metanorma/iso_document/metadata/iso_document_status.rb +0 -26
  229. data/lib/metanorma/iso_document/metadata/iso_document_substage_codes.rb +0 -26
  230. data/lib/metanorma/iso_document/metadata/iso_document_type.rb +0 -25
  231. data/lib/metanorma/iso_document/metadata/iso_localized_title.rb +0 -61
  232. data/lib/metanorma/iso_document/metadata/iso_project_group.rb +0 -32
  233. data/lib/metanorma/iso_document/metadata/iso_sub_group.rb +0 -38
  234. data/lib/metanorma/iso_document/metadata/language_element.rb +0 -18
  235. data/lib/metanorma/iso_document/metadata/metanorma_extension.rb +0 -9
  236. data/lib/metanorma/iso_document/metadata/project_number.rb +0 -22
  237. data/lib/metanorma/iso_document/metadata/script_element.rb +0 -18
  238. data/lib/metanorma/iso_document/metadata/stage_element.rb +0 -26
  239. data/lib/metanorma/iso_document/metadata/stagename_element.rb +0 -18
  240. data/lib/metanorma/iso_document/metadata/structured_identifier.rb +0 -16
  241. data/lib/metanorma/iso_document/metadata/title_amd.rb +0 -12
  242. data/lib/metanorma/iso_document/metadata/title_amendment_prefix.rb +0 -12
  243. data/lib/metanorma/iso_document/metadata/title_collection.rb +0 -47
  244. data/lib/metanorma/iso_document/metadata/title_full.rb +0 -12
  245. data/lib/metanorma/iso_document/metadata/title_intro.rb +0 -12
  246. data/lib/metanorma/iso_document/metadata/title_main.rb +0 -12
  247. data/lib/metanorma/iso_document/metadata/title_part.rb +0 -12
  248. data/lib/metanorma/iso_document/metadata/title_part_prefix.rb +0 -12
  249. data/lib/metanorma/iso_document/metadata.rb +0 -44
  250. data/lib/metanorma/iso_document/root.rb +0 -26
  251. data/lib/metanorma/iso_document/sections/colophon.rb +0 -3
  252. data/lib/metanorma/iso_document/sections/iso_abstract_section.rb +0 -15
  253. data/lib/metanorma/iso_document/sections/iso_amendment_clause.rb +0 -24
  254. data/lib/metanorma/iso_document/sections/iso_annex_section.rb +0 -50
  255. data/lib/metanorma/iso_document/sections/iso_clause_section.rb +0 -49
  256. data/lib/metanorma/iso_document/sections/iso_foreword_section.rb +0 -33
  257. data/lib/metanorma/iso_document/sections/iso_preface.rb +0 -51
  258. data/lib/metanorma/iso_document/sections/iso_sections.rb +0 -51
  259. data/lib/metanorma/iso_document/sections/iso_terms_section.rb +0 -76
  260. data/lib/metanorma/iso_document/sections.rb +0 -17
  261. data/lib/metanorma/iso_document/terms/iso_term.rb +0 -71
  262. data/lib/metanorma/iso_document/terms/iso_term_collection.rb +0 -20
  263. data/lib/metanorma/iso_document/terms/term_definition.rb +0 -30
  264. data/lib/metanorma/iso_document/terms/term_designation.rb +0 -44
  265. data/lib/metanorma/iso_document/terms/term_domain_element.rb +0 -18
  266. data/lib/metanorma/iso_document/terms/term_example.rb +0 -40
  267. data/lib/metanorma/iso_document/terms/term_expression.rb +0 -10
  268. data/lib/metanorma/iso_document/terms/term_note.rb +0 -42
  269. data/lib/metanorma/iso_document/terms/term_origin.rb +0 -4
  270. data/lib/metanorma/iso_document/terms/term_source.rb +0 -21
  271. data/lib/metanorma/iso_document/terms/verbal_definition.rb +0 -42
  272. data/lib/metanorma/iso_document/terms.rb +0 -21
  273. data/lib/metanorma/iso_document.rb +0 -15
  274. data/lib/metanorma/itu_document/metadata/itu_bib_data_extension_type.rb +0 -26
  275. data/lib/metanorma/itu_document/metadata/itu_bibliographic_item.rb +0 -21
  276. data/lib/metanorma/itu_document/metadata/itu_series.rb +0 -22
  277. data/lib/metanorma/itu_document/metadata/itu_structured_identifier.rb +0 -23
  278. data/lib/metanorma/itu_document/metadata/meeting_date.rb +0 -18
  279. data/lib/metanorma/itu_document/metadata/meeting_element.rb +0 -18
  280. data/lib/metanorma/itu_document/metadata/study_period.rb +0 -18
  281. data/lib/metanorma/itu_document/metadata.rb +0 -18
  282. data/lib/metanorma/itu_document/root.rb +0 -25
  283. data/lib/metanorma/itu_document.rb +0 -8
  284. data/lib/metanorma/jis_document/metadata/jis_bib_data_extension_type.rb +0 -10
  285. data/lib/metanorma/jis_document/metadata/jis_bibliographic_item.rb +0 -15
  286. data/lib/metanorma/jis_document/metadata.rb +0 -12
  287. data/lib/metanorma/jis_document/root.rb +0 -29
  288. data/lib/metanorma/jis_document/sections/jis_annex_section.rb +0 -20
  289. data/lib/metanorma/jis_document/sections.rb +0 -9
  290. data/lib/metanorma/jis_document.rb +0 -11
  291. data/lib/metanorma/m3d_document/metadata/m3d_bib_data_extension_type.rb +0 -10
  292. data/lib/metanorma/m3d_document/metadata/m3d_bibliographic_item.rb +0 -15
  293. data/lib/metanorma/m3d_document/metadata.rb +0 -12
  294. data/lib/metanorma/m3d_document/root.rb +0 -29
  295. data/lib/metanorma/m3d_document.rb +0 -10
  296. data/lib/metanorma/mirror/default_registry.rb +0 -191
  297. data/lib/metanorma/mirror/handler_registry.rb +0 -60
  298. data/lib/metanorma/mirror/handler_result.rb +0 -37
  299. data/lib/metanorma/mirror/handlers/admonition.rb +0 -18
  300. data/lib/metanorma/mirror/handlers/example.rb +0 -21
  301. data/lib/metanorma/mirror/handlers/figure.rb +0 -53
  302. data/lib/metanorma/mirror/handlers/formula.rb +0 -35
  303. data/lib/metanorma/mirror/handlers/inline/catalog.rb +0 -52
  304. data/lib/metanorma/mirror/handlers/inline/rich_html_renderer.rb +0 -158
  305. data/lib/metanorma/mirror/handlers/inline/text_extractor.rb +0 -116
  306. data/lib/metanorma/mirror/handlers/inline.rb +0 -226
  307. data/lib/metanorma/mirror/handlers/list.rb +0 -110
  308. data/lib/metanorma/mirror/handlers/note.rb +0 -26
  309. data/lib/metanorma/mirror/handlers/paragraph.rb +0 -19
  310. data/lib/metanorma/mirror/handlers/quote.rb +0 -16
  311. data/lib/metanorma/mirror/handlers/review.rb +0 -19
  312. data/lib/metanorma/mirror/handlers/section.rb +0 -149
  313. data/lib/metanorma/mirror/handlers/sourcecode.rb +0 -27
  314. data/lib/metanorma/mirror/handlers/structural.rb +0 -68
  315. data/lib/metanorma/mirror/handlers/table.rb +0 -81
  316. data/lib/metanorma/mirror/handlers/term.rb +0 -100
  317. data/lib/metanorma/mirror/handlers.rb +0 -60
  318. data/lib/metanorma/mirror/id_strategy/positional.rb +0 -166
  319. data/lib/metanorma/mirror/id_strategy/preserve.rb +0 -12
  320. data/lib/metanorma/mirror/id_strategy.rb +0 -34
  321. data/lib/metanorma/mirror/math_util.rb +0 -53
  322. data/lib/metanorma/mirror/metadata.rb +0 -37
  323. data/lib/metanorma/mirror/model/container.rb +0 -47
  324. data/lib/metanorma/mirror/model/factory.rb +0 -52
  325. data/lib/metanorma/mirror/model/guide.rb +0 -26
  326. data/lib/metanorma/mirror/model/leaf.rb +0 -17
  327. data/lib/metanorma/mirror/model/mark.rb +0 -53
  328. data/lib/metanorma/mirror/model/node.rb +0 -47
  329. data/lib/metanorma/mirror/model/soft_break.rb +0 -33
  330. data/lib/metanorma/mirror/model/text.rb +0 -34
  331. data/lib/metanorma/mirror/model.rb +0 -16
  332. data/lib/metanorma/mirror/output/builder.rb +0 -39
  333. data/lib/metanorma/mirror/output/formats/base_format.rb +0 -90
  334. data/lib/metanorma/mirror/output/formats/inline_format.rb +0 -142
  335. data/lib/metanorma/mirror/output/formats.rb +0 -53
  336. data/lib/metanorma/mirror/output/pipeline.rb +0 -93
  337. data/lib/metanorma/mirror/output/pipeline_context.rb +0 -22
  338. data/lib/metanorma/mirror/output.rb +0 -12
  339. data/lib/metanorma/mirror/rewriter.rb +0 -123
  340. data/lib/metanorma/mirror/safe_attr.rb +0 -16
  341. data/lib/metanorma/mirror/serialization/json_serializer.rb +0 -25
  342. data/lib/metanorma/mirror/serialization/yaml_serializer.rb +0 -20
  343. data/lib/metanorma/mirror/serialization.rb +0 -10
  344. data/lib/metanorma/mirror/transformer.rb +0 -110
  345. data/lib/metanorma/mirror.rb +0 -31
  346. data/lib/metanorma/nist_document/metadata/nist_bib_data_extension_type.rb +0 -10
  347. data/lib/metanorma/nist_document/metadata/nist_bibliographic_item.rb +0 -15
  348. data/lib/metanorma/nist_document/metadata.rb +0 -12
  349. data/lib/metanorma/nist_document/root.rb +0 -29
  350. data/lib/metanorma/nist_document/sections/errata.rb +0 -16
  351. data/lib/metanorma/nist_document/sections/errata_clause.rb +0 -20
  352. data/lib/metanorma/nist_document/sections/errata_row.rb +0 -22
  353. data/lib/metanorma/nist_document/sections/nist_preface.rb +0 -30
  354. data/lib/metanorma/nist_document/sections.rb +0 -12
  355. data/lib/metanorma/nist_document.rb +0 -11
  356. data/lib/metanorma/ogc_document/metadata/ogc_bib_data_extension_type.rb +0 -12
  357. data/lib/metanorma/ogc_document/metadata/ogc_bibliographic_item.rb +0 -19
  358. data/lib/metanorma/ogc_document/metadata.rb +0 -12
  359. data/lib/metanorma/ogc_document/root.rb +0 -25
  360. data/lib/metanorma/ogc_document.rb +0 -8
  361. data/lib/metanorma/plateau_document/metadata/plateau_bibliographic_item.rb +0 -13
  362. data/lib/metanorma/plateau_document/metadata.rb +0 -10
  363. data/lib/metanorma/plateau_document/root.rb +0 -29
  364. data/lib/metanorma/plateau_document.rb +0 -10
  365. data/lib/metanorma/registers/setup.rb +0 -166
  366. data/lib/metanorma/registers.rb +0 -7
  367. data/lib/metanorma/ribose_document/metadata/ribose_bib_data_extension_type.rb +0 -20
  368. data/lib/metanorma/ribose_document/metadata/ribose_bibliographic_item.rb +0 -18
  369. data/lib/metanorma/ribose_document/metadata.rb +0 -12
  370. data/lib/metanorma/ribose_document/root.rb +0 -26
  371. data/lib/metanorma/ribose_document.rb +0 -8
  372. data/lib/metanorma/standard_document/annotation_container.rb +0 -39
  373. data/lib/metanorma/standard_document/block_attributes.rb +0 -281
  374. data/lib/metanorma/standard_document/blocks/amend_block.rb +0 -50
  375. data/lib/metanorma/standard_document/blocks/amend_content_block.rb +0 -35
  376. data/lib/metanorma/standard_document/blocks/auto_number.rb +0 -20
  377. data/lib/metanorma/standard_document/blocks/block_source.rb +0 -22
  378. data/lib/metanorma/standard_document/blocks/change_type.rb +0 -21
  379. data/lib/metanorma/standard_document/blocks/element_name.rb +0 -22
  380. data/lib/metanorma/standard_document/blocks/form.rb +0 -38
  381. data/lib/metanorma/standard_document/blocks/image_map_area_type.rb +0 -24
  382. data/lib/metanorma/standard_document/blocks/image_map_area_type_type.rb +0 -21
  383. data/lib/metanorma/standard_document/blocks/image_map_block.rb +0 -32
  384. data/lib/metanorma/standard_document/blocks/image_map_coords.rb +0 -19
  385. data/lib/metanorma/standard_document/blocks/image_map_radius.rb +0 -19
  386. data/lib/metanorma/standard_document/blocks/multilingual_rendering_type.rb +0 -21
  387. data/lib/metanorma/standard_document/blocks/passthrough.rb +0 -3
  388. data/lib/metanorma/standard_document/blocks/requirement_model.rb +0 -20
  389. data/lib/metanorma/standard_document/blocks/source_origin_element.rb +0 -23
  390. data/lib/metanorma/standard_document/blocks/standard_admonition_block.rb +0 -32
  391. data/lib/metanorma/standard_document/blocks/standard_block.rb +0 -28
  392. data/lib/metanorma/standard_document/blocks/standard_block_no_notes.rb +0 -34
  393. data/lib/metanorma/standard_document/blocks/standard_example_block.rb +0 -30
  394. data/lib/metanorma/standard_document/blocks/standard_figure_block.rb +0 -32
  395. data/lib/metanorma/standard_document/blocks/standard_formula_block.rb +0 -30
  396. data/lib/metanorma/standard_document/blocks/standard_note_block.rb +0 -64
  397. data/lib/metanorma/standard_document/blocks/standard_paragraph_block.rb +0 -25
  398. data/lib/metanorma/standard_document/blocks/standard_quote_block.rb +0 -29
  399. data/lib/metanorma/standard_document/blocks/standard_sourcecode_block.rb +0 -32
  400. data/lib/metanorma/standard_document/blocks/standard_table_block.rb +0 -39
  401. data/lib/metanorma/standard_document/blocks/svg_map_block.rb +0 -23
  402. data/lib/metanorma/standard_document/blocks/svg_target_type.rb +0 -20
  403. data/lib/metanorma/standard_document/blocks/table_col.rb +0 -16
  404. data/lib/metanorma/standard_document/blocks/to_c.rb +0 -17
  405. data/lib/metanorma/standard_document/blocks.rb +0 -60
  406. data/lib/metanorma/standard_document/boilerplate.rb +0 -32
  407. data/lib/metanorma/standard_document/elements/add.rb +0 -3
  408. data/lib/metanorma/standard_document/elements/del.rb +0 -3
  409. data/lib/metanorma/standard_document/elements/form_input.rb +0 -27
  410. data/lib/metanorma/standard_document/elements/input.rb +0 -12
  411. data/lib/metanorma/standard_document/elements/input_type.rb +0 -27
  412. data/lib/metanorma/standard_document/elements/label.rb +0 -19
  413. data/lib/metanorma/standard_document/elements/option.rb +0 -27
  414. data/lib/metanorma/standard_document/elements/orientation_type.rb +0 -27
  415. data/lib/metanorma/standard_document/elements/select.rb +0 -32
  416. data/lib/metanorma/standard_document/elements/standard_page_break_element.rb +0 -22
  417. data/lib/metanorma/standard_document/elements/textarea.rb +0 -25
  418. data/lib/metanorma/standard_document/elements.rb +0 -20
  419. data/lib/metanorma/standard_document/lists/standard_definition.rb +0 -24
  420. data/lib/metanorma/standard_document/lists/standard_definition_list.rb +0 -30
  421. data/lib/metanorma/standard_document/lists/standard_definition_term.rb +0 -27
  422. data/lib/metanorma/standard_document/lists/standard_unordered_list.rb +0 -28
  423. data/lib/metanorma/standard_document/lists/unordered_checkable_list_item.rb +0 -26
  424. data/lib/metanorma/standard_document/lists.rb +0 -17
  425. data/lib/metanorma/standard_document/metadata/editorial_group_type.rb +0 -25
  426. data/lib/metanorma/standard_document/metadata/ics_type.rb +0 -26
  427. data/lib/metanorma/standard_document/metadata/metanorma_extension.rb +0 -26
  428. data/lib/metanorma/standard_document/metadata/presentation_metadata.rb +0 -107
  429. data/lib/metanorma/standard_document/metadata/semantic_metadata.rb +0 -18
  430. data/lib/metanorma/standard_document/metadata/standard_bib_data.rb +0 -25
  431. data/lib/metanorma/standard_document/metadata/standard_bib_data_extension_type.rb +0 -37
  432. data/lib/metanorma/standard_document/metadata/structured_identifier_type.rb +0 -48
  433. data/lib/metanorma/standard_document/metadata/technical_committee_type.rb +0 -27
  434. data/lib/metanorma/standard_document/metadata/unitsml/amount_of_substance.rb +0 -19
  435. data/lib/metanorma/standard_document/metadata/unitsml/base_quantity.rb +0 -34
  436. data/lib/metanorma/standard_document/metadata/unitsml/dimension.rb +0 -39
  437. data/lib/metanorma/standard_document/metadata/unitsml/dimension_set.rb +0 -19
  438. data/lib/metanorma/standard_document/metadata/unitsml/electric_current.rb +0 -19
  439. data/lib/metanorma/standard_document/metadata/unitsml/enumerated_root_unit.rb +0 -23
  440. data/lib/metanorma/standard_document/metadata/unitsml/length.rb +0 -19
  441. data/lib/metanorma/standard_document/metadata/unitsml/luminous_intensity.rb +0 -19
  442. data/lib/metanorma/standard_document/metadata/unitsml/mass.rb +0 -19
  443. data/lib/metanorma/standard_document/metadata/unitsml/namespace.rb +0 -17
  444. data/lib/metanorma/standard_document/metadata/unitsml/plane_angle.rb +0 -19
  445. data/lib/metanorma/standard_document/metadata/unitsml/prefix.rb +0 -30
  446. data/lib/metanorma/standard_document/metadata/unitsml/prefix_name.rb +0 -21
  447. data/lib/metanorma/standard_document/metadata/unitsml/prefix_set.rb +0 -19
  448. data/lib/metanorma/standard_document/metadata/unitsml/prefix_symbol.rb +0 -21
  449. data/lib/metanorma/standard_document/metadata/unitsml/quantity.rb +0 -28
  450. data/lib/metanorma/standard_document/metadata/unitsml/quantity_name.rb +0 -21
  451. data/lib/metanorma/standard_document/metadata/unitsml/quantity_set.rb +0 -19
  452. data/lib/metanorma/standard_document/metadata/unitsml/root_units.rb +0 -19
  453. data/lib/metanorma/standard_document/metadata/unitsml/thermodynamic_temperature.rb +0 -19
  454. data/lib/metanorma/standard_document/metadata/unitsml/time.rb +0 -19
  455. data/lib/metanorma/standard_document/metadata/unitsml/unit.rb +0 -32
  456. data/lib/metanorma/standard_document/metadata/unitsml/unit_name.rb +0 -21
  457. data/lib/metanorma/standard_document/metadata/unitsml/unit_set.rb +0 -19
  458. data/lib/metanorma/standard_document/metadata/unitsml/unit_symbol.rb +0 -36
  459. data/lib/metanorma/standard_document/metadata/unitsml/unit_system.rb +0 -23
  460. data/lib/metanorma/standard_document/metadata/unitsml/unitsml_root.rb +0 -28
  461. data/lib/metanorma/standard_document/metadata/unitsml.rb +0 -39
  462. data/lib/metanorma/standard_document/metadata.rb +0 -23
  463. data/lib/metanorma/standard_document/namespace.rb +0 -11
  464. data/lib/metanorma/standard_document/refs/reference_to_term.rb +0 -26
  465. data/lib/metanorma/standard_document/refs/reference_to_termbase.rb +0 -27
  466. data/lib/metanorma/standard_document/refs/standoc_locality_stack.rb +0 -24
  467. data/lib/metanorma/standard_document/refs/standoc_reference_to_citation_element.rb +0 -27
  468. data/lib/metanorma/standard_document/refs/standoc_reference_to_id_element.rb +0 -36
  469. data/lib/metanorma/standard_document/refs/xref_case_type.rb +0 -27
  470. data/lib/metanorma/standard_document/refs/xref_connective_type.rb +0 -27
  471. data/lib/metanorma/standard_document/refs/xref_target_type.rb +0 -25
  472. data/lib/metanorma/standard_document/refs.rb +0 -18
  473. data/lib/metanorma/standard_document/root.rb +0 -10
  474. data/lib/metanorma/standard_document/root_attributes.rb +0 -78
  475. data/lib/metanorma/standard_document/sections/abstract.rb +0 -19
  476. data/lib/metanorma/standard_document/sections/acknowledgements.rb +0 -19
  477. data/lib/metanorma/standard_document/sections/annex_section.rb +0 -69
  478. data/lib/metanorma/standard_document/sections/bibliography_section.rb +0 -20
  479. data/lib/metanorma/standard_document/sections/boilerplate_type.rb +0 -32
  480. data/lib/metanorma/standard_document/sections/clause_hierarchical_section.rb +0 -32
  481. data/lib/metanorma/standard_document/sections/clause_section.rb +0 -91
  482. data/lib/metanorma/standard_document/sections/colophon.rb +0 -16
  483. data/lib/metanorma/standard_document/sections/definition_section.rb +0 -72
  484. data/lib/metanorma/standard_document/sections/floating_section_title.rb +0 -23
  485. data/lib/metanorma/standard_document/sections/floating_title.rb +0 -27
  486. data/lib/metanorma/standard_document/sections/foreword.rb +0 -19
  487. data/lib/metanorma/standard_document/sections/introduction.rb +0 -20
  488. data/lib/metanorma/standard_document/sections/misc_container.rb +0 -31
  489. data/lib/metanorma/standard_document/sections/normative_type.rb +0 -29
  490. data/lib/metanorma/standard_document/sections/preface.rb +0 -36
  491. data/lib/metanorma/standard_document/sections/sections.rb +0 -47
  492. data/lib/metanorma/standard_document/sections/standard_content_section.rb +0 -41
  493. data/lib/metanorma/standard_document/sections/standard_hierarchical_section.rb +0 -30
  494. data/lib/metanorma/standard_document/sections/standard_references_section.rb +0 -74
  495. data/lib/metanorma/standard_document/sections/standard_section.rb +0 -39
  496. data/lib/metanorma/standard_document/sections/terms_section.rb +0 -61
  497. data/lib/metanorma/standard_document/sections.rb +0 -34
  498. data/lib/metanorma/standard_document/standard_document_type.rb +0 -15
  499. data/lib/metanorma/standard_document/terms/abbreviation_type.rb +0 -27
  500. data/lib/metanorma/standard_document/terms/concept.rb +0 -42
  501. data/lib/metanorma/standard_document/terms/definition_collection.rb +0 -24
  502. data/lib/metanorma/standard_document/terms/designation.rb +0 -31
  503. data/lib/metanorma/standard_document/terms/expression_designation.rb +0 -38
  504. data/lib/metanorma/standard_document/terms/expression_type.rb +0 -27
  505. data/lib/metanorma/standard_document/terms/grammar_gender.rb +0 -27
  506. data/lib/metanorma/standard_document/terms/grammar_info.rb +0 -36
  507. data/lib/metanorma/standard_document/terms/graphical_symbol_designation.rb +0 -25
  508. data/lib/metanorma/standard_document/terms/letter_symbol_designation.rb +0 -27
  509. data/lib/metanorma/standard_document/terms/non_verbal_representation.rb +0 -33
  510. data/lib/metanorma/standard_document/terms/related_term.rb +0 -31
  511. data/lib/metanorma/standard_document/terms/related_term_type.rb +0 -28
  512. data/lib/metanorma/standard_document/terms/term.rb +0 -66
  513. data/lib/metanorma/standard_document/terms/term_collection.rb +0 -24
  514. data/lib/metanorma/standard_document/terms/term_definition.rb +0 -29
  515. data/lib/metanorma/standard_document/terms/term_expression.rb +0 -20
  516. data/lib/metanorma/standard_document/terms/term_name_element.rb +0 -29
  517. data/lib/metanorma/standard_document/terms/term_source.rb +0 -29
  518. data/lib/metanorma/standard_document/terms/term_source_status.rb +0 -29
  519. data/lib/metanorma/standard_document/terms/term_source_type.rb +0 -21
  520. data/lib/metanorma/standard_document/terms/verbal_expression.rb +0 -35
  521. data/lib/metanorma/standard_document/terms.rb +0 -33
  522. data/lib/metanorma/standard_document.rb +0 -27
  523. data/lib/metanorma/un_document/blocks/un_admonition_block.rb +0 -86
  524. data/lib/metanorma/un_document/blocks.rb +0 -9
  525. data/lib/metanorma/un_document/metadata/un_bib_data_extension_type.rb +0 -10
  526. data/lib/metanorma/un_document/metadata/un_bibliographic_item.rb +0 -15
  527. data/lib/metanorma/un_document/metadata.rb +0 -12
  528. data/lib/metanorma/un_document/root.rb +0 -37
  529. data/lib/metanorma/un_document/sections/un_abstract_section.rb +0 -48
  530. data/lib/metanorma/un_document/sections/un_preface.rb +0 -40
  531. data/lib/metanorma/un_document/sections/un_sections.rb +0 -24
  532. data/lib/metanorma/un_document/sections.rb +0 -11
  533. data/lib/metanorma/un_document/un_text_element.rb +0 -116
  534. data/lib/metanorma/un_document.rb +0 -13
@@ -0,0 +1,30 @@
1
+ <div class="title-section">
2
+ {% if cover.cover_security or cover.cover_recipient %}
3
+ {% comment %} Agency layout: title band, docinfo table. {% endcomment %}
4
+ {% if title %}
5
+ <div class="cover-title"><span>{{ title | escape }}</span></div>
6
+ {% endif %}
7
+ {% if cover.cover_stage_display %}
8
+ <p class="cover-stage">{{ cover.cover_stage_display | escape }}</p>
9
+ {% endif %}
10
+ {% if cover.cover_publisher_name %}
11
+ <p class="cover-publisher">{{ cover.cover_publisher_name | escape }}</p>
12
+ {% endif %}
13
+ <p class="cover-band">{{ cover.cover_doctype_label | escape }} • {{ cover.cover_primary_docidentifier | escape }} {{ title | escape }} {{ cover.cover_publisher_name | escape }}</p>
14
+ <p class="cover-doc-year">{{ cover.cover_copyright_year | escape }}</p>
15
+ <p class="cover-committee">{{ cover.cover_committee_name | escape }}</p>
16
+ <p class="cover-publisher">{{ cover.cover_publisher_name | escape }}</p>
17
+ <div class="cover-docinfo">
18
+ <p>{{ cover.cover_doctype_label | escape }}</p>
19
+ <p>{{ cover.cover_stage_display | escape }}</p>
20
+ <p>{{ cover.revdate | escape }}</p>
21
+ <p>Classification: {{ cover.cover_security | escape }}</p>
22
+ <p>Recipient: {{ cover.cover_recipient | escape }}</p>
23
+ <p>© {{ cover.cover_copyright_owner | escape }} {{ cover.cover_copyright_year | escape }}</p>
24
+ </div>
25
+ {% else %}
26
+ {% comment %} Publisher layout: title, doctype label, docid, stage. {% endcomment %}
27
+ <p class="cover-docid-band">{{ title | escape }} • {{ title | escape }} {{ cover.cover_doctype_label | escape }} : {{ cover.cover_primary_docidentifier | escape }} - {{ cover.cover_stage_display | escape }}</p>
28
+ {% endif %}
29
+ </div>
30
+ <hr class="cover-separator" />
@@ -0,0 +1 @@
1
+ <span class="column-break"></span>
@@ -7,5 +7,8 @@
7
7
  <span class="subtitle">{{ title | escape }}</span>
8
8
  </div></div>
9
9
  {% endif %}
10
+ {% if tc_html %}{{ tc_html }}{% endif %}
11
+ {% if stage_html %}{{ stage_html }}{% endif %}
10
12
  </div>
13
+ {% if dates_html %}<div class="coverpage-dates">{{ dates_html }}</div>{% endif %}
11
14
  <hr class="cover-separator" />
@@ -1 +1 @@
1
- <main class="main-section">{{ content }}</main>
1
+ <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>{{ content }}</main>
@@ -0,0 +1 @@
1
+ <ruby{% if id %} id="{{ id }}"{% endif %}>{{ base }}{% if annotation %}<rt>{{ annotation }}</rt>{% endif %}</ruby>
@@ -1,4 +1,5 @@
1
- <div{% if block.id %} id="{{ block.id }}"{% endif %} class="{{ block.css_class }}">
2
- {% if block.name_html %}<p class="code-name">{{ block.name_html }}</p>{% endif %}
1
+ <figure{% if block.id %} id="{{ block.id }}"{% endif %} class="{{ block.css_class }}" spellcheck="false" translation="no">
3
2
  <pre><code{% if block.lang %} lang="{{ block.lang }}"{% endif %}>{{ block.code_html }}</code></pre>
4
- </div>
3
+ {% if block.annotations_html %}<pre class="sourcecode"><div class="figdl"><p class="ListTitle">Key</p><dl>{{ block.annotations_html }}</dl></div></pre>{% endif %}
4
+ {% if block.name_html %}<figcaption>{{ block.name_html }}</figcaption>{% endif %}
5
+ </figure>
@@ -14,17 +14,68 @@
14
14
  {% if pub_date %}
15
15
  <p class="cover-date">{{ pub_date | escape }}</p>
16
16
  {% endif %}
17
+ {% comment %} Cover identity block, laid out like the isodoc titlepage.
18
+ The flavor passes its bibdata model as `cover`; the model's lutaml-model
19
+ auto-Drop (plus its `liquid` mappings) serves every fact. The title
20
+ precedes the identity lines so the cover reads like the native
21
+ "title • docnumber (draft …) edition Date: …" sequence. {% endcomment %}
22
+ {% if title %}
23
+ <div class="cover-title"><span>{{ title | escape }}</span></div>
24
+ {% endif %}
25
+ {% if cover.tc_docnumber.size > 0 %}
26
+ {% for num in cover.tc_docnumber %}
27
+ <p class="cover-doc-id">{{ num | escape }}</p>
28
+ {% endfor %}
29
+ {% else %}
30
+ {% if cover.docnumber_undated %}
31
+ <p class="cover-doc-id">{{ cover.docnumber_undated | escape }}{% if cover.draftinfo %} {{ cover.draftinfo | escape }}{% endif %}</p>
32
+ {% elsif cover.draftinfo %}
33
+ <p class="cover-doc-id">{{ cover.draftinfo | escape }}</p>
34
+ {% endif %}
35
+ {% endif %}
36
+ {% if cover.edition_display %}
37
+ <p class="cover-doc-id">{{ cover.edition_display | escape }}</p>
38
+ {% endif %}
39
+ {% if cover.revdate %}
40
+ <p class="cover-doc-id">Date: {{ cover.revdate | escape }}</p>
41
+ {% endif %}
42
+ {% if cover.tc_docnumber.size > 0 %}
43
+ {% if cover.docnumber_undated %}
44
+ <p class="cover-doc-id">{{ cover.docnumber_undated | escape }}{% if cover.draftinfo %} {{ cover.draftinfo | escape }}{% endif %}</p>
45
+ {% elsif cover.draftinfo %}
46
+ <p class="cover-doc-id">{{ cover.draftinfo | escape }}</p>
47
+ {% endif %}
48
+ {% endif %}
49
+ {% if cover.editorialgroup %}
50
+ <p class="cover-doc-id">{{ cover.editorialgroup | escape }}</p>
51
+ {% endif %}
52
+ {% if cover.secretariat %}
53
+ <p class="cover-doc-id">Secretariat: {{ cover.secretariat | escape }}</p>
54
+ {% endif %}
17
55
  </div>
18
56
  <div class="cover-body">
19
- {% if doctype %}
20
- <p class="cover-doctype">{{ doctype | escape }}</p>
21
- {% endif %}
57
+ {% comment %} Native titlepage order: display title, French title,
58
+ stage line, then ICS last. The doctype identity labels close the
59
+ column so they never split the native "… Date: <revdate> TC <title>
60
+ ICS:" cover band. {% endcomment %}
22
61
  {% if title %}
23
62
  <div class="cover-title"><span>{{ title | escape }}</span></div>
24
63
  {% endif %}
64
+ {% if title_fr %}
65
+ <div class="cover-title-fr"><span>{{ title_fr | escape }}</span></div>
66
+ {% endif %}
25
67
  {% if stage %}
26
68
  <div class="cover-stage"><p>{{ stage | escape }}</p></div>
27
69
  {% endif %}
70
+ {% if cover.ics %}
71
+ <p class="cover-ics"><strong>ICS:</strong> {{ cover.ics | escape }}</p>
72
+ {% endif %}
73
+ {% if doctype %}
74
+ <p class="cover-doctype">{{ doctype | escape }}</p>
75
+ {% endif %}
76
+ {% if cover.ext.subdoctype %}
77
+ <p class="cover-docsubtype">Document subtype: {{ cover.ext.subdoctype | capitalize | escape }}</p>
78
+ {% endif %}
28
79
  </div>
29
80
  </div>
30
81
  </div>
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "liquid"
4
+ require "metanorma-core"
4
5
  require "nokogiri"
5
6
 
6
7
  module Metanorma
@@ -14,8 +15,7 @@ module Metanorma
14
15
  end
15
16
 
16
17
  autoload :BaseRenderer, "metanorma/html/base_renderer"
17
- autoload :Flavor, "metanorma/html/flavor"
18
- autoload :FlavorRegistry, "metanorma/html/flavor_registry"
18
+ autoload :Concerns, "metanorma/html/concerns"
19
19
  autoload :Generator, "metanorma/html/generator"
20
20
  autoload :RendererDelegation, "metanorma/html/renderer_delegation"
21
21
  autoload :Theme, "metanorma/html/theme"
@@ -23,18 +23,33 @@ module Metanorma
23
23
  autoload :Component, "metanorma/html/component"
24
24
  autoload :Drops, "metanorma/html/drops"
25
25
  autoload :StandardRenderer, "metanorma/html/standard_renderer"
26
- autoload :IsoRenderer, "metanorma/html/iso_renderer"
27
- autoload :BipmRenderer, "metanorma/html/bipm_renderer"
28
- autoload :CcRenderer, "metanorma/html/cc_renderer"
29
- autoload :CsaRenderer, "metanorma/html/csa_renderer"
30
- autoload :IccRenderer, "metanorma/html/icc_renderer"
31
- autoload :PdfaRenderer, "metanorma/html/pdfa_renderer"
32
- autoload :IecRenderer, "metanorma/html/iec_renderer"
33
- autoload :IeeeRenderer, "metanorma/html/ieee_renderer"
34
- autoload :IetfRenderer, "metanorma/html/ietf_renderer"
35
- autoload :IhoRenderer, "metanorma/html/iho_renderer"
36
- autoload :ItuRenderer, "metanorma/html/itu_renderer"
37
- autoload :OgcRenderer, "metanorma/html/ogc_renderer"
38
- autoload :RiboseRenderer, "metanorma/html/ribose_renderer"
26
+
27
+ # This module is a pure format adapter over the central flavor
28
+ # registry (Metanorma.flavors). It contributes the HTML renderers
29
+ # for the two model trees the harness ships — that is the extent of
30
+ # its registration. Flavor gems register their own entries from
31
+ # their load paths; nothing here knows a flavor.
32
+ #
33
+ # Lazy: the registry exists only on the flavor-table line of
34
+ # metanorma-core. Requiring this gem must never depend on it —
35
+ # seeds on first render, no-op without it.
36
+ module_function
37
+
38
+ def seed_flavors!
39
+ return unless defined?(Metanorma::Core::Flavors)
40
+ return if @flavors_seeded
41
+
42
+ @flavors_seeded = true
43
+ Metanorma::Core::Flavors.register(Metanorma::Core::Flavor.new(
44
+ name: :document,
45
+ model_root: Metanorma::Document::Root,
46
+ renderers: { html: BaseRenderer },
47
+ ))
48
+ Metanorma::Core::Flavors.register(Metanorma::Core::Flavor.new(
49
+ name: :standoc,
50
+ model_root: "Metanorma::Standoc::Document::Root",
51
+ renderers: { html: StandardRenderer },
52
+ ))
53
+ end
39
54
  end
40
55
  end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "open3"
5
+ require "rbconfig"
6
+
7
+ desc "Audit flavor repos: parse + HTML-generate presentation fixtures"
8
+ task :flavors_audit do
9
+ flavors = (ENV["FLAVORS"] ||
10
+ "iso itu ogc iec iho bipm cc ribose bsi nist jis gb")
11
+ .split(/[\s,]+/).reject(&:empty?)
12
+ home = Dir.home
13
+ results = {}
14
+
15
+ flavors.each do |flavor|
16
+ dir = File.join(home, "src/mn/metanorma-#{flavor}")
17
+ results[flavor] = audit_flavor(flavor, dir)
18
+ end
19
+
20
+ results.each do |flavor, lines|
21
+ puts "== #{flavor}"
22
+ Array(lines).each { |l| puts " #{l}" }
23
+ end
24
+ end
25
+
26
+ def audit_flavor(flavor, dir)
27
+ return ["NO_CHECKOUT #{dir}"] unless File.file?(File.join(dir, "Gemfile"))
28
+
29
+ fixtures = (Dir[File.join(dir, "spec/fixtures/**/*presentation*.xml")] +
30
+ Dir[File.join(dir, "**/*presentation*.xml")].reject do |f|
31
+ f.include?("spec/fixtures") || f.include?("node_modules")
32
+ end).uniq.first(2)
33
+ return ["NO_PRESENTATION_FIXTURE"] if fixtures.empty?
34
+
35
+ script = flavor_probe_script(flavor, dir, fixtures)
36
+ # The target repo's bundle is its own resolution: make sure it is
37
+ # installed, then run the probe through it.
38
+ gemfile = File.join(dir, "Gemfile")
39
+ # Scrub EVERY BUNDLE*/BUNDLER* var the invoking context leaks —
40
+ # BUNDLE_LOCKFILE/BUNDLER_VERSION silently hijack nested installs.
41
+ scrub = ["env",
42
+ *ENV.keys.select { |k| k.start_with?("BUNDLE") }
43
+ .flat_map { |k| ["-u", k] },
44
+ "-u", "RUBYOPT", "-u", "RUBYLIB",
45
+ "BUNDLE_GEMFILE=#{gemfile}"]
46
+ install_out, install_st = Open3.capture2e(*scrub, "bundle", "install",
47
+ chdir: dir)
48
+ unless install_st.success?
49
+ return ["BUNDLE_INSTALL_FAIL",
50
+ *install_out.lines.map(&:strip).reject(&:empty?).last(3)]
51
+ end
52
+ out, _st = Open3.capture2e(*scrub, "bundle", "exec", RbConfig.ruby,
53
+ "-e", script, chdir: dir)
54
+ out.lines.map(&:strip).reject(&:empty?)
55
+ rescue StandardError => e
56
+ ["PROBE_ERROR #{e.class}: #{e.message[0, 100]}"]
57
+ end
58
+
59
+ def flavor_probe_script(flavor, dir, fixtures)
60
+ <<~RUBY
61
+ flavor = #{flavor.inspect}
62
+ dir = #{dir.inspect}
63
+ require "metanorma-core"
64
+ begin
65
+ require "metanorma/\#{flavor}"
66
+ rescue LoadError => e
67
+ puts "LOAD_FAIL \#{e.message[0, 100]}"; exit 2
68
+ end
69
+ require "metanorma/html/generator"
70
+ require "timeout"
71
+ root = nil
72
+ # Older metanorma-core resolutions predate the Flavors table; the
73
+ # constant lookup then falls through to the Root convention below.
74
+ flavors_mod = Object.const_defined?("Metanorma::Core::Flavors") ? Metanorma::Core::Flavors : nil
75
+ [flavors_mod].compact.each do |mod|
76
+ mod.table.reverse_each do |entry|
77
+ next if entry.respond_to?(:taste?) && entry.taste?
78
+ next unless entry.name.to_s == "\#{flavor}"
79
+ mc = entry.model_root_class rescue nil
80
+ root = mc if mc
81
+ end
82
+ end
83
+ begin
84
+ root ||= Object.const_get("Metanorma::#{flavor.capitalize}::Document::Root")
85
+ rescue NameError
86
+ root = nil
87
+ end
88
+ unless root
89
+ puts "NO_ROOT"; exit 3
90
+ end
91
+ #{fixtures.inspect}.each do |fx|
92
+ label = fx.sub("\#{dir}/", "")
93
+ begin
94
+ model = Timeout.timeout(120) { root.from_xml(File.read(fx, encoding: "utf-8")) }
95
+ puts "PARSE_OK \#{label}"
96
+ begin
97
+ html = Timeout.timeout(120) { Metanorma::Html::Generator.generate(model) }
98
+ require "nokogiri"
99
+ page = Nokogiri::HTML(html)
100
+ page.css("header, nav, .header-actions, button, kbd").remove
101
+ p_count = page.css("p").size
102
+ verdict = p_count.positive? ? "CONTENT" : "EMPTY_SHELL"
103
+ puts "HTML_\#{verdict} \#{label} p=\#{p_count}"
104
+ rescue Timeout::Error
105
+ puts "HTML_TIMEOUT \#{label}"
106
+ rescue StandardError => e
107
+ puts "HTML_FAIL \#{label} \#{e.class}: \#{e.message[0, 100]}"
108
+ end
109
+ rescue Timeout::Error
110
+ puts "PARSE_TIMEOUT \#{label}"
111
+ rescue StandardError => e
112
+ puts "PARSE_FAIL \#{label} \#{e.class}: \#{e.message[0, 100]}"
113
+ end
114
+ end
115
+ RUBY
116
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ desc "Diff the grammar-coverage vocabulary against standoc-models"
4
+ task :grammar_coverage do
5
+ require_relative "../lib/metanorma/document/grammar_vocabulary"
6
+
7
+ dir = ENV["STANDOC_MODELS"] ||
8
+ File.expand_path("~/src/mn/standoc-models/grammars")
9
+ abort <<~MSG unless File.directory?(dir)
10
+ standoc-models grammars not found at #{dir}
11
+ Clone metanorma/standoc-models or point STANDOC_MODELS at its grammars/ dir.
12
+ MSG
13
+
14
+ fresh = Metanorma::Document::GrammarVocabulary.scan(dir)
15
+ spec = {
16
+ semantic: Metanorma::Document::GrammarVocabulary::SEMANTIC_ELEMENTS,
17
+ presentation: Metanorma::Document::GrammarVocabulary::PRESENTATION_ELEMENTS,
18
+ }
19
+
20
+ %i[semantic presentation].each do |kind|
21
+ added = fresh[kind] - spec[kind]
22
+ stale = spec[kind] - fresh[kind]
23
+ puts "== #{kind}: grammar #{fresh[kind].size} vs spec #{spec[kind].size}"
24
+ puts " new in grammar (classify: map, delegate, or gap): #{added.join(' ')}" unless added.empty?
25
+ puts " gone from grammar (stale spec entries): #{stale.join(' ')}" unless stale.empty?
26
+ puts " in sync" if added.empty? && stale.empty?
27
+ end
28
+ end
@@ -35,26 +35,42 @@ module RoundtripSamples
35
35
 
36
36
  HTTP_TIMEOUT = 30
37
37
 
38
- # Maps mn-samples-* repo name to the model class for round-tripping.
39
- # nil means no document model exists yet — reported as "no_model".
38
+ # Maps mn-samples-* repo name to the model class name for
39
+ # round-tripping. Resolved lazily: the flavor trees moved to their
40
+ # gems (Phase 5), and this task must not require every flavor gem at
41
+ # load time — missing constants resolve to nil ("no_model").
40
42
  # OIML moved to the metanorma-oiml gem — its roundtrip lives there.
41
43
  FLAVOR_MODEL_MAP = {
42
- "iso" => Metanorma::IsoDocument::Root,
43
- "iec" => Metanorma::IecDocument::Root,
44
- "ieee" => Metanorma::IeeeDocument::Root,
45
- "iho" => Metanorma::IhoDocument::Root,
46
- "cc" => Metanorma::CcDocument::Root,
47
- "bipm" => Metanorma::BipmDocument::Root,
48
- "itu" => Metanorma::ItuDocument::Root,
49
- "ogc" => Metanorma::OgcDocument::Root,
50
- "ribose" => Metanorma::RiboseDocument::Root,
51
- "ietf" => Metanorma::IetfDocument::Root,
52
- "csa" => Metanorma::CsaDocument::Root,
44
+ "iso" => "Metanorma::Iso::Document::Root",
45
+ "iec" => "Metanorma::Iec::Document::Root",
46
+ "ieee" => "Metanorma::Ieee::Document::Root",
47
+ "iho" => "Metanorma::Iho::Document::Root",
48
+ "cc" => "Metanorma::Cc::Document::Root",
49
+ "bipm" => "Metanorma::Bipm::Document::Root",
50
+ "itu" => "Metanorma::Itu::Document::Root",
51
+ "ogc" => "Metanorma::Ogc::Document::Root",
52
+ "ribose" => "Metanorma::Ribose::Document::Root",
53
+ "ietf" => "Metanorma::Ietf::Document::Root",
54
+ "csa" => "Metanorma::Csa::Document::Root",
53
55
  "un" => nil,
54
56
  }.freeze
55
57
 
56
58
  module_function
57
59
 
60
+
61
+ # Flavor gems load on demand; a missing gem resolves to nil
62
+ # ("no_model"), never a load-time NameError.
63
+ def resolve_flavor_model(repo_name)
64
+ name = FLAVOR_MODEL_MAP[repo_name]
65
+ name && safe_const(name)
66
+ end
67
+
68
+ def safe_const(name)
69
+ Object.const_get(name)
70
+ rescue NameError
71
+ nil
72
+ end
73
+
58
74
  # --- Entry Points ---
59
75
 
60
76
  def run_site(site_url, repo_name)
@@ -249,31 +265,31 @@ module RoundtripSamples
249
265
 
250
266
  # Maps root element names to model classes for auto-detection
251
267
  ROOT_MODEL_MAP = {
252
- "iso-standard" => -> { Metanorma::IsoDocument::Root },
253
- "iec-standard" => -> { Metanorma::IecDocument::Root },
254
- "ieee-standard" => -> { Metanorma::IeeeDocument::Root },
255
- "ogc-standard" => -> { Metanorma::OgcDocument::Root },
256
- "itu-standard" => -> { Metanorma::ItuDocument::Root },
257
- "bipm-standard" => -> { Metanorma::BipmDocument::Root },
258
- "nist-standard" => -> { Metanorma::IsoDocument::Root },
259
- "iho-standard" => -> { Metanorma::IhoDocument::Root },
260
- "rsd-standard" => -> { Metanorma::RiboseDocument::Root },
261
- "ietf-standard" => -> { Metanorma::IetfDocument::Root },
262
- "cc-standard" => -> { Metanorma::CcDocument::Root },
263
- "metanorma" => -> { Metanorma::IsoDocument::Root },
264
- "metanorma-collection" => -> { Metanorma::Collection::Root },
265
- "m3d-standard" => -> { Metanorma::IsoDocument::Root },
268
+ "iso-standard" => "Metanorma::Iso::Document::Root",
269
+ "iec-standard" => "Metanorma::Iec::Document::Root",
270
+ "ieee-standard" => "Metanorma::Ieee::Document::Root",
271
+ "ogc-standard" => "Metanorma::Ogc::Document::Root",
272
+ "itu-standard" => "Metanorma::Itu::Document::Root",
273
+ "bipm-standard" => "Metanorma::Bipm::Document::Root",
274
+ "nist-standard" => "Metanorma::Iso::Document::Root",
275
+ "iho-standard" => "Metanorma::Iho::Document::Root",
276
+ "rsd-standard" => "Metanorma::Ribose::Document::Root",
277
+ "ietf-standard" => "Metanorma::Ietf::Document::Root",
278
+ "cc-standard" => "Metanorma::Cc::Document::Root",
279
+ "metanorma" => "Metanorma::Iso::Document::Root",
280
+ "metanorma-collection" => "Metanorma::Collection::Root",
281
+ "m3d-standard" => "Metanorma::Iso::Document::Root",
266
282
  }.freeze
267
283
 
268
284
  def resolve_model(xml, repo_name)
269
285
  if repo_name
270
- model = FLAVOR_MODEL_MAP[repo_name]
286
+ model = resolve_flavor_model(repo_name)
271
287
  return model if model
272
288
  end
273
289
 
274
290
  # Auto-detect from XML root element or metanorma/@flavor
275
291
  if xml.include?("<metanorma-collection")
276
- return Metanorma::Collection::Root
292
+ return safe_const("Metanorma::Collection::Root")
277
293
  end
278
294
 
279
295
  root_name = extract_root_name(xml)
@@ -281,15 +297,13 @@ module RoundtripSamples
281
297
  # Check for <metanorma flavor="...">
282
298
  if xml =~ /<metanorma[^>]*flavor="([^"]*)"/
283
299
  flavor = Regexp.last_match(1)
284
- model = FLAVOR_MODEL_MAP[flavor]
300
+ model = resolve_flavor_model(flavor)
285
301
  return model if model
286
302
  end
287
303
 
288
304
  # Fallback: map root element name
289
- factory = ROOT_MODEL_MAP[root_name]
290
- return factory.call if factory
291
-
292
- nil
305
+ name = ROOT_MODEL_MAP[root_name]
306
+ name && safe_const(name)
293
307
  end
294
308
 
295
309
  def extract_root_name(xml)