metanorma-document 0.5.0 → 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 (543) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +81 -0
  3. data/Rakefile +3 -7
  4. data/data/stylesheets/base/_dark.css +3 -3
  5. data/data/stylesheets/base/_print.css +1 -1
  6. data/data/stylesheets/components/term.css +4 -2
  7. data/data/themes/ogc.yaml +5 -0
  8. data/lib/metanorma/basic_document/ancillary_blocks/figure_block.rb +2 -2
  9. data/lib/metanorma/basic_document/multi_paragraph/admonition_block.rb +2 -2
  10. data/lib/metanorma/document/cli.rb +134 -0
  11. data/lib/metanorma/document/components/ancillary_blocks/figure_block.rb +5 -0
  12. data/lib/metanorma/document/components/ancillary_blocks/fmt_figure_element.rb +47 -0
  13. data/lib/metanorma/document/components/ancillary_blocks/formula_block.rb +2 -0
  14. data/lib/metanorma/document/components/ancillary_blocks/imagemap_element.rb +73 -0
  15. data/lib/metanorma/document/components/ancillary_blocks/literal_block.rb +2 -0
  16. data/lib/metanorma/document/components/ancillary_blocks/sourcecode_block.rb +2 -0
  17. data/lib/metanorma/document/components/ancillary_blocks/svg_target_element.rb +27 -0
  18. data/lib/metanorma/document/components/ancillary_blocks/svgmap_element.rb +28 -0
  19. data/lib/metanorma/document/components/ancillary_blocks.rb +4 -0
  20. data/lib/metanorma/document/components/bib_data/bibliographic_item.rb +4 -0
  21. data/lib/metanorma/document/components/blocks/fmt_provision.rb +25 -0
  22. data/lib/metanorma/document/components/blocks/note_block.rb +8 -0
  23. data/lib/metanorma/document/components/blocks/permission_model.rb +9 -0
  24. data/lib/metanorma/document/components/blocks/recommendation_model.rb +9 -0
  25. data/lib/metanorma/document/components/blocks/requirement_base.rb +12 -0
  26. data/lib/metanorma/document/components/blocks/requirement_import.rb +23 -0
  27. data/lib/metanorma/document/components/blocks/requirement_measurement_target.rb +23 -0
  28. data/lib/metanorma/document/components/blocks/requirement_model.rb +9 -0
  29. data/lib/metanorma/document/components/blocks/requirement_specification.rb +23 -0
  30. data/lib/metanorma/document/components/blocks/requirement_verification.rb +23 -0
  31. data/lib/metanorma/document/components/blocks.rb +8 -0
  32. data/lib/metanorma/document/components/data_types/formatted_string.rb +9 -0
  33. data/lib/metanorma/document/components/id_elements/image.rb +4 -0
  34. data/lib/metanorma/document/components/inline/columnbreak_element.rb +17 -0
  35. data/lib/metanorma/document/components/inline/concept_element.rb +18 -0
  36. data/lib/metanorma/document/components/inline/date_element.rb +29 -0
  37. data/lib/metanorma/document/components/inline/display_text_element.rb +2 -0
  38. data/lib/metanorma/document/components/inline/em_raw_element.rb +6 -7
  39. data/lib/metanorma/document/components/inline/eref_element.rb +48 -22
  40. data/lib/metanorma/document/components/inline/eref_stack.rb +23 -0
  41. data/lib/metanorma/document/components/inline/error_message.rb +28 -0
  42. data/lib/metanorma/document/components/inline/fmt_date_element.rb +28 -0
  43. data/lib/metanorma/document/components/inline/fmt_date_inline_element.rb +26 -0
  44. data/lib/metanorma/document/components/inline/fmt_eref_element.rb +25 -0
  45. data/lib/metanorma/document/components/inline/fmt_origin_element.rb +24 -0
  46. data/lib/metanorma/document/components/inline/fmt_preferred_element.rb +3 -0
  47. data/lib/metanorma/document/components/inline/fmt_source_element.rb +31 -0
  48. data/lib/metanorma/document/components/inline/fn_element.rb +11 -0
  49. data/lib/metanorma/document/components/inline/link_element.rb +8 -0
  50. data/lib/metanorma/document/components/inline/name_with_id_element.rb +2 -0
  51. data/lib/metanorma/document/components/inline/refterm_element.rb +21 -0
  52. data/lib/metanorma/document/components/inline/semx_element.rb +22 -0
  53. data/lib/metanorma/document/components/inline/sourcelocality_stack_element.rb +27 -0
  54. data/lib/metanorma/document/components/inline/span_element.rb +2 -0
  55. data/lib/metanorma/document/components/inline/stem_inline_element.rb +2 -0
  56. data/lib/metanorma/document/components/inline/strong_raw_element.rb +6 -9
  57. data/lib/metanorma/document/components/inline/sub_element.rb +2 -0
  58. data/lib/metanorma/document/components/inline/termref_element.rb +24 -0
  59. data/lib/metanorma/document/components/inline/title_with_annotation_element.rb +10 -31
  60. data/lib/metanorma/document/components/inline/variant_title_element.rb +2 -0
  61. data/lib/metanorma/document/components/inline/vocabulary.rb +36 -0
  62. data/lib/metanorma/document/components/inline.rb +23 -0
  63. data/lib/metanorma/document/components/lists/dd_element.rb +6 -1
  64. data/lib/metanorma/document/components/lists/definition.rb +2 -0
  65. data/lib/metanorma/document/components/lists/definition_list.rb +3 -0
  66. data/lib/metanorma/document/components/lists/dt_element.rb +3 -0
  67. data/lib/metanorma/document/components/lists/fmt_list_element.rb +73 -0
  68. data/lib/metanorma/document/components/lists/list_item.rb +3 -0
  69. data/lib/metanorma/document/components/lists/ordered_list.rb +4 -2
  70. data/lib/metanorma/document/components/lists/unordered_list.rb +2 -0
  71. data/lib/metanorma/document/components/lists.rb +2 -0
  72. data/lib/metanorma/document/components/multi_paragraph/quote_block.rb +16 -0
  73. data/lib/metanorma/document/components/multi_paragraph/review_block.rb +2 -2
  74. data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +15 -0
  75. data/lib/metanorma/document/components/reference_elements/citation.rb +7 -0
  76. data/lib/metanorma/document/components/reference_elements/source_element.rb +4 -0
  77. data/lib/metanorma/document/components/semantic/node.rb +46 -0
  78. data/lib/metanorma/document/components/semantic.rb +11 -0
  79. data/lib/metanorma/document/components/tables/header_table_cell.rb +1 -0
  80. data/lib/metanorma/document/components/tables/table_cell.rb +70 -44
  81. data/lib/metanorma/document/components/tables/text_table_cell.rb +1 -0
  82. data/lib/metanorma/document/components/tables/text_table_row.rb +2 -0
  83. data/lib/metanorma/document/components/text_elements/ruby_annotation_element.rb +26 -0
  84. data/lib/metanorma/document/components/text_elements/ruby_element.rb +41 -6
  85. data/lib/metanorma/document/components/text_elements/ruby_pronunciation_element.rb +25 -0
  86. data/lib/metanorma/document/components/text_elements/strike_element.rb +3 -0
  87. data/lib/metanorma/document/components/text_elements/underline_element.rb +3 -0
  88. data/lib/metanorma/document/components/text_elements.rb +2 -0
  89. data/lib/metanorma/document/components.rb +1 -0
  90. data/lib/metanorma/document/grammar_vocabulary.rb +109 -0
  91. data/lib/metanorma/document/mirror_seed.rb +253 -0
  92. data/lib/metanorma/document/mko/collection.rb +168 -0
  93. data/lib/metanorma/document/mko/exporter.rb +17 -0
  94. data/lib/metanorma/document/mko/project.rb +1110 -0
  95. data/lib/metanorma/document/mko.rb +122 -0
  96. data/lib/metanorma/document/model_access.rb +44 -0
  97. data/lib/metanorma/document/native_models.rb +319 -0
  98. data/lib/metanorma/document/plain_text.rb +39 -0
  99. data/lib/metanorma/document/relaton/version_info.rb +4 -0
  100. data/lib/metanorma/document/version.rb +1 -1
  101. data/lib/metanorma/document.rb +19 -26
  102. data/lib/metanorma/{collection → document_collection}/directive.rb +1 -1
  103. data/lib/metanorma/{collection → document_collection}/doc_container.rb +6 -2
  104. data/lib/metanorma/{collection → document_collection}/entry.rb +2 -2
  105. data/lib/metanorma/{collection → document_collection}/root.rb +2 -2
  106. data/lib/metanorma/document_collection.rb +10 -0
  107. data/lib/metanorma/html/base_renderer.rb +105 -28
  108. data/lib/metanorma/html/component/footnote_collector.rb +21 -20
  109. data/lib/metanorma/html/concerns/metadata_extraction.rb +8 -3
  110. data/lib/metanorma/html/concerns/presentation_validation.rb +1 -2
  111. data/lib/metanorma/html/concerns/text_extraction.rb +154 -35
  112. data/lib/metanorma/html/concerns.rb +19 -0
  113. data/lib/metanorma/html/drops/admonition_drop.rb +1 -1
  114. data/lib/metanorma/html/drops/example_drop.rb +8 -1
  115. data/lib/metanorma/html/drops/footnote_drop.rb +1 -1
  116. data/lib/metanorma/html/drops/note_drop.rb +31 -4
  117. data/lib/metanorma/html/drops/sourcecode_drop.rb +22 -4
  118. data/lib/metanorma/html/generator.rb +11 -187
  119. data/lib/metanorma/html/renderer_delegation.rb +2 -2
  120. data/lib/metanorma/html/renderers/block_renderer.rb +246 -51
  121. data/lib/metanorma/html/renderers/inline_renderer.rb +144 -17
  122. data/lib/metanorma/html/renderers/section_renderer.rb +12 -2
  123. data/lib/metanorma/html/renderers/semantic_renderer.rb +487 -0
  124. data/lib/metanorma/html/renderers.rb +2 -0
  125. data/lib/metanorma/html/standard_renderer.rb +743 -81
  126. data/lib/metanorma/html/templates/_agency_cover.html.liquid +30 -0
  127. data/lib/metanorma/html/templates/_columnbreak.html.liquid +1 -0
  128. data/lib/metanorma/html/templates/_cover.html.liquid +3 -0
  129. data/lib/metanorma/html/templates/_example.html.liquid +1 -1
  130. data/lib/metanorma/html/templates/_main_content.html.liquid +1 -1
  131. data/lib/metanorma/html/templates/_note.html.liquid +1 -1
  132. data/lib/metanorma/html/templates/_paragraph.html.liquid +1 -1
  133. data/lib/metanorma/html/templates/_ruby.html.liquid +1 -0
  134. data/lib/metanorma/html/templates/_sourcecode.html.liquid +4 -3
  135. data/lib/metanorma/html/templates/_standard_cover.html.liquid +54 -3
  136. data/lib/metanorma/html/templates/_term_number.html.liquid +1 -1
  137. data/lib/metanorma/html.rb +30 -15
  138. data/tasks/flavors.rake +116 -0
  139. data/tasks/grammar.rake +28 -0
  140. data/tasks/roundtrip_samples.rake +48 -34
  141. metadata +121 -416
  142. data/frontend/dist/app.css +0 -1
  143. data/frontend/dist/app.iife.js +0 -24
  144. data/lib/metanorma/bipm_document/metadata/bipm_bib_data_extension_type.rb +0 -20
  145. data/lib/metanorma/bipm_document/metadata/bipm_bibliographic_item.rb +0 -17
  146. data/lib/metanorma/bipm_document/metadata/bipm_structured_identifier.rb +0 -21
  147. data/lib/metanorma/bipm_document/metadata/depiction_element.rb +0 -18
  148. data/lib/metanorma/bipm_document/metadata.rb +0 -15
  149. data/lib/metanorma/bipm_document/root.rb +0 -25
  150. data/lib/metanorma/bipm_document.rb +0 -8
  151. data/lib/metanorma/bsi_document/metadata/bsi_bib_data_extension_type.rb +0 -10
  152. data/lib/metanorma/bsi_document/metadata/bsi_bibliographic_item.rb +0 -15
  153. data/lib/metanorma/bsi_document/metadata.rb +0 -12
  154. data/lib/metanorma/bsi_document/root.rb +0 -29
  155. data/lib/metanorma/bsi_document/sections/bsi_annex_section.rb +0 -25
  156. data/lib/metanorma/bsi_document/sections/bsi_clause_section.rb +0 -25
  157. data/lib/metanorma/bsi_document/sections/bsi_sections.rb +0 -27
  158. data/lib/metanorma/bsi_document/sections.rb +0 -11
  159. data/lib/metanorma/bsi_document.rb +0 -11
  160. data/lib/metanorma/cc_document/metadata/cc_bib_data_extension_type.rb +0 -12
  161. data/lib/metanorma/cc_document/metadata/cc_bibliographic_item.rb +0 -17
  162. data/lib/metanorma/cc_document/metadata.rb +0 -11
  163. data/lib/metanorma/cc_document/root.rb +0 -25
  164. data/lib/metanorma/cc_document.rb +0 -8
  165. data/lib/metanorma/collection.rb +0 -10
  166. data/lib/metanorma/csa_document/root.rb +0 -27
  167. data/lib/metanorma/csa_document.rb +0 -9
  168. data/lib/metanorma/gb_document/metadata/gb_bib_data_extension_type.rb +0 -10
  169. data/lib/metanorma/gb_document/metadata/gb_bibliographic_item.rb +0 -15
  170. data/lib/metanorma/gb_document/metadata.rb +0 -12
  171. data/lib/metanorma/gb_document/root.rb +0 -29
  172. data/lib/metanorma/gb_document.rb +0 -10
  173. data/lib/metanorma/generic_document/root.rb +0 -31
  174. data/lib/metanorma/generic_document.rb +0 -7
  175. data/lib/metanorma/html/bipm_renderer.rb +0 -23
  176. data/lib/metanorma/html/cc_renderer.rb +0 -9
  177. data/lib/metanorma/html/csa_renderer.rb +0 -9
  178. data/lib/metanorma/html/flavor.rb +0 -50
  179. data/lib/metanorma/html/flavor_registry.rb +0 -49
  180. data/lib/metanorma/html/icc_renderer.rb +0 -10
  181. data/lib/metanorma/html/iec_renderer.rb +0 -9
  182. data/lib/metanorma/html/ieee_renderer.rb +0 -9
  183. data/lib/metanorma/html/ietf_renderer.rb +0 -9
  184. data/lib/metanorma/html/iho_renderer.rb +0 -9
  185. data/lib/metanorma/html/iso_renderer.rb +0 -535
  186. data/lib/metanorma/html/itu_renderer.rb +0 -9
  187. data/lib/metanorma/html/ogc_renderer.rb +0 -23
  188. data/lib/metanorma/html/pdfa_renderer.rb +0 -10
  189. data/lib/metanorma/html/ribose_renderer.rb +0 -9
  190. data/lib/metanorma/html/templates/_bipm_cover.html.liquid +0 -27
  191. data/lib/metanorma/html/templates/_iso_cover.html.liquid +0 -31
  192. data/lib/metanorma/html/templates/_iso_doc_title.html.liquid +0 -3
  193. data/lib/metanorma/iec_document/root.rb +0 -27
  194. data/lib/metanorma/iec_document.rb +0 -9
  195. data/lib/metanorma/ieee_document/metadata/ieee_bib_data_extension_type.rb +0 -18
  196. data/lib/metanorma/ieee_document/metadata/ieee_bibliographic_item.rb +0 -20
  197. data/lib/metanorma/ieee_document/metadata/ieee_structured_identifier.rb +0 -25
  198. data/lib/metanorma/ieee_document/metadata.rb +0 -14
  199. data/lib/metanorma/ieee_document/root.rb +0 -29
  200. data/lib/metanorma/ieee_document/sections/ieee_sections.rb +0 -31
  201. data/lib/metanorma/ieee_document/sections.rb +0 -9
  202. data/lib/metanorma/ieee_document.rb +0 -11
  203. data/lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb +0 -31
  204. data/lib/metanorma/ietf_document/metadata/ietf_bibliographic_item.rb +0 -51
  205. data/lib/metanorma/ietf_document/metadata/ietf_editorial_group.rb +0 -17
  206. data/lib/metanorma/ietf_document/metadata/pi_settings.rb +0 -32
  207. data/lib/metanorma/ietf_document/metadata.rb +0 -16
  208. data/lib/metanorma/ietf_document/root.rb +0 -30
  209. data/lib/metanorma/ietf_document/sections/ietf_annex_section.rb +0 -26
  210. data/lib/metanorma/ietf_document/sections/ietf_clause_section.rb +0 -26
  211. data/lib/metanorma/ietf_document/sections/ietf_content_section.rb +0 -25
  212. data/lib/metanorma/ietf_document/sections/ietf_sections.rb +0 -35
  213. data/lib/metanorma/ietf_document/sections.rb +0 -12
  214. data/lib/metanorma/ietf_document.rb +0 -11
  215. data/lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb +0 -23
  216. data/lib/metanorma/iho_document/metadata/iho_bibliographic_item.rb +0 -20
  217. data/lib/metanorma/iho_document/metadata/iho_editorial_group.rb +0 -19
  218. data/lib/metanorma/iho_document/metadata/iho_series.rb +0 -22
  219. data/lib/metanorma/iho_document/metadata/iho_sub_group.rb +0 -18
  220. data/lib/metanorma/iho_document/metadata.rb +0 -15
  221. data/lib/metanorma/iho_document/root.rb +0 -25
  222. data/lib/metanorma/iho_document.rb +0 -8
  223. data/lib/metanorma/iso_document/annotation_container.rb +0 -7
  224. data/lib/metanorma/iso_document/blocks/iso_admonition_block.rb +0 -27
  225. data/lib/metanorma/iso_document/blocks/iso_admonition_type.rb +0 -25
  226. data/lib/metanorma/iso_document/blocks.rb +0 -12
  227. data/lib/metanorma/iso_document/boilerplate.rb +0 -7
  228. data/lib/metanorma/iso_document/metadata/abstract_title.rb +0 -36
  229. data/lib/metanorma/iso_document/metadata/doc_identifier.rb +0 -26
  230. data/lib/metanorma/iso_document/metadata/doctype_element.rb +0 -20
  231. data/lib/metanorma/iso_document/metadata/ics.rb +0 -19
  232. data/lib/metanorma/iso_document/metadata/iec_document_category.rb +0 -23
  233. data/lib/metanorma/iso_document/metadata/iso_bib_data_extension_type.rb +0 -38
  234. data/lib/metanorma/iso_document/metadata/iso_bibliographic_item.rb +0 -103
  235. data/lib/metanorma/iso_document/metadata/iso_document_id.rb +0 -46
  236. data/lib/metanorma/iso_document/metadata/iso_document_stage_codes.rb +0 -26
  237. data/lib/metanorma/iso_document/metadata/iso_document_status.rb +0 -26
  238. data/lib/metanorma/iso_document/metadata/iso_document_substage_codes.rb +0 -26
  239. data/lib/metanorma/iso_document/metadata/iso_document_type.rb +0 -25
  240. data/lib/metanorma/iso_document/metadata/iso_localized_title.rb +0 -61
  241. data/lib/metanorma/iso_document/metadata/iso_project_group.rb +0 -32
  242. data/lib/metanorma/iso_document/metadata/iso_sub_group.rb +0 -38
  243. data/lib/metanorma/iso_document/metadata/language_element.rb +0 -18
  244. data/lib/metanorma/iso_document/metadata/metanorma_extension.rb +0 -9
  245. data/lib/metanorma/iso_document/metadata/project_number.rb +0 -22
  246. data/lib/metanorma/iso_document/metadata/script_element.rb +0 -18
  247. data/lib/metanorma/iso_document/metadata/stage_element.rb +0 -26
  248. data/lib/metanorma/iso_document/metadata/stagename_element.rb +0 -18
  249. data/lib/metanorma/iso_document/metadata/structured_identifier.rb +0 -16
  250. data/lib/metanorma/iso_document/metadata/title_amd.rb +0 -12
  251. data/lib/metanorma/iso_document/metadata/title_amendment_prefix.rb +0 -12
  252. data/lib/metanorma/iso_document/metadata/title_collection.rb +0 -47
  253. data/lib/metanorma/iso_document/metadata/title_full.rb +0 -12
  254. data/lib/metanorma/iso_document/metadata/title_intro.rb +0 -12
  255. data/lib/metanorma/iso_document/metadata/title_main.rb +0 -12
  256. data/lib/metanorma/iso_document/metadata/title_part.rb +0 -12
  257. data/lib/metanorma/iso_document/metadata/title_part_prefix.rb +0 -12
  258. data/lib/metanorma/iso_document/metadata.rb +0 -44
  259. data/lib/metanorma/iso_document/root.rb +0 -26
  260. data/lib/metanorma/iso_document/sections/colophon.rb +0 -3
  261. data/lib/metanorma/iso_document/sections/iso_abstract_section.rb +0 -15
  262. data/lib/metanorma/iso_document/sections/iso_amendment_clause.rb +0 -24
  263. data/lib/metanorma/iso_document/sections/iso_annex_section.rb +0 -50
  264. data/lib/metanorma/iso_document/sections/iso_clause_section.rb +0 -49
  265. data/lib/metanorma/iso_document/sections/iso_foreword_section.rb +0 -33
  266. data/lib/metanorma/iso_document/sections/iso_preface.rb +0 -51
  267. data/lib/metanorma/iso_document/sections/iso_sections.rb +0 -51
  268. data/lib/metanorma/iso_document/sections/iso_terms_section.rb +0 -76
  269. data/lib/metanorma/iso_document/sections.rb +0 -17
  270. data/lib/metanorma/iso_document/terms/iso_term.rb +0 -71
  271. data/lib/metanorma/iso_document/terms/iso_term_collection.rb +0 -20
  272. data/lib/metanorma/iso_document/terms/term_definition.rb +0 -30
  273. data/lib/metanorma/iso_document/terms/term_designation.rb +0 -44
  274. data/lib/metanorma/iso_document/terms/term_domain_element.rb +0 -18
  275. data/lib/metanorma/iso_document/terms/term_example.rb +0 -40
  276. data/lib/metanorma/iso_document/terms/term_expression.rb +0 -10
  277. data/lib/metanorma/iso_document/terms/term_note.rb +0 -42
  278. data/lib/metanorma/iso_document/terms/term_origin.rb +0 -4
  279. data/lib/metanorma/iso_document/terms/term_source.rb +0 -21
  280. data/lib/metanorma/iso_document/terms/verbal_definition.rb +0 -42
  281. data/lib/metanorma/iso_document/terms.rb +0 -21
  282. data/lib/metanorma/iso_document.rb +0 -15
  283. data/lib/metanorma/itu_document/metadata/itu_bib_data_extension_type.rb +0 -26
  284. data/lib/metanorma/itu_document/metadata/itu_bibliographic_item.rb +0 -21
  285. data/lib/metanorma/itu_document/metadata/itu_series.rb +0 -22
  286. data/lib/metanorma/itu_document/metadata/itu_structured_identifier.rb +0 -23
  287. data/lib/metanorma/itu_document/metadata/meeting_date.rb +0 -18
  288. data/lib/metanorma/itu_document/metadata/meeting_element.rb +0 -18
  289. data/lib/metanorma/itu_document/metadata/study_period.rb +0 -18
  290. data/lib/metanorma/itu_document/metadata.rb +0 -18
  291. data/lib/metanorma/itu_document/root.rb +0 -25
  292. data/lib/metanorma/itu_document.rb +0 -8
  293. data/lib/metanorma/jis_document/metadata/jis_bib_data_extension_type.rb +0 -10
  294. data/lib/metanorma/jis_document/metadata/jis_bibliographic_item.rb +0 -15
  295. data/lib/metanorma/jis_document/metadata.rb +0 -12
  296. data/lib/metanorma/jis_document/root.rb +0 -29
  297. data/lib/metanorma/jis_document/sections/jis_annex_section.rb +0 -20
  298. data/lib/metanorma/jis_document/sections.rb +0 -9
  299. data/lib/metanorma/jis_document.rb +0 -11
  300. data/lib/metanorma/m3d_document/metadata/m3d_bib_data_extension_type.rb +0 -10
  301. data/lib/metanorma/m3d_document/metadata/m3d_bibliographic_item.rb +0 -15
  302. data/lib/metanorma/m3d_document/metadata.rb +0 -12
  303. data/lib/metanorma/m3d_document/root.rb +0 -29
  304. data/lib/metanorma/m3d_document.rb +0 -10
  305. data/lib/metanorma/mirror/default_registry.rb +0 -191
  306. data/lib/metanorma/mirror/handler_registry.rb +0 -60
  307. data/lib/metanorma/mirror/handler_result.rb +0 -37
  308. data/lib/metanorma/mirror/handlers/admonition.rb +0 -18
  309. data/lib/metanorma/mirror/handlers/example.rb +0 -21
  310. data/lib/metanorma/mirror/handlers/figure.rb +0 -53
  311. data/lib/metanorma/mirror/handlers/formula.rb +0 -35
  312. data/lib/metanorma/mirror/handlers/inline/catalog.rb +0 -52
  313. data/lib/metanorma/mirror/handlers/inline/rich_html_renderer.rb +0 -158
  314. data/lib/metanorma/mirror/handlers/inline/text_extractor.rb +0 -116
  315. data/lib/metanorma/mirror/handlers/inline.rb +0 -226
  316. data/lib/metanorma/mirror/handlers/list.rb +0 -110
  317. data/lib/metanorma/mirror/handlers/note.rb +0 -26
  318. data/lib/metanorma/mirror/handlers/paragraph.rb +0 -19
  319. data/lib/metanorma/mirror/handlers/quote.rb +0 -16
  320. data/lib/metanorma/mirror/handlers/review.rb +0 -19
  321. data/lib/metanorma/mirror/handlers/section.rb +0 -149
  322. data/lib/metanorma/mirror/handlers/sourcecode.rb +0 -27
  323. data/lib/metanorma/mirror/handlers/structural.rb +0 -68
  324. data/lib/metanorma/mirror/handlers/table.rb +0 -81
  325. data/lib/metanorma/mirror/handlers/term.rb +0 -100
  326. data/lib/metanorma/mirror/handlers.rb +0 -60
  327. data/lib/metanorma/mirror/id_strategy/positional.rb +0 -166
  328. data/lib/metanorma/mirror/id_strategy/preserve.rb +0 -12
  329. data/lib/metanorma/mirror/id_strategy.rb +0 -34
  330. data/lib/metanorma/mirror/math_util.rb +0 -53
  331. data/lib/metanorma/mirror/metadata.rb +0 -37
  332. data/lib/metanorma/mirror/model/container.rb +0 -47
  333. data/lib/metanorma/mirror/model/factory.rb +0 -52
  334. data/lib/metanorma/mirror/model/guide.rb +0 -26
  335. data/lib/metanorma/mirror/model/leaf.rb +0 -17
  336. data/lib/metanorma/mirror/model/mark.rb +0 -53
  337. data/lib/metanorma/mirror/model/node.rb +0 -47
  338. data/lib/metanorma/mirror/model/soft_break.rb +0 -33
  339. data/lib/metanorma/mirror/model/text.rb +0 -34
  340. data/lib/metanorma/mirror/model.rb +0 -16
  341. data/lib/metanorma/mirror/output/builder.rb +0 -39
  342. data/lib/metanorma/mirror/output/formats/base_format.rb +0 -90
  343. data/lib/metanorma/mirror/output/formats/inline_format.rb +0 -142
  344. data/lib/metanorma/mirror/output/formats.rb +0 -53
  345. data/lib/metanorma/mirror/output/pipeline.rb +0 -93
  346. data/lib/metanorma/mirror/output/pipeline_context.rb +0 -22
  347. data/lib/metanorma/mirror/output.rb +0 -12
  348. data/lib/metanorma/mirror/rewriter.rb +0 -123
  349. data/lib/metanorma/mirror/safe_attr.rb +0 -16
  350. data/lib/metanorma/mirror/serialization/json_serializer.rb +0 -25
  351. data/lib/metanorma/mirror/serialization/yaml_serializer.rb +0 -20
  352. data/lib/metanorma/mirror/serialization.rb +0 -10
  353. data/lib/metanorma/mirror/transformer.rb +0 -110
  354. data/lib/metanorma/mirror.rb +0 -31
  355. data/lib/metanorma/nist_document/metadata/nist_bib_data_extension_type.rb +0 -10
  356. data/lib/metanorma/nist_document/metadata/nist_bibliographic_item.rb +0 -15
  357. data/lib/metanorma/nist_document/metadata.rb +0 -12
  358. data/lib/metanorma/nist_document/root.rb +0 -29
  359. data/lib/metanorma/nist_document/sections/errata.rb +0 -16
  360. data/lib/metanorma/nist_document/sections/errata_clause.rb +0 -20
  361. data/lib/metanorma/nist_document/sections/errata_row.rb +0 -22
  362. data/lib/metanorma/nist_document/sections/nist_preface.rb +0 -30
  363. data/lib/metanorma/nist_document/sections.rb +0 -12
  364. data/lib/metanorma/nist_document.rb +0 -11
  365. data/lib/metanorma/ogc_document/metadata/ogc_bib_data_extension_type.rb +0 -12
  366. data/lib/metanorma/ogc_document/metadata/ogc_bibliographic_item.rb +0 -19
  367. data/lib/metanorma/ogc_document/metadata.rb +0 -12
  368. data/lib/metanorma/ogc_document/root.rb +0 -25
  369. data/lib/metanorma/ogc_document.rb +0 -8
  370. data/lib/metanorma/plateau_document/metadata/plateau_bibliographic_item.rb +0 -13
  371. data/lib/metanorma/plateau_document/metadata.rb +0 -10
  372. data/lib/metanorma/plateau_document/root.rb +0 -29
  373. data/lib/metanorma/plateau_document.rb +0 -10
  374. data/lib/metanorma/registers/setup.rb +0 -166
  375. data/lib/metanorma/registers.rb +0 -7
  376. data/lib/metanorma/ribose_document/metadata/ribose_bib_data_extension_type.rb +0 -20
  377. data/lib/metanorma/ribose_document/metadata/ribose_bibliographic_item.rb +0 -18
  378. data/lib/metanorma/ribose_document/metadata.rb +0 -12
  379. data/lib/metanorma/ribose_document/root.rb +0 -26
  380. data/lib/metanorma/ribose_document.rb +0 -8
  381. data/lib/metanorma/standard_document/annotation_container.rb +0 -39
  382. data/lib/metanorma/standard_document/block_attributes.rb +0 -281
  383. data/lib/metanorma/standard_document/blocks/amend_block.rb +0 -50
  384. data/lib/metanorma/standard_document/blocks/amend_content_block.rb +0 -35
  385. data/lib/metanorma/standard_document/blocks/auto_number.rb +0 -20
  386. data/lib/metanorma/standard_document/blocks/block_source.rb +0 -22
  387. data/lib/metanorma/standard_document/blocks/change_type.rb +0 -21
  388. data/lib/metanorma/standard_document/blocks/element_name.rb +0 -22
  389. data/lib/metanorma/standard_document/blocks/form.rb +0 -38
  390. data/lib/metanorma/standard_document/blocks/image_map_area_type.rb +0 -24
  391. data/lib/metanorma/standard_document/blocks/image_map_area_type_type.rb +0 -21
  392. data/lib/metanorma/standard_document/blocks/image_map_block.rb +0 -32
  393. data/lib/metanorma/standard_document/blocks/image_map_coords.rb +0 -19
  394. data/lib/metanorma/standard_document/blocks/image_map_radius.rb +0 -19
  395. data/lib/metanorma/standard_document/blocks/multilingual_rendering_type.rb +0 -21
  396. data/lib/metanorma/standard_document/blocks/passthrough.rb +0 -3
  397. data/lib/metanorma/standard_document/blocks/requirement_model.rb +0 -20
  398. data/lib/metanorma/standard_document/blocks/source_origin_element.rb +0 -23
  399. data/lib/metanorma/standard_document/blocks/standard_admonition_block.rb +0 -32
  400. data/lib/metanorma/standard_document/blocks/standard_block.rb +0 -28
  401. data/lib/metanorma/standard_document/blocks/standard_block_no_notes.rb +0 -34
  402. data/lib/metanorma/standard_document/blocks/standard_example_block.rb +0 -30
  403. data/lib/metanorma/standard_document/blocks/standard_figure_block.rb +0 -32
  404. data/lib/metanorma/standard_document/blocks/standard_formula_block.rb +0 -30
  405. data/lib/metanorma/standard_document/blocks/standard_note_block.rb +0 -64
  406. data/lib/metanorma/standard_document/blocks/standard_paragraph_block.rb +0 -25
  407. data/lib/metanorma/standard_document/blocks/standard_quote_block.rb +0 -29
  408. data/lib/metanorma/standard_document/blocks/standard_sourcecode_block.rb +0 -32
  409. data/lib/metanorma/standard_document/blocks/standard_table_block.rb +0 -39
  410. data/lib/metanorma/standard_document/blocks/svg_map_block.rb +0 -23
  411. data/lib/metanorma/standard_document/blocks/svg_target_type.rb +0 -20
  412. data/lib/metanorma/standard_document/blocks/table_col.rb +0 -16
  413. data/lib/metanorma/standard_document/blocks/to_c.rb +0 -17
  414. data/lib/metanorma/standard_document/blocks.rb +0 -60
  415. data/lib/metanorma/standard_document/boilerplate.rb +0 -32
  416. data/lib/metanorma/standard_document/elements/add.rb +0 -3
  417. data/lib/metanorma/standard_document/elements/del.rb +0 -3
  418. data/lib/metanorma/standard_document/elements/form_input.rb +0 -27
  419. data/lib/metanorma/standard_document/elements/input.rb +0 -12
  420. data/lib/metanorma/standard_document/elements/input_type.rb +0 -27
  421. data/lib/metanorma/standard_document/elements/label.rb +0 -19
  422. data/lib/metanorma/standard_document/elements/option.rb +0 -27
  423. data/lib/metanorma/standard_document/elements/orientation_type.rb +0 -27
  424. data/lib/metanorma/standard_document/elements/select.rb +0 -32
  425. data/lib/metanorma/standard_document/elements/standard_page_break_element.rb +0 -22
  426. data/lib/metanorma/standard_document/elements/textarea.rb +0 -25
  427. data/lib/metanorma/standard_document/elements.rb +0 -20
  428. data/lib/metanorma/standard_document/lists/standard_definition.rb +0 -24
  429. data/lib/metanorma/standard_document/lists/standard_definition_list.rb +0 -30
  430. data/lib/metanorma/standard_document/lists/standard_definition_term.rb +0 -27
  431. data/lib/metanorma/standard_document/lists/standard_unordered_list.rb +0 -28
  432. data/lib/metanorma/standard_document/lists/unordered_checkable_list_item.rb +0 -26
  433. data/lib/metanorma/standard_document/lists.rb +0 -17
  434. data/lib/metanorma/standard_document/metadata/editorial_group_type.rb +0 -25
  435. data/lib/metanorma/standard_document/metadata/ics_type.rb +0 -26
  436. data/lib/metanorma/standard_document/metadata/metanorma_extension.rb +0 -26
  437. data/lib/metanorma/standard_document/metadata/presentation_metadata.rb +0 -107
  438. data/lib/metanorma/standard_document/metadata/semantic_metadata.rb +0 -18
  439. data/lib/metanorma/standard_document/metadata/standard_bib_data.rb +0 -25
  440. data/lib/metanorma/standard_document/metadata/standard_bib_data_extension_type.rb +0 -37
  441. data/lib/metanorma/standard_document/metadata/structured_identifier_type.rb +0 -48
  442. data/lib/metanorma/standard_document/metadata/technical_committee_type.rb +0 -27
  443. data/lib/metanorma/standard_document/metadata/unitsml/amount_of_substance.rb +0 -19
  444. data/lib/metanorma/standard_document/metadata/unitsml/base_quantity.rb +0 -34
  445. data/lib/metanorma/standard_document/metadata/unitsml/dimension.rb +0 -39
  446. data/lib/metanorma/standard_document/metadata/unitsml/dimension_set.rb +0 -19
  447. data/lib/metanorma/standard_document/metadata/unitsml/electric_current.rb +0 -19
  448. data/lib/metanorma/standard_document/metadata/unitsml/enumerated_root_unit.rb +0 -23
  449. data/lib/metanorma/standard_document/metadata/unitsml/length.rb +0 -19
  450. data/lib/metanorma/standard_document/metadata/unitsml/luminous_intensity.rb +0 -19
  451. data/lib/metanorma/standard_document/metadata/unitsml/mass.rb +0 -19
  452. data/lib/metanorma/standard_document/metadata/unitsml/namespace.rb +0 -17
  453. data/lib/metanorma/standard_document/metadata/unitsml/plane_angle.rb +0 -19
  454. data/lib/metanorma/standard_document/metadata/unitsml/prefix.rb +0 -30
  455. data/lib/metanorma/standard_document/metadata/unitsml/prefix_name.rb +0 -21
  456. data/lib/metanorma/standard_document/metadata/unitsml/prefix_set.rb +0 -19
  457. data/lib/metanorma/standard_document/metadata/unitsml/prefix_symbol.rb +0 -21
  458. data/lib/metanorma/standard_document/metadata/unitsml/quantity.rb +0 -28
  459. data/lib/metanorma/standard_document/metadata/unitsml/quantity_name.rb +0 -21
  460. data/lib/metanorma/standard_document/metadata/unitsml/quantity_set.rb +0 -19
  461. data/lib/metanorma/standard_document/metadata/unitsml/root_units.rb +0 -19
  462. data/lib/metanorma/standard_document/metadata/unitsml/thermodynamic_temperature.rb +0 -19
  463. data/lib/metanorma/standard_document/metadata/unitsml/time.rb +0 -19
  464. data/lib/metanorma/standard_document/metadata/unitsml/unit.rb +0 -32
  465. data/lib/metanorma/standard_document/metadata/unitsml/unit_name.rb +0 -21
  466. data/lib/metanorma/standard_document/metadata/unitsml/unit_set.rb +0 -19
  467. data/lib/metanorma/standard_document/metadata/unitsml/unit_symbol.rb +0 -36
  468. data/lib/metanorma/standard_document/metadata/unitsml/unit_system.rb +0 -23
  469. data/lib/metanorma/standard_document/metadata/unitsml/unitsml_root.rb +0 -28
  470. data/lib/metanorma/standard_document/metadata/unitsml.rb +0 -39
  471. data/lib/metanorma/standard_document/metadata.rb +0 -23
  472. data/lib/metanorma/standard_document/namespace.rb +0 -11
  473. data/lib/metanorma/standard_document/refs/reference_to_term.rb +0 -26
  474. data/lib/metanorma/standard_document/refs/reference_to_termbase.rb +0 -27
  475. data/lib/metanorma/standard_document/refs/standoc_locality_stack.rb +0 -24
  476. data/lib/metanorma/standard_document/refs/standoc_reference_to_citation_element.rb +0 -27
  477. data/lib/metanorma/standard_document/refs/standoc_reference_to_id_element.rb +0 -36
  478. data/lib/metanorma/standard_document/refs/xref_case_type.rb +0 -27
  479. data/lib/metanorma/standard_document/refs/xref_connective_type.rb +0 -27
  480. data/lib/metanorma/standard_document/refs/xref_target_type.rb +0 -25
  481. data/lib/metanorma/standard_document/refs.rb +0 -18
  482. data/lib/metanorma/standard_document/root.rb +0 -10
  483. data/lib/metanorma/standard_document/root_attributes.rb +0 -78
  484. data/lib/metanorma/standard_document/sections/abstract.rb +0 -19
  485. data/lib/metanorma/standard_document/sections/acknowledgements.rb +0 -19
  486. data/lib/metanorma/standard_document/sections/annex_section.rb +0 -69
  487. data/lib/metanorma/standard_document/sections/bibliography_section.rb +0 -20
  488. data/lib/metanorma/standard_document/sections/boilerplate_type.rb +0 -32
  489. data/lib/metanorma/standard_document/sections/clause_hierarchical_section.rb +0 -32
  490. data/lib/metanorma/standard_document/sections/clause_section.rb +0 -91
  491. data/lib/metanorma/standard_document/sections/colophon.rb +0 -16
  492. data/lib/metanorma/standard_document/sections/definition_section.rb +0 -72
  493. data/lib/metanorma/standard_document/sections/floating_section_title.rb +0 -23
  494. data/lib/metanorma/standard_document/sections/floating_title.rb +0 -27
  495. data/lib/metanorma/standard_document/sections/foreword.rb +0 -19
  496. data/lib/metanorma/standard_document/sections/introduction.rb +0 -20
  497. data/lib/metanorma/standard_document/sections/misc_container.rb +0 -31
  498. data/lib/metanorma/standard_document/sections/normative_type.rb +0 -29
  499. data/lib/metanorma/standard_document/sections/preface.rb +0 -36
  500. data/lib/metanorma/standard_document/sections/sections.rb +0 -47
  501. data/lib/metanorma/standard_document/sections/standard_content_section.rb +0 -41
  502. data/lib/metanorma/standard_document/sections/standard_hierarchical_section.rb +0 -30
  503. data/lib/metanorma/standard_document/sections/standard_references_section.rb +0 -74
  504. data/lib/metanorma/standard_document/sections/standard_section.rb +0 -39
  505. data/lib/metanorma/standard_document/sections/terms_section.rb +0 -61
  506. data/lib/metanorma/standard_document/sections.rb +0 -34
  507. data/lib/metanorma/standard_document/standard_document_type.rb +0 -15
  508. data/lib/metanorma/standard_document/terms/abbreviation_type.rb +0 -27
  509. data/lib/metanorma/standard_document/terms/concept.rb +0 -42
  510. data/lib/metanorma/standard_document/terms/definition_collection.rb +0 -24
  511. data/lib/metanorma/standard_document/terms/designation.rb +0 -31
  512. data/lib/metanorma/standard_document/terms/expression_designation.rb +0 -38
  513. data/lib/metanorma/standard_document/terms/expression_type.rb +0 -27
  514. data/lib/metanorma/standard_document/terms/grammar_gender.rb +0 -27
  515. data/lib/metanorma/standard_document/terms/grammar_info.rb +0 -36
  516. data/lib/metanorma/standard_document/terms/graphical_symbol_designation.rb +0 -25
  517. data/lib/metanorma/standard_document/terms/letter_symbol_designation.rb +0 -27
  518. data/lib/metanorma/standard_document/terms/non_verbal_representation.rb +0 -33
  519. data/lib/metanorma/standard_document/terms/related_term.rb +0 -31
  520. data/lib/metanorma/standard_document/terms/related_term_type.rb +0 -28
  521. data/lib/metanorma/standard_document/terms/term.rb +0 -66
  522. data/lib/metanorma/standard_document/terms/term_collection.rb +0 -24
  523. data/lib/metanorma/standard_document/terms/term_definition.rb +0 -29
  524. data/lib/metanorma/standard_document/terms/term_expression.rb +0 -20
  525. data/lib/metanorma/standard_document/terms/term_name_element.rb +0 -29
  526. data/lib/metanorma/standard_document/terms/term_source.rb +0 -29
  527. data/lib/metanorma/standard_document/terms/term_source_status.rb +0 -29
  528. data/lib/metanorma/standard_document/terms/term_source_type.rb +0 -21
  529. data/lib/metanorma/standard_document/terms/verbal_expression.rb +0 -35
  530. data/lib/metanorma/standard_document/terms.rb +0 -33
  531. data/lib/metanorma/standard_document.rb +0 -27
  532. data/lib/metanorma/un_document/blocks/un_admonition_block.rb +0 -86
  533. data/lib/metanorma/un_document/blocks.rb +0 -9
  534. data/lib/metanorma/un_document/metadata/un_bib_data_extension_type.rb +0 -10
  535. data/lib/metanorma/un_document/metadata/un_bibliographic_item.rb +0 -15
  536. data/lib/metanorma/un_document/metadata.rb +0 -12
  537. data/lib/metanorma/un_document/root.rb +0 -37
  538. data/lib/metanorma/un_document/sections/un_abstract_section.rb +0 -48
  539. data/lib/metanorma/un_document/sections/un_preface.rb +0 -40
  540. data/lib/metanorma/un_document/sections/un_sections.rb +0 -24
  541. data/lib/metanorma/un_document/sections.rb +0 -11
  542. data/lib/metanorma/un_document/un_text_element.rb +0 -116
  543. data/lib/metanorma/un_document.rb +0 -13
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module DocumentCollection
5
+ autoload :Root, "metanorma/document_collection/root"
6
+ autoload :Directive, "metanorma/document_collection/directive"
7
+ autoload :Entry, "metanorma/document_collection/entry"
8
+ autoload :DocContainer, "metanorma/document_collection/doc_container"
9
+ end
10
+ end
@@ -13,16 +13,8 @@ module Metanorma
13
13
  autoload :PubidRenderer, "metanorma/html/renderers/pubid_renderer"
14
14
  autoload :ElementOrderTraversal,
15
15
  "metanorma/html/renderers/element_order_traversal"
16
- end
17
-
18
- module Concerns
19
- autoload :MetadataExtraction,
20
- "metanorma/html/concerns/metadata_extraction"
21
- autoload :PresentationValidation,
22
- "metanorma/html/concerns/presentation_validation"
23
- autoload :SvgProcessing, "metanorma/html/concerns/svg_processing"
24
- autoload :TextExtraction, "metanorma/html/concerns/text_extraction"
25
- autoload :TocRegistry, "metanorma/html/concerns/toc_registry"
16
+ autoload :SemanticRenderer,
17
+ "metanorma/html/renderers/semantic_renderer"
26
18
  end
27
19
 
28
20
  class BaseRenderer
@@ -69,7 +61,8 @@ module Metanorma
69
61
  end
70
62
 
71
63
  def register_render(type_class, method_name)
72
- render_registry[type_class] = method_name
64
+ resolved = resolve_type(type_class)
65
+ render_registry[resolved] = method_name if resolved
73
66
  end
74
67
 
75
68
  def inline_registry
@@ -77,12 +70,32 @@ module Metanorma
77
70
  end
78
71
 
79
72
  def register_inline_render(type_class, method_name)
80
- inline_registry[type_class] = method_name
73
+ resolved = resolve_type(type_class)
74
+ inline_registry[resolved] = method_name if resolved
75
+ end
76
+
77
+ # type_class may be a Class or a String constant name. String form
78
+ # requires the owning flavor gem, then resolves; if the gem is not
79
+ # installed the registration is skipped (that flavor cannot be
80
+ # rendered in this process anyway).
81
+ def resolve_type(type_class)
82
+ return type_class unless type_class.is_a?(String)
83
+
84
+ flavor = type_class.split("::")[1].to_s.downcase
85
+ begin
86
+ require "metanorma/#{flavor}/document"
87
+ rescue LoadError
88
+ nil
89
+ end
90
+ Object.const_defined?(type_class) ? Object.const_get(type_class) : nil
81
91
  end
82
92
  end
83
93
 
84
94
  attr_reader :inline_renderer, :block_renderer, :section_renderer,
85
95
  :pubid_renderer, :index_term_collector, :footnote_collector
96
+ # While a table renders: table-scoped <fn>s collect here and lift
97
+ # into the table's visible footnotes row instead of endnote popups.
98
+ attr_accessor :table_fn_context
86
99
  private :inline_renderer, :block_renderer, :section_renderer,
87
100
  :pubid_renderer
88
101
 
@@ -109,10 +122,10 @@ module Metanorma
109
122
  end
110
123
 
111
124
  def render_paragraph(...) = @renderer.render_paragraph(...)
112
- def render_inline_element(...)= @renderer.render_inline_element(...)
113
- def render_unordered_list(...)= @renderer.render_unordered_list(...)
114
- def render_ordered_list(...)= @renderer.render_ordered_list(...)
115
- def render_definition_list(...)= @renderer.render_definition_list(...)
125
+ def render_inline_element(...) = @renderer.render_inline_element(...)
126
+ def render_unordered_list(...) = @renderer.render_unordered_list(...)
127
+ def render_ordered_list(...) = @renderer.render_ordered_list(...)
128
+ def render_definition_list(...) = @renderer.render_definition_list(...)
116
129
  def render_sourcecode(...) = @renderer.render_sourcecode(...)
117
130
  def render_table(...) = @renderer.render_table(...)
118
131
  def render_figure(...) = @renderer.render_figure(...)
@@ -120,11 +133,13 @@ module Metanorma
120
133
  def render_formula(...) = @renderer.render_formula(...)
121
134
  def render_note(...) = @renderer.render_note(...)
122
135
  def render_image(...) = @renderer.render_image(...)
123
- def render_stem_content(...)= @renderer.render_stem_content(...)
124
- def register_figure_entry(...)= @renderer.register_figure_entry(...)
136
+ def render_stem_content(...) = @renderer.render_stem_content(...)
137
+ def register_figure_entry(...) = @renderer.register_figure_entry(...)
125
138
  def render_note_children(...) = @renderer.render_note_children(...)
126
139
  def render_simple_children(...) = @renderer.render_simple_children(...)
140
+ def render_admonition_children(...) = @renderer.render_admonition_children(...)
127
141
  def render_full_block_children(...) = @renderer.render_full_block_children(...)
142
+ def render_label_paragraph(...) = @renderer.render_label_paragraph(...)
128
143
  end
129
144
 
130
145
  def renderer_context
@@ -134,6 +149,7 @@ module Metanorma
134
149
  attr_writer :document, :theme
135
150
 
136
151
  def generate_full_document(document, theme: nil, **)
152
+ Metanorma::Html.seed_flavors!
137
153
  @document = document
138
154
  @theme_override = theme
139
155
  validate_presentation_xml!
@@ -182,7 +198,7 @@ module Metanorma
182
198
  def flavor_name
183
199
  return nil unless defined?(@document) && @document
184
200
 
185
- Metanorma::Html::Generator.flavors.name_for(@document.class)
201
+ Metanorma::Core::Flavors.flavor_for(@document)&.name
186
202
  end
187
203
 
188
204
  # Pubid module for the current document's flavor, or nil if the
@@ -190,7 +206,7 @@ module Metanorma
190
206
  def pubid_module
191
207
  return nil unless defined?(@document) && @document
192
208
 
193
- Metanorma::Html::Generator.flavors.pubid_module_for(@document.class)
209
+ Metanorma::Core::Flavors.flavor_for(@document)&.pubid_module_const
194
210
  end
195
211
 
196
212
  def flavor_publishers(_doc_id)
@@ -381,7 +397,7 @@ module Metanorma
381
397
  :render_note
382
398
  register_render Metanorma::Document::Components::AncillaryBlocks::ExampleBlock,
383
399
  :render_example
384
- register_render Metanorma::StandardDocument::Blocks::Form,
400
+ register_render "Metanorma::Standoc::Document::Blocks::Form",
385
401
  :render_form
386
402
  register_render Metanorma::Document::Components::AncillaryBlocks::SourcecodeBlock,
387
403
  :render_sourcecode
@@ -403,6 +419,12 @@ module Metanorma
403
419
  :render_bookmark
404
420
  register_render Metanorma::Document::Components::Inline::SemxElement,
405
421
  :render_semx_content
422
+ register_render Metanorma::Document::Components::Inline::ColumnbreakElement,
423
+ :render_columnbreak
424
+ register_render Metanorma::Document::Components::AncillaryBlocks::SvgmapElement,
425
+ :render_svgmap
426
+ register_render Metanorma::Document::Components::AncillaryBlocks::ImagemapElement,
427
+ :render_imagemap
406
428
 
407
429
  register_inline_render Metanorma::Document::Components::Inline::EmRawElement,
408
430
  :render_em
@@ -422,14 +444,18 @@ module Metanorma
422
444
  :render_strike
423
445
  register_inline_render Metanorma::Document::Components::Inline::BrElement,
424
446
  :render_br
447
+ register_inline_render Metanorma::Document::Components::TextElements::RubyElement,
448
+ :render_ruby
449
+ register_inline_render Metanorma::Document::Components::Inline::ColumnbreakElement,
450
+ :render_columnbreak
425
451
  register_inline_render Metanorma::Document::Components::Inline::TabElement,
426
452
  :render_tab
427
453
  register_inline_render Metanorma::Document::Components::Inline::LinkElement,
428
454
  :render_link
429
455
  register_inline_render Metanorma::Document::Components::Inline::XrefElement,
430
- :render_noop_inline
456
+ :render_xref
431
457
  register_inline_render Metanorma::Document::Components::Inline::ErefElement,
432
- :render_noop_inline
458
+ :render_eref
433
459
  register_inline_render Metanorma::Document::Components::Inline::SpanElement,
434
460
  :render_span
435
461
  register_inline_render Metanorma::Document::Components::Inline::FnElement,
@@ -437,7 +463,7 @@ module Metanorma
437
463
  register_inline_render Metanorma::Document::Components::Inline::ConceptElement,
438
464
  :render_concept
439
465
  register_inline_render Metanorma::Document::Components::Inline::StemInlineElement,
440
- :render_noop_inline
466
+ :render_stem_inline
441
467
  register_inline_render Metanorma::Document::Components::TextElements::StemElement,
442
468
  :render_stem
443
469
  register_inline_render Metanorma::Document::Components::Inline::SemxElement,
@@ -448,7 +474,11 @@ module Metanorma
448
474
  :render_fmt_stem
449
475
  register_inline_render Metanorma::Document::Components::Inline::CommaElement,
450
476
  :render_comma
451
- register_inline_render Metanorma::StandardDocument::Elements::Input,
477
+ register_inline_render Metanorma::Document::Components::Inline::ReftermElement,
478
+ :render_refterm
479
+ register_inline_render Metanorma::Document::Components::Inline::FmtPreferredElement,
480
+ :render_fmt_preferred_inline
481
+ register_inline_render "Metanorma::Standoc::Document::Elements::Input",
452
482
  :render_input
453
483
  register_inline_render Metanorma::Document::Components::Inline::EnumCommaElement,
454
484
  :render_comma
@@ -472,6 +502,8 @@ module Metanorma
472
502
  # Grouped here so adding a new transparent wrapper is one entry,
473
503
  # not another register_inline_render line. Classes with a more
474
504
  # specific handler register themselves above.
505
+ FN_BLOCK_ATTRS = %i[ul ol table].freeze
506
+
475
507
  TRANSPARENT_INLINE_WRAPPERS = [
476
508
  Metanorma::Document::Components::Inline::FmtNameElement,
477
509
  Metanorma::Document::Components::Inline::FmtTitleElement,
@@ -513,6 +545,12 @@ module Metanorma
513
545
  # through when it appears in block context.
514
546
  register_render Metanorma::Document::Components::Inline::FmtXrefLabelElement,
515
547
  :render_block_inline_content
548
+ # Annotation boundary markers fence an annotated region; they carry
549
+ # no renderable content of their own at block dispatch.
550
+ register_render Metanorma::Document::Components::Inline::FmtAnnotationStartElement,
551
+ :render_noop
552
+ register_render Metanorma::Document::Components::Inline::FmtAnnotationEndElement,
553
+ :render_noop
516
554
 
517
555
  def lookup_dispatch(type_class, registry_method)
518
556
  # Registry contents are fixed once renderer classes are loaded, so
@@ -540,6 +578,10 @@ module Metanorma
540
578
  ""
541
579
  end
542
580
 
581
+ def render_columnbreak(*)
582
+ render_liquid("_columnbreak.html.liquid", {})
583
+ end
584
+
543
585
  # Block-dispatch entry point for inline content reached as a direct
544
586
  # child of a block container (render passes keyword args; the inline
545
587
  # pipeline does not accept them).
@@ -558,6 +600,9 @@ module Metanorma
558
600
  @inline_renderer.walk_ordered(node, allow_filter: allow_filter, &)
559
601
  end
560
602
 
603
+ def footnote_label_text(fn) = @inline_renderer.footnote_label_text(fn)
604
+ def fn_content_html(fn) = @inline_renderer.fn_content_html(fn)
605
+
561
606
  def render_mixed_inline(node)
562
607
  @inline_renderer.render_mixed_inline(node)
563
608
  end
@@ -572,11 +617,15 @@ module Metanorma
572
617
  def render_underline(el) = @inline_renderer.render_underline(el)
573
618
  def render_strike(el) = @inline_renderer.render_strike(el)
574
619
  def render_br(*) = @inline_renderer.render_br
620
+ def render_ruby(el) = @inline_renderer.render_ruby(el)
575
621
  def render_tab(*) = @inline_renderer.render_tab
576
622
  def render_span(el) = @inline_renderer.render_span(el)
577
623
  def render_fn_inline(el) = @inline_renderer.render_fn_inline(el)
578
624
  def render_stem(el) = @inline_renderer.render_stem(el)
625
+ def render_stem_inline(el) = @inline_renderer.render_stem_inline(el)
579
626
  def render_semx_inline(el) = @inline_renderer.render_semx_inline(el)
627
+ def render_refterm(el) = @inline_renderer.render_refterm(el)
628
+ def render_fmt_preferred_inline(el) = @inline_renderer.render_fmt_preferred_inline(el)
580
629
  def render_fmt_xref(el) = @inline_renderer.render_fmt_xref(el)
581
630
  def render_comma(*) = @inline_renderer.render_comma
582
631
  def render_input(el) = @inline_renderer.render_input(el)
@@ -625,6 +674,16 @@ module Metanorma
625
674
  @block_renderer.render_definition_list(dl, **)
626
675
  end
627
676
 
677
+ def render_svgmap(svgmap,
678
+ **)
679
+ @block_renderer.render_svgmap(svgmap, **)
680
+ end
681
+
682
+ def render_imagemap(imagemap,
683
+ **)
684
+ @block_renderer.render_imagemap(imagemap, **)
685
+ end
686
+
628
687
  def render_figure(figure,
629
688
  **)
630
689
  @block_renderer.render_figure(figure, **)
@@ -668,13 +727,21 @@ module Metanorma
668
727
  end
669
728
 
670
729
  def render_block_children(model,
671
- children:)
672
- @block_renderer.render_block_children(model, children: children)
730
+ children:, **)
731
+ @block_renderer.render_block_children(model, children: children, **)
673
732
  end
674
733
 
675
734
  def render_note_children(model) = @block_renderer.render_note_children(model)
676
735
  def render_simple_children(model) = @block_renderer.render_simple_children(model)
677
- def render_full_block_children(model) = @block_renderer.render_full_block_children(model)
736
+ def render_admonition_children(model) = @block_renderer.render_admonition_children(model)
737
+
738
+ def render_full_block_children(model, **)
739
+ @block_renderer.render_full_block_children(model, **)
740
+ end
741
+
742
+ def render_label_paragraph(content_html, **)
743
+ @block_renderer.render_label_paragraph(content_html, **)
744
+ end
678
745
 
679
746
  # Section rendering delegation
680
747
  def render_basic_section(section,
@@ -824,6 +891,16 @@ level = 1)
824
891
  render_paragraph(p)
825
892
  end.join
826
893
  end
894
+ # Footnotes may carry list/table block children (OIML R 7's
895
+ # bibliography lives inside footnote 3) — the native aside
896
+ # renders them, so the end-of-document entry must too.
897
+ FN_BLOCK_ATTRS.each do |attr|
898
+ next unless entry.source_fn.respond_to?(attr)
899
+
900
+ Array(entry.source_fn.public_send(attr)).each do |block|
901
+ content_html << (render(block) || "")
902
+ end
903
+ end
827
904
  Drops::FootnoteDrop.new(entry, content_html)
828
905
  end
829
906
 
@@ -4,37 +4,38 @@ module Metanorma
4
4
  module Html
5
5
  module Component
6
6
  # Collects footnote content encountered during rendering.
7
- # Deduplicates by reference letter/number so each footnote definition
8
- # appears once, even when referenced from multiple locations.
7
+ # Deduplicates by footnote definition (target id, falling back to the
8
+ # fn id/reference) so each definition appears once, even when several
9
+ # <fn> references with differing reference attrs point at it.
9
10
  class FootnoteCollector
10
11
  def initialize
11
12
  @footnotes = []
12
- @ref_map = {}
13
- @id_map = {}
13
+ @entries_by_key = {}
14
14
  end
15
15
 
16
- # Register a footnote and return its sequential number.
17
- # Deduplicates by reference: same reference = same footnote number.
18
- def register(fn)
16
+ # Register a footnote and return its FootnoteEntry.
17
+ # +label_text+ is the fn's presentation autonum label; the first
18
+ # registration's label wins.
19
+ def register(fn, label_text: nil)
19
20
  fn_id = fn.id || fn.reference.to_s
20
- ref = fn.reference.to_s
21
+ key = fn.respond_to?(:target) && fn.target && !fn.target.empty? ? fn.target : fn_id
21
22
 
22
- # If we've seen this reference before, reuse its number
23
- if @ref_map.key?(ref)
24
- return @ref_map[ref]
23
+ if (seen = @entries_by_key[key])
24
+ seen.fmt_label ||= label_text
25
+ return seen
25
26
  end
26
27
 
27
- number = @footnotes.size + 1
28
- @ref_map[ref] = number
29
- @id_map[fn_id] = number
30
- @footnotes << FootnoteEntry.new(
28
+ entry = FootnoteEntry.new(
31
29
  id: fn_id,
32
- number: number,
33
- reference: ref,
30
+ number: @footnotes.size + 1,
31
+ reference: fn.reference.to_s,
34
32
  content: fn.p,
35
- fmt_label: fn.fmt_fn_label,
33
+ fmt_label: label_text,
34
+ source_fn: fn,
36
35
  )
37
- number
36
+ @footnotes << entry
37
+ @entries_by_key[key] = entry
38
+ entry
38
39
  end
39
40
 
40
41
  def empty?
@@ -51,7 +52,7 @@ module Metanorma
51
52
  end
52
53
 
53
54
  FootnoteEntry = Struct.new(:id, :number, :reference, :content, :fmt_label,
54
- keyword_init: true)
55
+ :source_fn, keyword_init: true)
55
56
  end
56
57
  end
57
58
  end
@@ -13,8 +13,11 @@ module Metanorma
13
13
 
14
14
  langs = bibdata.language
15
15
  if langs && !langs.empty?
16
- lang = langs.find { |l| l.current == "true" } || langs.first
17
- lang.value || lang.to_s
16
+ # Base bibdata carries plain Iso639Code entries (no
17
+ # `current` marker); flavor bibdata models mark one current.
18
+ lang = langs.find { |l| l.respond_to?(:current) && l.current == "true" } ||
19
+ langs.first
20
+ lang.respond_to?(:value) ? (lang.value || lang.to_s) : lang.to_s
18
21
  else
19
22
  "en"
20
23
  end
@@ -42,7 +45,9 @@ module Metanorma
42
45
  bibdata = @document.bibdata
43
46
  return nil unless bibdata
44
47
 
45
- identifiers = bibdata.doc_identifier
48
+ # Flavor bibdata shapes diverge (e.g. IETF carries no ISO-ish
49
+ # doc_identifier): no id rather than a method error.
50
+ identifiers = safe_attr(bibdata, :doc_identifier)
46
51
  return nil unless identifiers && !identifiers.empty?
47
52
 
48
53
  first_id = identifiers.first
@@ -20,7 +20,7 @@ module Metanorma
20
20
 
21
21
  # Name kept for API stability (public renderer API); the boolean
22
22
  # return predates the Naming/PredicateMethod convention.
23
- # rubocop:disable Naming/PredicateMethod
23
+ # rubocop:disable-next Naming/PredicateMethod
24
24
  def check_presentation_markers(node)
25
25
  return false unless node
26
26
  return false if node.is_a?(String)
@@ -54,7 +54,6 @@ module Metanorma
54
54
 
55
55
  false
56
56
  end
57
- # rubocop:enable Naming/PredicateMethod
58
57
  end
59
58
  end
60
59
  end
@@ -9,55 +9,171 @@ module Metanorma
9
9
  # attributes directly on the model — never strips tags from
10
10
  # rendered HTML.
11
11
  module TextExtraction
12
+ # Invisible MathML operators and joiners (word joiner, invisible
13
+ # times / function application, zero-width space): markup, not
14
+ # display text.
15
+ INVISIBLE_MATH_CHARS = "\u2060\u2061\u2062\u2063\u2064\u200b"
16
+
17
+ # Rendered fmt-* twins never contribute plain text alongside
18
+ # their semantic siblings — the pair linearizes one logical
19
+ # content (#51). Sibling-keyed twins skip only when the
20
+ # semantic element parsed; the always-skipped set are
21
+ # whole-block re-renderings (rendered to the exclusion of the
22
+ # semantic children by the overlay's own contract).
23
+ RENDERED_TWIN_SIBLING = {
24
+ "fmt-stem" => :stem,
25
+ "fmt-eref" => :eref,
26
+ "fmt-origin" => :origin,
27
+ }.freeze
28
+ RENDERED_TWIN_ALWAYS_SKIP = %w[
29
+ fmt-figure fmt-ul fmt-ol fmt-source fmt-date-inline
30
+ ].freeze
31
+
32
+ # The quoted unitsml(...) macro reference names a unit symbol;
33
+ # its linear form is the symbol itself ("unitsml(mV/V)" ->
34
+ # "mV/V"). One nesting level for grouped exponents.
35
+ UNITSML_MACRO =
36
+ /"?unitsml\(([^()]*(?:\([^()]*\)[^()]*)*)\)"?/
37
+
38
+ # The source linear forms spell operators as words (AsciiMath
39
+ # "pm", LaTeX "\pm"); extracted display text carries the glyphs.
40
+ # AsciiMath reserves these tokens as operators, so a bare "pm"
41
+ # in an expression IS the operator; inside a larger word ("rpm")
42
+ # the token boundaries hold the mapping off.
43
+ MATH_OPERATOR_GLYPHS = {
44
+ asciimath: [[/\bpm\b/, "±"], [/\bmp\b/, "∓"]],
45
+ latexmath: [[/\\pm\b/, "±"], [/\\mp\b/, "∓"]],
46
+ }.freeze
47
+
12
48
  def extract_plain_text(node)
13
49
  return node.to_s if node.is_a?(String)
14
50
  return extract_text_value(node).to_s unless node.is_a?(Lutaml::Model::Serializable)
15
51
 
16
- parts = []
52
+ # nil = not a populated stem (e.g. a semx autonum slice also
53
+ # declares these attributes): fall through to the walk.
54
+ stem = stem_text(node)
55
+ return stem unless stem.nil?
56
+
57
+ parts = ordered_content_parts(node)
58
+ if parts.join.strip.empty?
59
+ t = safe_attr(node, :text)
60
+ parts << (t.is_a?(Array) ? t.join : t.to_s) if t
61
+ end
62
+
63
+ parts.join.strip.gsub(" ", " ")
64
+ end
65
+
66
+ def ordered_content_parts(node)
67
+ return [] unless node.element_order.is_a?(Array)
68
+
17
69
  xml_mapping = node.class.mappings_for(:xml, node.lutaml_register)
70
+ return [] unless xml_mapping
18
71
 
19
- if node.element_order.is_a?(Array) && xml_mapping
20
- element_to_attr =
21
- Renderers::ElementOrderTraversal.element_to_attr_map(xml_mapping)
72
+ element_to_attr =
73
+ Renderers::ElementOrderTraversal.element_to_attr_map(xml_mapping)
22
74
 
23
- indices = Hash.new(0)
24
- node.element_order.each do |el|
25
- next unless el.is_a?(Lutaml::Xml::Element)
75
+ parts = []
76
+ indices = Hash.new(0)
77
+ node.element_order.each do |el|
78
+ next unless el.is_a?(Lutaml::Xml::Element)
26
79
 
27
- if el.text?
28
- parts << el.text_content.to_s
29
- elsif el.name == "tab"
30
- parts << " "
31
- # rubocop:disable Lint/DuplicateBranch
32
- elsif el.name == "br"
80
+ if el.text?
81
+ parts << el.text_content.to_s
82
+ elsif el.name == "tab"
83
+ parts << " "
84
+ # rubocop:disable Lint/DuplicateBranch
85
+ elsif el.name == "br"
86
+ parts << " "
87
+ # rubocop:enable Lint/DuplicateBranch
88
+ elsif el.name == "rt"
89
+ # ruby annotation (pronunciation) rides along the base
90
+ # text, it is not content: display text is the base alone
91
+ next
92
+ elsif el.element?
93
+ next if rendered_twin?(el.name, node)
94
+
95
+ attr_name = element_to_attr[el.name]
96
+ if attr_name
97
+ coll = node.public_send(attr_name)
98
+ obj = if coll.is_a?(Array)
99
+ idx = indices[attr_name]
100
+ indices[attr_name] += 1
101
+ coll[idx]
102
+ else
103
+ coll
104
+ end
105
+ text = extract_plain_text(obj)
106
+ parts << (text.empty? ? " " : text)
107
+ elsif el.name == "span"
33
108
  parts << " "
34
- # rubocop:enable Lint/DuplicateBranch
35
- elsif el.element?
36
- attr_name = element_to_attr[el.name]
37
- if attr_name
38
- coll = node.public_send(attr_name)
39
- obj = if coll.is_a?(Array)
40
- idx = indices[attr_name]
41
- indices[attr_name] += 1
42
- coll[idx]
43
- else
44
- coll
45
- end
46
- text = extract_plain_text(obj)
47
- parts << (text.empty? ? " " : text)
48
- elsif el.name == "span"
49
- parts << " "
50
- end
51
109
  end
52
110
  end
53
111
  end
112
+ parts
113
+ end
54
114
 
55
- if parts.join.strip.empty?
56
- t = safe_attr(node, :text)
57
- parts << (t.is_a?(Array) ? t.join : t.to_s) if t
115
+ # A stem (or a semx slice of one) carries up to three
116
+ # serializations of a single expression: the AsciiMath source,
117
+ # the MathML rendering, the LaTeX source. Linearizing more than
118
+ # one concatenates duplicates — "30003000", 'n LCn_{"LC"}'
119
+ # (#51). Preference: the source linear form, then the MathML
120
+ # token walk. Returns nil when no form is populated — the node
121
+ # is then not stem-shaped content (an empty semx slice), and
122
+ # the caller falls back to the element_order walk.
123
+ def stem_text(stem)
124
+ return nil unless math_carrier?(stem)
125
+
126
+ populated = false
127
+ %i[asciimath math latexmath].each do |form|
128
+ value = safe_attr(stem, form)
129
+ next if value.nil? || (value.respond_to?(:empty?) && value.empty?)
130
+
131
+ populated = true
132
+ text = if form == :math
133
+ Array(value).map { |m| extract_plain_text(m) }.join(" ")
134
+ else
135
+ display_math_text(extract_text_value(value), form)
136
+ end
137
+ text = normalize_math_text(text)
138
+ return text unless text.empty?
58
139
  end
140
+ populated ? "" : nil
141
+ end
59
142
 
60
- parts.join.strip.gsub(" ", " ")
143
+ def display_math_text(text, form)
144
+ MATH_OPERATOR_GLYPHS.fetch(form, []).reduce(text.to_s) do |acc, (pattern, glyph)|
145
+ acc.gsub(pattern, glyph)
146
+ end
147
+ end
148
+
149
+ # Duck-typed stem check: any model declaring both an asciimath
150
+ # and a math attribute serializes one expression in multiple
151
+ # forms (StemInlineElement, StemElement, SemxElement).
152
+ def math_carrier?(node)
153
+ attrs = node.class.attributes
154
+ attrs.key?(:asciimath) && attrs.key?(:math)
155
+ end
156
+
157
+ def rendered_twin?(name, node)
158
+ return true if RENDERED_TWIN_ALWAYS_SKIP.include?(name)
159
+
160
+ sibling = RENDERED_TWIN_SIBLING[name] or return false
161
+
162
+ values = safe_attr(node, sibling)
163
+ siblings = Array(values).compact
164
+ return false if siblings.empty?
165
+
166
+ # The semantic form is authoritative when it carries text; an
167
+ # empty semantic element defers its label to the rendered
168
+ # twin (the overlay resolves empty erefs into fmt-eref).
169
+ siblings.any? { |s| !extract_plain_text(s).to_s.strip.empty? }
170
+ end
171
+
172
+ def normalize_math_text(text)
173
+ text.to_s
174
+ .tr(INVISIBLE_MATH_CHARS, "")
175
+ .gsub(UNITSML_MACRO) { Regexp.last_match(1) }
176
+ .strip
61
177
  end
62
178
 
63
179
  def extract_text_value(val)
@@ -79,7 +195,10 @@ module Metanorma
79
195
  if v
80
196
  extract_text_value(v)
81
197
  else
82
- val.to_s
198
+ # NEVER fall back to val.to_s here: Serializable#to_s
199
+ # serializes the whole XML subtree, which over large
200
+ # documents costs quadratic time and memory.
201
+ extract_plain_text(val) || ""
83
202
  end
84
203
  end
85
204
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Html
5
+ # Renderer concerns. Lives in its own file so any consumer (the
6
+ # model layer's PlainText extractor includes TextExtraction) can
7
+ # resolve it through the html.rb autoload — independent of whether
8
+ # BaseRenderer has loaded yet.
9
+ module Concerns
10
+ autoload :MetadataExtraction,
11
+ "metanorma/html/concerns/metadata_extraction"
12
+ autoload :PresentationValidation,
13
+ "metanorma/html/concerns/presentation_validation"
14
+ autoload :SvgProcessing, "metanorma/html/concerns/svg_processing"
15
+ autoload :TextExtraction, "metanorma/html/concerns/text_extraction"
16
+ autoload :TocRegistry, "metanorma/html/concerns/toc_registry"
17
+ end
18
+ end
19
+ end
@@ -8,7 +8,7 @@ module Metanorma
8
8
  type = renderer.safe_attr(admonition, :type) || "note"
9
9
  id = renderer.safe_attr(admonition, :id)
10
10
 
11
- content_html = renderer.render_simple_children(admonition) || ""
11
+ content_html = renderer.render_admonition_children(admonition) || ""
12
12
 
13
13
  new(
14
14
  id: id,