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
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- module Paragraph
7
- EXTRA = { alignment: nil, keep_with_next: nil,
8
- keep_with_previous: nil }.freeze
9
-
10
- def self.call(element, context:)
11
- attrs = Handlers.extract_attrs(element, extra_attrs: EXTRA)
12
- content = Inline.extract_inline(element, context:)
13
-
14
- Handlers.build_node("paragraph", attrs: attrs, content: content)
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- module Quote
7
- def self.call(element, context:)
8
- attrs = Handlers.extract_attrs(element)
9
- content = context.extract_blocks(element)
10
-
11
- Handlers.build_node("quote", attrs: attrs, content: content)
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- module Review
7
- EXTRA = { date: nil, from: nil, to: nil, reviewer: nil,
8
- display: nil }.freeze
9
-
10
- def self.call(element, context:)
11
- attrs = Handlers.extract_attrs(element, extra_attrs: EXTRA)
12
- content = context.extract_blocks(element)
13
-
14
- Handlers.build_node("review", attrs: attrs, content: content)
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,149 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- module Section
7
- def self.clause(element, context:)
8
- attrs = section_attrs(element, context:)
9
- content = context.extract_blocks(element)
10
-
11
- Handlers.build_node("clause", attrs: attrs, content: content)
12
- end
13
-
14
- def self.annex(element, context:)
15
- attrs = section_attrs(element, context:)
16
- attrs[:commentary] = SafeAttr.read(element, :commentary)
17
- attrs[:language] = SafeAttr.read(element, :language)
18
- attrs[:script] = SafeAttr.read(element, :script)
19
-
20
- content = context.extract_blocks(element)
21
-
22
- Handlers.build_node("annex", attrs: attrs.compact, content: content)
23
- end
24
-
25
- def self.content_section(element, context:)
26
- attrs = section_attrs(element, context:)
27
- content = context.extract_blocks(element)
28
-
29
- subsection = SafeAttr.read(element, :subsection)
30
- subsection&.each do |sub|
31
- result = context.registry.handle(sub, context: context)
32
- result.append_to(content)
33
- end
34
-
35
- Handlers.build_node("content_section", attrs: attrs, content: content)
36
- end
37
-
38
- def self.terms(element, context:)
39
- attrs = section_attrs(element, context:)
40
- content = context.extract_named_collections(element,
41
- %i[p term dl example
42
- admonition])
43
- children = context.extract_section_children(element)
44
-
45
- Handlers.build_node("terms", attrs: attrs,
46
- content: content + children)
47
- end
48
-
49
- def self.definitions(element, context:)
50
- attrs = section_attrs(element, context:)
51
- content = context.extract_blocks(element)
52
-
53
- Handlers.build_node("definitions", attrs: attrs, content: content)
54
- end
55
-
56
- def self.references(element, context:)
57
- attrs = section_attrs(element, context:)
58
- attrs[:normative] = SafeAttr.read(element, :normative)
59
- attrs[:hidden] = SafeAttr.read(element, :hidden)
60
-
61
- # Prefatory paragraphs (e.g. "The following documents are referred to...")
62
- content = context.extract_named_collections(element,
63
- %i[p])
64
-
65
- # Bibliographic items
66
- refs = SafeAttr.read(element, :references)
67
- refs&.each do |ref|
68
- text = extract_biblio_text(ref)
69
- next if text.strip.empty?
70
-
71
- content << Handlers.build_node("paragraph",
72
- attrs: { id: SafeAttr.read(ref,
73
- :id) }.compact,
74
- content: [context.text_node(text)])
75
- end
76
-
77
- Handlers.build_node("references", attrs: attrs, content: content)
78
- end
79
-
80
- def self.extract_biblio_text(ref)
81
- parts = []
82
-
83
- tag = SafeAttr.read(ref, :biblio_tag)
84
- if tag
85
- tag_text = Inline.extract_formatted_text(tag).strip
86
- parts << tag_text unless tag_text.empty?
87
- end
88
-
89
- formatted = SafeAttr.read(ref, :formatted_ref)
90
- if formatted
91
- fmt_text = Inline.extract_formatted_text(formatted).strip
92
- parts << fmt_text unless fmt_text.empty?
93
- end
94
-
95
- return parts.join(" ") unless parts.empty?
96
-
97
- docid = SafeAttr.read(ref, :docidentifier)
98
- if docid
99
- text = Inline.extract_formatted_text(docid)
100
- return text unless text.strip.empty?
101
- end
102
-
103
- ""
104
- end
105
-
106
- def self.floating_title(element, context:)
107
- attrs = {}
108
- attrs[:id] = context.id_strategy.assign_id(element)
109
- attrs[:depth] = SafeAttr.read(element, :depth)
110
- attrs[:semx_id] = SafeAttr.read(element, :semx_id)
111
-
112
- title = extract_title(element)
113
- attrs[:title] = title if title
114
-
115
- Handlers.build_node("floating_title", attrs: attrs.compact)
116
- end
117
-
118
- def self.section_attrs(element, context:)
119
- attrs = {}
120
- attrs[:id] = context.id_strategy.assign_id(element)
121
- attrs[:number] = SafeAttr.read(element, :number)
122
- attrs[:obligation] = SafeAttr.read(element, :obligation)
123
- attrs[:unnumbered] = SafeAttr.read(element, :unnumbered)
124
- attrs[:toc] = SafeAttr.read(element, :toc)
125
- attrs[:type] = SafeAttr.read(element, :type)
126
- attrs[:semx_id] = SafeAttr.read(element, :semx_id)
127
- attrs[:autonum] = SafeAttr.read(element, :autonum)
128
- attrs[:displayorder] = SafeAttr.read(element, :displayorder)
129
-
130
- title = extract_title(element)
131
- attrs[:title] = title if title
132
- attrs.compact
133
- end
134
-
135
- def self.extract_title(element)
136
- title = SafeAttr.read(element, :title)
137
- return nil unless title
138
-
139
- case title
140
- when String then title
141
- else
142
- rich = Inline.extract_rich_html(title)
143
- rich.empty? ? Inline.extract_element_text(title) : rich
144
- end
145
- end
146
- end
147
- end
148
- end
149
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- module Sourcecode
7
- EXTRA = { language: :lang, filename: nil, linenums: nil }.freeze
8
-
9
- def self.call(element, context:)
10
- attrs = Handlers.extract_attrs(element, extra_attrs: EXTRA)
11
-
12
- body = SafeAttr.read(element, :body)
13
- text = if body
14
- body.decoded_content
15
- elsif SafeAttr.read(element, :content).is_a?(String)
16
- SafeAttr.read(element, :content)
17
- else
18
- ""
19
- end
20
- attrs[:text] = text
21
-
22
- Handlers.build_node("sourcecode", attrs: attrs.compact)
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- module Structural
7
- def self.preface(element, context:)
8
- attrs = {}
9
- attrs[:semx_id] = SafeAttr.read(element, :semx_id)
10
- attrs[:displayorder] = SafeAttr.read(element, :displayorder)
11
-
12
- content = []
13
- %i[abstract foreword introduction acknowledgements
14
- executivesummary].each do |attr|
15
- child = SafeAttr.read(element, attr)
16
- next unless child
17
-
18
- result = context.registry.handle(child, context: context)
19
- result.append_to(content)
20
- end
21
-
22
- element_content = SafeAttr.read(element, :content)
23
- Array(element_content).each do |child|
24
- result = context.registry.handle(child, context: context)
25
- result.append_to(content)
26
- end
27
-
28
- Handlers.build_node("preface", attrs: attrs.compact, content: content)
29
- end
30
-
31
- def self.sections(element, context:)
32
- attrs = {}
33
- attrs[:semx_id] = SafeAttr.read(element, :semx_id)
34
- attrs[:displayorder] = SafeAttr.read(element, :displayorder)
35
-
36
- content = []
37
- %i[clause terms definitions references floating_title].each do |attr|
38
- collection = SafeAttr.read(element, attr)
39
- next unless collection
40
-
41
- Array(collection).each do |child|
42
- result = context.registry.handle(child, context: context)
43
- result.append_to(content)
44
- end
45
- end
46
-
47
- Handlers.build_node("sections", attrs: attrs.compact,
48
- content: content)
49
- end
50
-
51
- def self.bibliography(element, context:)
52
- attrs = {}
53
- attrs[:semx_id] = SafeAttr.read(element, :semx_id)
54
-
55
- content = []
56
- refs = SafeAttr.read(element, :references)
57
- Array(refs).each do |ref|
58
- result = context.registry.handle(ref, context: context)
59
- result.append_to(content)
60
- end
61
-
62
- Handlers.build_node("bibliography", attrs: attrs.compact,
63
- content: content)
64
- end
65
- end
66
- end
67
- end
68
- end
@@ -1,81 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- module Table
7
- def self.call(element, context:)
8
- attrs = table_attrs(element)
9
- content = []
10
-
11
- thead = SafeAttr.read(element, :thead)
12
- if thead
13
- rows = extract_rows(thead, context:)
14
- unless rows.empty?
15
- content << Handlers.build_node("table_head",
16
- content: rows)
17
- end
18
- end
19
-
20
- tbody = SafeAttr.read(element, :tbody)
21
- if tbody
22
- rows = extract_rows(tbody, context:)
23
- unless rows.empty?
24
- content << Handlers.build_node("table_body",
25
- content: rows)
26
- end
27
- end
28
-
29
- tfoot = SafeAttr.read(element, :tfoot)
30
- if tfoot
31
- rows = extract_rows(tfoot, context:)
32
- unless rows.empty?
33
- content << Handlers.build_node("table_foot",
34
- content: rows)
35
- end
36
- end
37
-
38
- Handlers.build_node("table", attrs: attrs, content: content)
39
- end
40
-
41
- def self.extract_rows(table_section, context:)
42
- Array(table_section.tr).map do |tr|
43
- cells = Array(tr.td).map { |td| build_cell(td, context:) }
44
- Array(tr.th).each { |th| cells << build_cell(th, context:) }
45
-
46
- row_attrs = {}
47
- row_attrs[:id] = SafeAttr.read(tr, :id)
48
- Handlers.build_node("table_row", attrs: row_attrs.compact,
49
- content: cells)
50
- end
51
- end
52
-
53
- def self.build_cell(cell, context:)
54
- attrs = {}
55
- attrs[:colspan] = SafeAttr.read(cell, :colspan)
56
- attrs[:rowspan] = SafeAttr.read(cell, :rowspan)
57
- attrs[:align] = SafeAttr.read(cell, :align)
58
- attrs[:valign] = SafeAttr.read(cell, :valign)
59
-
60
- content = Inline.extract_inline(cell, context:)
61
-
62
- Handlers.build_node("table_cell", attrs: attrs.compact,
63
- content: content)
64
- end
65
-
66
- def self.table_attrs(element)
67
- attrs = {}
68
- attrs[:id] = SafeAttr.read(element, :id)
69
- attrs[:width] = SafeAttr.read(element, :width)
70
- attrs[:align] = SafeAttr.read(element, :align)
71
- attrs[:unnumbered] = SafeAttr.read(element, :unnumbered)
72
- attrs[:semx_id] = SafeAttr.read(element, :semx_id)
73
-
74
- name = SafeAttr.read(element, :name)
75
- attrs[:title] = Handlers.extract_name_text(name) if name
76
- attrs.compact
77
- end
78
- end
79
- end
80
- end
81
- end
@@ -1,100 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- module Term
7
- def self.call(element, context:)
8
- attrs = {}
9
- attrs[:id] = SafeAttr.read(element, :id)
10
- attrs[:anchor] = SafeAttr.read(element, :anchor)
11
-
12
- fmt_name = SafeAttr.read(element, :fmt_name)
13
- if fmt_name
14
- number = Inline.extract_formatted_text(fmt_name)
15
- attrs[:number] = number unless number.empty?
16
- end
17
-
18
- content = []
19
-
20
- # Term name from fmt_preferred paragraphs
21
- extract_fmt_paragraphs(element, :fmt_preferred, content, context)
22
-
23
- # Definition from fmt_definition → semx → p
24
- fmt_def = SafeAttr.read(element, :fmt_definition)
25
- if fmt_def
26
- extract_semx_paragraphs(fmt_def, content, context)
27
- end
28
-
29
- # Source from fmt_termsource
30
- fmt_ts_list = SafeAttr.read(element, :fmt_termsource)
31
- if fmt_ts_list && !fmt_ts_list.empty?
32
- source_text = Inline.extract_formatted_text(fmt_ts_list.first)
33
- unless source_text.empty?
34
- content << Handlers.build_node("paragraph",
35
- attrs: { class: "source" },
36
- content: [context.text_node(source_text)])
37
- end
38
- end
39
-
40
- # Term notes
41
- SafeAttr.read(element, :termnote)&.each do |tn|
42
- note_attrs = { id: SafeAttr.read(tn, :id) }
43
- fn = SafeAttr.read(tn, :fmt_name)
44
- if fn
45
- num = Inline.extract_formatted_text(fn)
46
- note_attrs[:number] = num unless num.empty?
47
- end
48
- note_content = context.extract_named_collections(tn, %i[p ul ol dl])
49
- content << Handlers.build_node("note", attrs: note_attrs.compact,
50
- content: note_content)
51
- end
52
-
53
- # Term examples
54
- SafeAttr.read(element, :termexample)&.each do |te|
55
- ex_attrs = { id: SafeAttr.read(te, :id) }
56
- ex_content = context.extract_named_collections(te, %i[p ul ol dl])
57
- content << Handlers.build_node("example", attrs: ex_attrs.compact,
58
- content: ex_content)
59
- end
60
-
61
- # Nested terms
62
- SafeAttr.read(element, :term)&.each do |t|
63
- result = context.registry.handle(t, context: context)
64
- result.append_to(content)
65
- end
66
-
67
- Handlers.build_node("term", attrs: attrs.compact, content: content)
68
- end
69
-
70
- def self.extract_fmt_paragraphs(element, attr_name, content, context)
71
- fmt_list = SafeAttr.read(element, attr_name)
72
- return unless fmt_list
73
-
74
- fmt_list.each do |fmt_el|
75
- ps = SafeAttr.read(fmt_el, :p)
76
- next unless ps
77
-
78
- ps.each do |p|
79
- result = context.registry.handle(p, context: context)
80
- result.append_to(content)
81
- end
82
- end
83
- end
84
-
85
- # fmt_definition wraps content in semx elements → extract p from semx
86
- def self.extract_semx_paragraphs(fmt_def, content, context)
87
- semx_list = SafeAttr.read(fmt_def, :semx)
88
- return unless semx_list
89
-
90
- Array(semx_list).each do |s|
91
- SafeAttr.read(s, :p)&.each do |p|
92
- result = context.registry.handle(p, context: context)
93
- result.append_to(content)
94
- end
95
- end
96
- end
97
- end
98
- end
99
- end
100
- end
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Metanorma
4
- module Mirror
5
- module Handlers
6
- autoload :Paragraph, "#{__dir__}/handlers/paragraph"
7
- autoload :Section, "#{__dir__}/handlers/section"
8
- autoload :List, "#{__dir__}/handlers/list"
9
- autoload :Table, "#{__dir__}/handlers/table"
10
- autoload :Figure, "#{__dir__}/handlers/figure"
11
- autoload :Sourcecode, "#{__dir__}/handlers/sourcecode"
12
- autoload :Admonition, "#{__dir__}/handlers/admonition"
13
- autoload :Formula, "#{__dir__}/handlers/formula"
14
- autoload :Example, "#{__dir__}/handlers/example"
15
- autoload :Note, "#{__dir__}/handlers/note"
16
- autoload :Quote, "#{__dir__}/handlers/quote"
17
- autoload :Review, "#{__dir__}/handlers/review"
18
- autoload :Inline, "#{__dir__}/handlers/inline"
19
- autoload :Structural, "#{__dir__}/handlers/structural"
20
- autoload :Term, "#{__dir__}/handlers/term"
21
-
22
- COMMON_ATTRS = %i[id semx_id].freeze
23
-
24
- def self.build_node(type, attrs: {}, content: [])
25
- if content.nil? || content.empty?
26
- Model::Leaf.new(type: type, attrs: attrs)
27
- else
28
- Model::Container.new(type: type, attrs: attrs, content: content)
29
- end
30
- end
31
-
32
- def self.build_text(text, marks: [])
33
- Model::Text.new(text: text, marks: marks)
34
- end
35
-
36
- def self.build_mark(type, attrs: {})
37
- Model::Mark.new(type: type, attrs: attrs)
38
- end
39
-
40
- def self.extract_attrs(element, extra_attrs: {})
41
- attrs = {}
42
- COMMON_ATTRS.each do |attr|
43
- attrs[attr] = SafeAttr.read(element, attr)
44
- end
45
- extra_attrs.each do |attr, source_attr|
46
- attrs[attr] = SafeAttr.read(element, source_attr || attr)
47
- end
48
- attrs.compact
49
- end
50
-
51
- def self.extract_name_text(name)
52
- Inline::TextExtractor.extract_name_text(name)
53
- end
54
-
55
- def self.extract_bibdata_title(bibdata)
56
- Metadata.title_from_bibdata(bibdata)
57
- end
58
- end
59
- end
60
- end