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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +81 -0
  3. data/Rakefile +3 -7
  4. data/data/themes/ogc.yaml +5 -0
  5. data/lib/metanorma/basic_document/ancillary_blocks/figure_block.rb +2 -2
  6. data/lib/metanorma/basic_document/multi_paragraph/admonition_block.rb +2 -2
  7. data/lib/metanorma/document/cli.rb +134 -0
  8. data/lib/metanorma/document/components/ancillary_blocks/figure_block.rb +5 -0
  9. data/lib/metanorma/document/components/ancillary_blocks/fmt_figure_element.rb +47 -0
  10. data/lib/metanorma/document/components/ancillary_blocks/formula_block.rb +2 -0
  11. data/lib/metanorma/document/components/ancillary_blocks/imagemap_element.rb +73 -0
  12. data/lib/metanorma/document/components/ancillary_blocks/literal_block.rb +2 -0
  13. data/lib/metanorma/document/components/ancillary_blocks/sourcecode_block.rb +2 -0
  14. data/lib/metanorma/document/components/ancillary_blocks/svg_target_element.rb +27 -0
  15. data/lib/metanorma/document/components/ancillary_blocks/svgmap_element.rb +28 -0
  16. data/lib/metanorma/document/components/ancillary_blocks.rb +4 -0
  17. data/lib/metanorma/document/components/bib_data/bibliographic_item.rb +4 -0
  18. data/lib/metanorma/document/components/blocks/fmt_provision.rb +25 -0
  19. data/lib/metanorma/document/components/blocks/note_block.rb +8 -0
  20. data/lib/metanorma/document/components/blocks/permission_model.rb +9 -0
  21. data/lib/metanorma/document/components/blocks/recommendation_model.rb +9 -0
  22. data/lib/metanorma/document/components/blocks/requirement_base.rb +12 -0
  23. data/lib/metanorma/document/components/blocks/requirement_import.rb +23 -0
  24. data/lib/metanorma/document/components/blocks/requirement_measurement_target.rb +23 -0
  25. data/lib/metanorma/document/components/blocks/requirement_model.rb +9 -0
  26. data/lib/metanorma/document/components/blocks/requirement_specification.rb +23 -0
  27. data/lib/metanorma/document/components/blocks/requirement_verification.rb +23 -0
  28. data/lib/metanorma/document/components/blocks.rb +8 -0
  29. data/lib/metanorma/document/components/data_types/formatted_string.rb +9 -0
  30. data/lib/metanorma/document/components/id_elements/image.rb +4 -0
  31. data/lib/metanorma/document/components/inline/columnbreak_element.rb +17 -0
  32. data/lib/metanorma/document/components/inline/concept_element.rb +18 -0
  33. data/lib/metanorma/document/components/inline/date_element.rb +29 -0
  34. data/lib/metanorma/document/components/inline/display_text_element.rb +2 -0
  35. data/lib/metanorma/document/components/inline/em_raw_element.rb +6 -7
  36. data/lib/metanorma/document/components/inline/eref_element.rb +48 -22
  37. data/lib/metanorma/document/components/inline/eref_stack.rb +23 -0
  38. data/lib/metanorma/document/components/inline/error_message.rb +28 -0
  39. data/lib/metanorma/document/components/inline/fmt_date_element.rb +28 -0
  40. data/lib/metanorma/document/components/inline/fmt_date_inline_element.rb +26 -0
  41. data/lib/metanorma/document/components/inline/fmt_eref_element.rb +25 -0
  42. data/lib/metanorma/document/components/inline/fmt_origin_element.rb +24 -0
  43. data/lib/metanorma/document/components/inline/fmt_preferred_element.rb +3 -0
  44. data/lib/metanorma/document/components/inline/fmt_source_element.rb +31 -0
  45. data/lib/metanorma/document/components/inline/fn_element.rb +11 -0
  46. data/lib/metanorma/document/components/inline/link_element.rb +8 -0
  47. data/lib/metanorma/document/components/inline/name_with_id_element.rb +2 -0
  48. data/lib/metanorma/document/components/inline/refterm_element.rb +21 -0
  49. data/lib/metanorma/document/components/inline/semx_element.rb +22 -0
  50. data/lib/metanorma/document/components/inline/sourcelocality_stack_element.rb +27 -0
  51. data/lib/metanorma/document/components/inline/span_element.rb +2 -0
  52. data/lib/metanorma/document/components/inline/stem_inline_element.rb +2 -0
  53. data/lib/metanorma/document/components/inline/strong_raw_element.rb +6 -9
  54. data/lib/metanorma/document/components/inline/sub_element.rb +2 -0
  55. data/lib/metanorma/document/components/inline/termref_element.rb +24 -0
  56. data/lib/metanorma/document/components/inline/title_with_annotation_element.rb +10 -31
  57. data/lib/metanorma/document/components/inline/variant_title_element.rb +2 -0
  58. data/lib/metanorma/document/components/inline/vocabulary.rb +36 -0
  59. data/lib/metanorma/document/components/inline.rb +23 -0
  60. data/lib/metanorma/document/components/lists/dd_element.rb +6 -1
  61. data/lib/metanorma/document/components/lists/definition.rb +2 -0
  62. data/lib/metanorma/document/components/lists/definition_list.rb +3 -0
  63. data/lib/metanorma/document/components/lists/dt_element.rb +3 -0
  64. data/lib/metanorma/document/components/lists/fmt_list_element.rb +73 -0
  65. data/lib/metanorma/document/components/lists/list_item.rb +3 -0
  66. data/lib/metanorma/document/components/lists/ordered_list.rb +4 -2
  67. data/lib/metanorma/document/components/lists/unordered_list.rb +2 -0
  68. data/lib/metanorma/document/components/lists.rb +2 -0
  69. data/lib/metanorma/document/components/multi_paragraph/quote_block.rb +16 -0
  70. data/lib/metanorma/document/components/multi_paragraph/review_block.rb +2 -2
  71. data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +15 -0
  72. data/lib/metanorma/document/components/reference_elements/citation.rb +7 -0
  73. data/lib/metanorma/document/components/reference_elements/source_element.rb +4 -0
  74. data/lib/metanorma/document/components/semantic/node.rb +46 -0
  75. data/lib/metanorma/document/components/semantic.rb +11 -0
  76. data/lib/metanorma/document/components/tables/header_table_cell.rb +1 -0
  77. data/lib/metanorma/document/components/tables/table_cell.rb +70 -44
  78. data/lib/metanorma/document/components/tables/text_table_cell.rb +1 -0
  79. data/lib/metanorma/document/components/tables/text_table_row.rb +2 -0
  80. data/lib/metanorma/document/components/text_elements/ruby_annotation_element.rb +26 -0
  81. data/lib/metanorma/document/components/text_elements/ruby_element.rb +41 -6
  82. data/lib/metanorma/document/components/text_elements/ruby_pronunciation_element.rb +25 -0
  83. data/lib/metanorma/document/components/text_elements/strike_element.rb +3 -0
  84. data/lib/metanorma/document/components/text_elements/underline_element.rb +3 -0
  85. data/lib/metanorma/document/components/text_elements.rb +2 -0
  86. data/lib/metanorma/document/components.rb +1 -0
  87. data/lib/metanorma/document/grammar_vocabulary.rb +109 -0
  88. data/lib/metanorma/document/mirror_seed.rb +253 -0
  89. data/lib/metanorma/document/mko/collection.rb +168 -0
  90. data/lib/metanorma/document/mko/exporter.rb +17 -0
  91. data/lib/metanorma/document/mko/project.rb +1110 -0
  92. data/lib/metanorma/document/mko.rb +122 -0
  93. data/lib/metanorma/document/model_access.rb +44 -0
  94. data/lib/metanorma/document/native_models.rb +319 -0
  95. data/lib/metanorma/document/plain_text.rb +39 -0
  96. data/lib/metanorma/document/relaton/version_info.rb +4 -0
  97. data/lib/metanorma/document/version.rb +1 -1
  98. data/lib/metanorma/document.rb +19 -26
  99. data/lib/metanorma/{collection → document_collection}/directive.rb +1 -1
  100. data/lib/metanorma/{collection → document_collection}/doc_container.rb +6 -2
  101. data/lib/metanorma/{collection → document_collection}/entry.rb +2 -2
  102. data/lib/metanorma/{collection → document_collection}/root.rb +2 -2
  103. data/lib/metanorma/document_collection.rb +10 -0
  104. data/lib/metanorma/html/base_renderer.rb +94 -25
  105. data/lib/metanorma/html/component/footnote_collector.rb +21 -20
  106. data/lib/metanorma/html/concerns/metadata_extraction.rb +8 -3
  107. data/lib/metanorma/html/concerns/presentation_validation.rb +1 -2
  108. data/lib/metanorma/html/concerns/text_extraction.rb +154 -35
  109. data/lib/metanorma/html/concerns.rb +19 -0
  110. data/lib/metanorma/html/drops/admonition_drop.rb +1 -1
  111. data/lib/metanorma/html/drops/footnote_drop.rb +1 -1
  112. data/lib/metanorma/html/drops/sourcecode_drop.rb +22 -4
  113. data/lib/metanorma/html/generator.rb +11 -187
  114. data/lib/metanorma/html/renderer_delegation.rb +2 -2
  115. data/lib/metanorma/html/renderers/block_renderer.rb +206 -46
  116. data/lib/metanorma/html/renderers/inline_renderer.rb +144 -17
  117. data/lib/metanorma/html/renderers/section_renderer.rb +12 -2
  118. data/lib/metanorma/html/renderers/semantic_renderer.rb +487 -0
  119. data/lib/metanorma/html/renderers.rb +2 -0
  120. data/lib/metanorma/html/standard_renderer.rb +732 -76
  121. data/lib/metanorma/html/templates/_agency_cover.html.liquid +30 -0
  122. data/lib/metanorma/html/templates/_columnbreak.html.liquid +1 -0
  123. data/lib/metanorma/html/templates/_cover.html.liquid +3 -0
  124. data/lib/metanorma/html/templates/_main_content.html.liquid +1 -1
  125. data/lib/metanorma/html/templates/_ruby.html.liquid +1 -0
  126. data/lib/metanorma/html/templates/_sourcecode.html.liquid +4 -3
  127. data/lib/metanorma/html/templates/_standard_cover.html.liquid +54 -3
  128. data/lib/metanorma/html.rb +30 -15
  129. data/tasks/flavors.rake +116 -0
  130. data/tasks/grammar.rake +28 -0
  131. data/tasks/roundtrip_samples.rake +48 -34
  132. metadata +121 -416
  133. data/frontend/dist/app.css +0 -1
  134. data/frontend/dist/app.iife.js +0 -24
  135. data/lib/metanorma/bipm_document/metadata/bipm_bib_data_extension_type.rb +0 -20
  136. data/lib/metanorma/bipm_document/metadata/bipm_bibliographic_item.rb +0 -17
  137. data/lib/metanorma/bipm_document/metadata/bipm_structured_identifier.rb +0 -21
  138. data/lib/metanorma/bipm_document/metadata/depiction_element.rb +0 -18
  139. data/lib/metanorma/bipm_document/metadata.rb +0 -15
  140. data/lib/metanorma/bipm_document/root.rb +0 -25
  141. data/lib/metanorma/bipm_document.rb +0 -8
  142. data/lib/metanorma/bsi_document/metadata/bsi_bib_data_extension_type.rb +0 -10
  143. data/lib/metanorma/bsi_document/metadata/bsi_bibliographic_item.rb +0 -15
  144. data/lib/metanorma/bsi_document/metadata.rb +0 -12
  145. data/lib/metanorma/bsi_document/root.rb +0 -29
  146. data/lib/metanorma/bsi_document/sections/bsi_annex_section.rb +0 -25
  147. data/lib/metanorma/bsi_document/sections/bsi_clause_section.rb +0 -25
  148. data/lib/metanorma/bsi_document/sections/bsi_sections.rb +0 -27
  149. data/lib/metanorma/bsi_document/sections.rb +0 -11
  150. data/lib/metanorma/bsi_document.rb +0 -11
  151. data/lib/metanorma/cc_document/metadata/cc_bib_data_extension_type.rb +0 -12
  152. data/lib/metanorma/cc_document/metadata/cc_bibliographic_item.rb +0 -17
  153. data/lib/metanorma/cc_document/metadata.rb +0 -11
  154. data/lib/metanorma/cc_document/root.rb +0 -25
  155. data/lib/metanorma/cc_document.rb +0 -8
  156. data/lib/metanorma/collection.rb +0 -10
  157. data/lib/metanorma/csa_document/root.rb +0 -27
  158. data/lib/metanorma/csa_document.rb +0 -9
  159. data/lib/metanorma/gb_document/metadata/gb_bib_data_extension_type.rb +0 -10
  160. data/lib/metanorma/gb_document/metadata/gb_bibliographic_item.rb +0 -15
  161. data/lib/metanorma/gb_document/metadata.rb +0 -12
  162. data/lib/metanorma/gb_document/root.rb +0 -29
  163. data/lib/metanorma/gb_document.rb +0 -10
  164. data/lib/metanorma/generic_document/root.rb +0 -31
  165. data/lib/metanorma/generic_document.rb +0 -7
  166. data/lib/metanorma/html/bipm_renderer.rb +0 -23
  167. data/lib/metanorma/html/cc_renderer.rb +0 -9
  168. data/lib/metanorma/html/csa_renderer.rb +0 -9
  169. data/lib/metanorma/html/flavor.rb +0 -50
  170. data/lib/metanorma/html/flavor_registry.rb +0 -49
  171. data/lib/metanorma/html/icc_renderer.rb +0 -10
  172. data/lib/metanorma/html/iec_renderer.rb +0 -9
  173. data/lib/metanorma/html/ieee_renderer.rb +0 -9
  174. data/lib/metanorma/html/ietf_renderer.rb +0 -9
  175. data/lib/metanorma/html/iho_renderer.rb +0 -9
  176. data/lib/metanorma/html/iso_renderer.rb +0 -535
  177. data/lib/metanorma/html/itu_renderer.rb +0 -9
  178. data/lib/metanorma/html/ogc_renderer.rb +0 -23
  179. data/lib/metanorma/html/pdfa_renderer.rb +0 -10
  180. data/lib/metanorma/html/ribose_renderer.rb +0 -9
  181. data/lib/metanorma/html/templates/_bipm_cover.html.liquid +0 -27
  182. data/lib/metanorma/html/templates/_iso_cover.html.liquid +0 -31
  183. data/lib/metanorma/html/templates/_iso_doc_title.html.liquid +0 -3
  184. data/lib/metanorma/iec_document/root.rb +0 -27
  185. data/lib/metanorma/iec_document.rb +0 -9
  186. data/lib/metanorma/ieee_document/metadata/ieee_bib_data_extension_type.rb +0 -18
  187. data/lib/metanorma/ieee_document/metadata/ieee_bibliographic_item.rb +0 -20
  188. data/lib/metanorma/ieee_document/metadata/ieee_structured_identifier.rb +0 -25
  189. data/lib/metanorma/ieee_document/metadata.rb +0 -14
  190. data/lib/metanorma/ieee_document/root.rb +0 -29
  191. data/lib/metanorma/ieee_document/sections/ieee_sections.rb +0 -31
  192. data/lib/metanorma/ieee_document/sections.rb +0 -9
  193. data/lib/metanorma/ieee_document.rb +0 -11
  194. data/lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb +0 -31
  195. data/lib/metanorma/ietf_document/metadata/ietf_bibliographic_item.rb +0 -51
  196. data/lib/metanorma/ietf_document/metadata/ietf_editorial_group.rb +0 -17
  197. data/lib/metanorma/ietf_document/metadata/pi_settings.rb +0 -32
  198. data/lib/metanorma/ietf_document/metadata.rb +0 -16
  199. data/lib/metanorma/ietf_document/root.rb +0 -30
  200. data/lib/metanorma/ietf_document/sections/ietf_annex_section.rb +0 -26
  201. data/lib/metanorma/ietf_document/sections/ietf_clause_section.rb +0 -26
  202. data/lib/metanorma/ietf_document/sections/ietf_content_section.rb +0 -25
  203. data/lib/metanorma/ietf_document/sections/ietf_sections.rb +0 -35
  204. data/lib/metanorma/ietf_document/sections.rb +0 -12
  205. data/lib/metanorma/ietf_document.rb +0 -11
  206. data/lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb +0 -23
  207. data/lib/metanorma/iho_document/metadata/iho_bibliographic_item.rb +0 -20
  208. data/lib/metanorma/iho_document/metadata/iho_editorial_group.rb +0 -19
  209. data/lib/metanorma/iho_document/metadata/iho_series.rb +0 -22
  210. data/lib/metanorma/iho_document/metadata/iho_sub_group.rb +0 -18
  211. data/lib/metanorma/iho_document/metadata.rb +0 -15
  212. data/lib/metanorma/iho_document/root.rb +0 -25
  213. data/lib/metanorma/iho_document.rb +0 -8
  214. data/lib/metanorma/iso_document/annotation_container.rb +0 -7
  215. data/lib/metanorma/iso_document/blocks/iso_admonition_block.rb +0 -27
  216. data/lib/metanorma/iso_document/blocks/iso_admonition_type.rb +0 -25
  217. data/lib/metanorma/iso_document/blocks.rb +0 -12
  218. data/lib/metanorma/iso_document/boilerplate.rb +0 -7
  219. data/lib/metanorma/iso_document/metadata/abstract_title.rb +0 -36
  220. data/lib/metanorma/iso_document/metadata/doc_identifier.rb +0 -26
  221. data/lib/metanorma/iso_document/metadata/doctype_element.rb +0 -20
  222. data/lib/metanorma/iso_document/metadata/ics.rb +0 -19
  223. data/lib/metanorma/iso_document/metadata/iec_document_category.rb +0 -23
  224. data/lib/metanorma/iso_document/metadata/iso_bib_data_extension_type.rb +0 -38
  225. data/lib/metanorma/iso_document/metadata/iso_bibliographic_item.rb +0 -103
  226. data/lib/metanorma/iso_document/metadata/iso_document_id.rb +0 -46
  227. data/lib/metanorma/iso_document/metadata/iso_document_stage_codes.rb +0 -26
  228. data/lib/metanorma/iso_document/metadata/iso_document_status.rb +0 -26
  229. data/lib/metanorma/iso_document/metadata/iso_document_substage_codes.rb +0 -26
  230. data/lib/metanorma/iso_document/metadata/iso_document_type.rb +0 -25
  231. data/lib/metanorma/iso_document/metadata/iso_localized_title.rb +0 -61
  232. data/lib/metanorma/iso_document/metadata/iso_project_group.rb +0 -32
  233. data/lib/metanorma/iso_document/metadata/iso_sub_group.rb +0 -38
  234. data/lib/metanorma/iso_document/metadata/language_element.rb +0 -18
  235. data/lib/metanorma/iso_document/metadata/metanorma_extension.rb +0 -9
  236. data/lib/metanorma/iso_document/metadata/project_number.rb +0 -22
  237. data/lib/metanorma/iso_document/metadata/script_element.rb +0 -18
  238. data/lib/metanorma/iso_document/metadata/stage_element.rb +0 -26
  239. data/lib/metanorma/iso_document/metadata/stagename_element.rb +0 -18
  240. data/lib/metanorma/iso_document/metadata/structured_identifier.rb +0 -16
  241. data/lib/metanorma/iso_document/metadata/title_amd.rb +0 -12
  242. data/lib/metanorma/iso_document/metadata/title_amendment_prefix.rb +0 -12
  243. data/lib/metanorma/iso_document/metadata/title_collection.rb +0 -47
  244. data/lib/metanorma/iso_document/metadata/title_full.rb +0 -12
  245. data/lib/metanorma/iso_document/metadata/title_intro.rb +0 -12
  246. data/lib/metanorma/iso_document/metadata/title_main.rb +0 -12
  247. data/lib/metanorma/iso_document/metadata/title_part.rb +0 -12
  248. data/lib/metanorma/iso_document/metadata/title_part_prefix.rb +0 -12
  249. data/lib/metanorma/iso_document/metadata.rb +0 -44
  250. data/lib/metanorma/iso_document/root.rb +0 -26
  251. data/lib/metanorma/iso_document/sections/colophon.rb +0 -3
  252. data/lib/metanorma/iso_document/sections/iso_abstract_section.rb +0 -15
  253. data/lib/metanorma/iso_document/sections/iso_amendment_clause.rb +0 -24
  254. data/lib/metanorma/iso_document/sections/iso_annex_section.rb +0 -50
  255. data/lib/metanorma/iso_document/sections/iso_clause_section.rb +0 -49
  256. data/lib/metanorma/iso_document/sections/iso_foreword_section.rb +0 -33
  257. data/lib/metanorma/iso_document/sections/iso_preface.rb +0 -51
  258. data/lib/metanorma/iso_document/sections/iso_sections.rb +0 -51
  259. data/lib/metanorma/iso_document/sections/iso_terms_section.rb +0 -76
  260. data/lib/metanorma/iso_document/sections.rb +0 -17
  261. data/lib/metanorma/iso_document/terms/iso_term.rb +0 -71
  262. data/lib/metanorma/iso_document/terms/iso_term_collection.rb +0 -20
  263. data/lib/metanorma/iso_document/terms/term_definition.rb +0 -30
  264. data/lib/metanorma/iso_document/terms/term_designation.rb +0 -44
  265. data/lib/metanorma/iso_document/terms/term_domain_element.rb +0 -18
  266. data/lib/metanorma/iso_document/terms/term_example.rb +0 -40
  267. data/lib/metanorma/iso_document/terms/term_expression.rb +0 -10
  268. data/lib/metanorma/iso_document/terms/term_note.rb +0 -42
  269. data/lib/metanorma/iso_document/terms/term_origin.rb +0 -4
  270. data/lib/metanorma/iso_document/terms/term_source.rb +0 -21
  271. data/lib/metanorma/iso_document/terms/verbal_definition.rb +0 -42
  272. data/lib/metanorma/iso_document/terms.rb +0 -21
  273. data/lib/metanorma/iso_document.rb +0 -15
  274. data/lib/metanorma/itu_document/metadata/itu_bib_data_extension_type.rb +0 -26
  275. data/lib/metanorma/itu_document/metadata/itu_bibliographic_item.rb +0 -21
  276. data/lib/metanorma/itu_document/metadata/itu_series.rb +0 -22
  277. data/lib/metanorma/itu_document/metadata/itu_structured_identifier.rb +0 -23
  278. data/lib/metanorma/itu_document/metadata/meeting_date.rb +0 -18
  279. data/lib/metanorma/itu_document/metadata/meeting_element.rb +0 -18
  280. data/lib/metanorma/itu_document/metadata/study_period.rb +0 -18
  281. data/lib/metanorma/itu_document/metadata.rb +0 -18
  282. data/lib/metanorma/itu_document/root.rb +0 -25
  283. data/lib/metanorma/itu_document.rb +0 -8
  284. data/lib/metanorma/jis_document/metadata/jis_bib_data_extension_type.rb +0 -10
  285. data/lib/metanorma/jis_document/metadata/jis_bibliographic_item.rb +0 -15
  286. data/lib/metanorma/jis_document/metadata.rb +0 -12
  287. data/lib/metanorma/jis_document/root.rb +0 -29
  288. data/lib/metanorma/jis_document/sections/jis_annex_section.rb +0 -20
  289. data/lib/metanorma/jis_document/sections.rb +0 -9
  290. data/lib/metanorma/jis_document.rb +0 -11
  291. data/lib/metanorma/m3d_document/metadata/m3d_bib_data_extension_type.rb +0 -10
  292. data/lib/metanorma/m3d_document/metadata/m3d_bibliographic_item.rb +0 -15
  293. data/lib/metanorma/m3d_document/metadata.rb +0 -12
  294. data/lib/metanorma/m3d_document/root.rb +0 -29
  295. data/lib/metanorma/m3d_document.rb +0 -10
  296. data/lib/metanorma/mirror/default_registry.rb +0 -191
  297. data/lib/metanorma/mirror/handler_registry.rb +0 -60
  298. data/lib/metanorma/mirror/handler_result.rb +0 -37
  299. data/lib/metanorma/mirror/handlers/admonition.rb +0 -18
  300. data/lib/metanorma/mirror/handlers/example.rb +0 -21
  301. data/lib/metanorma/mirror/handlers/figure.rb +0 -53
  302. data/lib/metanorma/mirror/handlers/formula.rb +0 -35
  303. data/lib/metanorma/mirror/handlers/inline/catalog.rb +0 -52
  304. data/lib/metanorma/mirror/handlers/inline/rich_html_renderer.rb +0 -158
  305. data/lib/metanorma/mirror/handlers/inline/text_extractor.rb +0 -116
  306. data/lib/metanorma/mirror/handlers/inline.rb +0 -226
  307. data/lib/metanorma/mirror/handlers/list.rb +0 -110
  308. data/lib/metanorma/mirror/handlers/note.rb +0 -26
  309. data/lib/metanorma/mirror/handlers/paragraph.rb +0 -19
  310. data/lib/metanorma/mirror/handlers/quote.rb +0 -16
  311. data/lib/metanorma/mirror/handlers/review.rb +0 -19
  312. data/lib/metanorma/mirror/handlers/section.rb +0 -149
  313. data/lib/metanorma/mirror/handlers/sourcecode.rb +0 -27
  314. data/lib/metanorma/mirror/handlers/structural.rb +0 -68
  315. data/lib/metanorma/mirror/handlers/table.rb +0 -81
  316. data/lib/metanorma/mirror/handlers/term.rb +0 -100
  317. data/lib/metanorma/mirror/handlers.rb +0 -60
  318. data/lib/metanorma/mirror/id_strategy/positional.rb +0 -166
  319. data/lib/metanorma/mirror/id_strategy/preserve.rb +0 -12
  320. data/lib/metanorma/mirror/id_strategy.rb +0 -34
  321. data/lib/metanorma/mirror/math_util.rb +0 -53
  322. data/lib/metanorma/mirror/metadata.rb +0 -37
  323. data/lib/metanorma/mirror/model/container.rb +0 -47
  324. data/lib/metanorma/mirror/model/factory.rb +0 -52
  325. data/lib/metanorma/mirror/model/guide.rb +0 -26
  326. data/lib/metanorma/mirror/model/leaf.rb +0 -17
  327. data/lib/metanorma/mirror/model/mark.rb +0 -53
  328. data/lib/metanorma/mirror/model/node.rb +0 -47
  329. data/lib/metanorma/mirror/model/soft_break.rb +0 -33
  330. data/lib/metanorma/mirror/model/text.rb +0 -34
  331. data/lib/metanorma/mirror/model.rb +0 -16
  332. data/lib/metanorma/mirror/output/builder.rb +0 -39
  333. data/lib/metanorma/mirror/output/formats/base_format.rb +0 -90
  334. data/lib/metanorma/mirror/output/formats/inline_format.rb +0 -142
  335. data/lib/metanorma/mirror/output/formats.rb +0 -53
  336. data/lib/metanorma/mirror/output/pipeline.rb +0 -93
  337. data/lib/metanorma/mirror/output/pipeline_context.rb +0 -22
  338. data/lib/metanorma/mirror/output.rb +0 -12
  339. data/lib/metanorma/mirror/rewriter.rb +0 -123
  340. data/lib/metanorma/mirror/safe_attr.rb +0 -16
  341. data/lib/metanorma/mirror/serialization/json_serializer.rb +0 -25
  342. data/lib/metanorma/mirror/serialization/yaml_serializer.rb +0 -20
  343. data/lib/metanorma/mirror/serialization.rb +0 -10
  344. data/lib/metanorma/mirror/transformer.rb +0 -110
  345. data/lib/metanorma/mirror.rb +0 -31
  346. data/lib/metanorma/nist_document/metadata/nist_bib_data_extension_type.rb +0 -10
  347. data/lib/metanorma/nist_document/metadata/nist_bibliographic_item.rb +0 -15
  348. data/lib/metanorma/nist_document/metadata.rb +0 -12
  349. data/lib/metanorma/nist_document/root.rb +0 -29
  350. data/lib/metanorma/nist_document/sections/errata.rb +0 -16
  351. data/lib/metanorma/nist_document/sections/errata_clause.rb +0 -20
  352. data/lib/metanorma/nist_document/sections/errata_row.rb +0 -22
  353. data/lib/metanorma/nist_document/sections/nist_preface.rb +0 -30
  354. data/lib/metanorma/nist_document/sections.rb +0 -12
  355. data/lib/metanorma/nist_document.rb +0 -11
  356. data/lib/metanorma/ogc_document/metadata/ogc_bib_data_extension_type.rb +0 -12
  357. data/lib/metanorma/ogc_document/metadata/ogc_bibliographic_item.rb +0 -19
  358. data/lib/metanorma/ogc_document/metadata.rb +0 -12
  359. data/lib/metanorma/ogc_document/root.rb +0 -25
  360. data/lib/metanorma/ogc_document.rb +0 -8
  361. data/lib/metanorma/plateau_document/metadata/plateau_bibliographic_item.rb +0 -13
  362. data/lib/metanorma/plateau_document/metadata.rb +0 -10
  363. data/lib/metanorma/plateau_document/root.rb +0 -29
  364. data/lib/metanorma/plateau_document.rb +0 -10
  365. data/lib/metanorma/registers/setup.rb +0 -166
  366. data/lib/metanorma/registers.rb +0 -7
  367. data/lib/metanorma/ribose_document/metadata/ribose_bib_data_extension_type.rb +0 -20
  368. data/lib/metanorma/ribose_document/metadata/ribose_bibliographic_item.rb +0 -18
  369. data/lib/metanorma/ribose_document/metadata.rb +0 -12
  370. data/lib/metanorma/ribose_document/root.rb +0 -26
  371. data/lib/metanorma/ribose_document.rb +0 -8
  372. data/lib/metanorma/standard_document/annotation_container.rb +0 -39
  373. data/lib/metanorma/standard_document/block_attributes.rb +0 -281
  374. data/lib/metanorma/standard_document/blocks/amend_block.rb +0 -50
  375. data/lib/metanorma/standard_document/blocks/amend_content_block.rb +0 -35
  376. data/lib/metanorma/standard_document/blocks/auto_number.rb +0 -20
  377. data/lib/metanorma/standard_document/blocks/block_source.rb +0 -22
  378. data/lib/metanorma/standard_document/blocks/change_type.rb +0 -21
  379. data/lib/metanorma/standard_document/blocks/element_name.rb +0 -22
  380. data/lib/metanorma/standard_document/blocks/form.rb +0 -38
  381. data/lib/metanorma/standard_document/blocks/image_map_area_type.rb +0 -24
  382. data/lib/metanorma/standard_document/blocks/image_map_area_type_type.rb +0 -21
  383. data/lib/metanorma/standard_document/blocks/image_map_block.rb +0 -32
  384. data/lib/metanorma/standard_document/blocks/image_map_coords.rb +0 -19
  385. data/lib/metanorma/standard_document/blocks/image_map_radius.rb +0 -19
  386. data/lib/metanorma/standard_document/blocks/multilingual_rendering_type.rb +0 -21
  387. data/lib/metanorma/standard_document/blocks/passthrough.rb +0 -3
  388. data/lib/metanorma/standard_document/blocks/requirement_model.rb +0 -20
  389. data/lib/metanorma/standard_document/blocks/source_origin_element.rb +0 -23
  390. data/lib/metanorma/standard_document/blocks/standard_admonition_block.rb +0 -32
  391. data/lib/metanorma/standard_document/blocks/standard_block.rb +0 -28
  392. data/lib/metanorma/standard_document/blocks/standard_block_no_notes.rb +0 -34
  393. data/lib/metanorma/standard_document/blocks/standard_example_block.rb +0 -30
  394. data/lib/metanorma/standard_document/blocks/standard_figure_block.rb +0 -32
  395. data/lib/metanorma/standard_document/blocks/standard_formula_block.rb +0 -30
  396. data/lib/metanorma/standard_document/blocks/standard_note_block.rb +0 -64
  397. data/lib/metanorma/standard_document/blocks/standard_paragraph_block.rb +0 -25
  398. data/lib/metanorma/standard_document/blocks/standard_quote_block.rb +0 -29
  399. data/lib/metanorma/standard_document/blocks/standard_sourcecode_block.rb +0 -32
  400. data/lib/metanorma/standard_document/blocks/standard_table_block.rb +0 -39
  401. data/lib/metanorma/standard_document/blocks/svg_map_block.rb +0 -23
  402. data/lib/metanorma/standard_document/blocks/svg_target_type.rb +0 -20
  403. data/lib/metanorma/standard_document/blocks/table_col.rb +0 -16
  404. data/lib/metanorma/standard_document/blocks/to_c.rb +0 -17
  405. data/lib/metanorma/standard_document/blocks.rb +0 -60
  406. data/lib/metanorma/standard_document/boilerplate.rb +0 -32
  407. data/lib/metanorma/standard_document/elements/add.rb +0 -3
  408. data/lib/metanorma/standard_document/elements/del.rb +0 -3
  409. data/lib/metanorma/standard_document/elements/form_input.rb +0 -27
  410. data/lib/metanorma/standard_document/elements/input.rb +0 -12
  411. data/lib/metanorma/standard_document/elements/input_type.rb +0 -27
  412. data/lib/metanorma/standard_document/elements/label.rb +0 -19
  413. data/lib/metanorma/standard_document/elements/option.rb +0 -27
  414. data/lib/metanorma/standard_document/elements/orientation_type.rb +0 -27
  415. data/lib/metanorma/standard_document/elements/select.rb +0 -32
  416. data/lib/metanorma/standard_document/elements/standard_page_break_element.rb +0 -22
  417. data/lib/metanorma/standard_document/elements/textarea.rb +0 -25
  418. data/lib/metanorma/standard_document/elements.rb +0 -20
  419. data/lib/metanorma/standard_document/lists/standard_definition.rb +0 -24
  420. data/lib/metanorma/standard_document/lists/standard_definition_list.rb +0 -30
  421. data/lib/metanorma/standard_document/lists/standard_definition_term.rb +0 -27
  422. data/lib/metanorma/standard_document/lists/standard_unordered_list.rb +0 -28
  423. data/lib/metanorma/standard_document/lists/unordered_checkable_list_item.rb +0 -26
  424. data/lib/metanorma/standard_document/lists.rb +0 -17
  425. data/lib/metanorma/standard_document/metadata/editorial_group_type.rb +0 -25
  426. data/lib/metanorma/standard_document/metadata/ics_type.rb +0 -26
  427. data/lib/metanorma/standard_document/metadata/metanorma_extension.rb +0 -26
  428. data/lib/metanorma/standard_document/metadata/presentation_metadata.rb +0 -107
  429. data/lib/metanorma/standard_document/metadata/semantic_metadata.rb +0 -18
  430. data/lib/metanorma/standard_document/metadata/standard_bib_data.rb +0 -25
  431. data/lib/metanorma/standard_document/metadata/standard_bib_data_extension_type.rb +0 -37
  432. data/lib/metanorma/standard_document/metadata/structured_identifier_type.rb +0 -48
  433. data/lib/metanorma/standard_document/metadata/technical_committee_type.rb +0 -27
  434. data/lib/metanorma/standard_document/metadata/unitsml/amount_of_substance.rb +0 -19
  435. data/lib/metanorma/standard_document/metadata/unitsml/base_quantity.rb +0 -34
  436. data/lib/metanorma/standard_document/metadata/unitsml/dimension.rb +0 -39
  437. data/lib/metanorma/standard_document/metadata/unitsml/dimension_set.rb +0 -19
  438. data/lib/metanorma/standard_document/metadata/unitsml/electric_current.rb +0 -19
  439. data/lib/metanorma/standard_document/metadata/unitsml/enumerated_root_unit.rb +0 -23
  440. data/lib/metanorma/standard_document/metadata/unitsml/length.rb +0 -19
  441. data/lib/metanorma/standard_document/metadata/unitsml/luminous_intensity.rb +0 -19
  442. data/lib/metanorma/standard_document/metadata/unitsml/mass.rb +0 -19
  443. data/lib/metanorma/standard_document/metadata/unitsml/namespace.rb +0 -17
  444. data/lib/metanorma/standard_document/metadata/unitsml/plane_angle.rb +0 -19
  445. data/lib/metanorma/standard_document/metadata/unitsml/prefix.rb +0 -30
  446. data/lib/metanorma/standard_document/metadata/unitsml/prefix_name.rb +0 -21
  447. data/lib/metanorma/standard_document/metadata/unitsml/prefix_set.rb +0 -19
  448. data/lib/metanorma/standard_document/metadata/unitsml/prefix_symbol.rb +0 -21
  449. data/lib/metanorma/standard_document/metadata/unitsml/quantity.rb +0 -28
  450. data/lib/metanorma/standard_document/metadata/unitsml/quantity_name.rb +0 -21
  451. data/lib/metanorma/standard_document/metadata/unitsml/quantity_set.rb +0 -19
  452. data/lib/metanorma/standard_document/metadata/unitsml/root_units.rb +0 -19
  453. data/lib/metanorma/standard_document/metadata/unitsml/thermodynamic_temperature.rb +0 -19
  454. data/lib/metanorma/standard_document/metadata/unitsml/time.rb +0 -19
  455. data/lib/metanorma/standard_document/metadata/unitsml/unit.rb +0 -32
  456. data/lib/metanorma/standard_document/metadata/unitsml/unit_name.rb +0 -21
  457. data/lib/metanorma/standard_document/metadata/unitsml/unit_set.rb +0 -19
  458. data/lib/metanorma/standard_document/metadata/unitsml/unit_symbol.rb +0 -36
  459. data/lib/metanorma/standard_document/metadata/unitsml/unit_system.rb +0 -23
  460. data/lib/metanorma/standard_document/metadata/unitsml/unitsml_root.rb +0 -28
  461. data/lib/metanorma/standard_document/metadata/unitsml.rb +0 -39
  462. data/lib/metanorma/standard_document/metadata.rb +0 -23
  463. data/lib/metanorma/standard_document/namespace.rb +0 -11
  464. data/lib/metanorma/standard_document/refs/reference_to_term.rb +0 -26
  465. data/lib/metanorma/standard_document/refs/reference_to_termbase.rb +0 -27
  466. data/lib/metanorma/standard_document/refs/standoc_locality_stack.rb +0 -24
  467. data/lib/metanorma/standard_document/refs/standoc_reference_to_citation_element.rb +0 -27
  468. data/lib/metanorma/standard_document/refs/standoc_reference_to_id_element.rb +0 -36
  469. data/lib/metanorma/standard_document/refs/xref_case_type.rb +0 -27
  470. data/lib/metanorma/standard_document/refs/xref_connective_type.rb +0 -27
  471. data/lib/metanorma/standard_document/refs/xref_target_type.rb +0 -25
  472. data/lib/metanorma/standard_document/refs.rb +0 -18
  473. data/lib/metanorma/standard_document/root.rb +0 -10
  474. data/lib/metanorma/standard_document/root_attributes.rb +0 -78
  475. data/lib/metanorma/standard_document/sections/abstract.rb +0 -19
  476. data/lib/metanorma/standard_document/sections/acknowledgements.rb +0 -19
  477. data/lib/metanorma/standard_document/sections/annex_section.rb +0 -69
  478. data/lib/metanorma/standard_document/sections/bibliography_section.rb +0 -20
  479. data/lib/metanorma/standard_document/sections/boilerplate_type.rb +0 -32
  480. data/lib/metanorma/standard_document/sections/clause_hierarchical_section.rb +0 -32
  481. data/lib/metanorma/standard_document/sections/clause_section.rb +0 -91
  482. data/lib/metanorma/standard_document/sections/colophon.rb +0 -16
  483. data/lib/metanorma/standard_document/sections/definition_section.rb +0 -72
  484. data/lib/metanorma/standard_document/sections/floating_section_title.rb +0 -23
  485. data/lib/metanorma/standard_document/sections/floating_title.rb +0 -27
  486. data/lib/metanorma/standard_document/sections/foreword.rb +0 -19
  487. data/lib/metanorma/standard_document/sections/introduction.rb +0 -20
  488. data/lib/metanorma/standard_document/sections/misc_container.rb +0 -31
  489. data/lib/metanorma/standard_document/sections/normative_type.rb +0 -29
  490. data/lib/metanorma/standard_document/sections/preface.rb +0 -36
  491. data/lib/metanorma/standard_document/sections/sections.rb +0 -47
  492. data/lib/metanorma/standard_document/sections/standard_content_section.rb +0 -41
  493. data/lib/metanorma/standard_document/sections/standard_hierarchical_section.rb +0 -30
  494. data/lib/metanorma/standard_document/sections/standard_references_section.rb +0 -74
  495. data/lib/metanorma/standard_document/sections/standard_section.rb +0 -39
  496. data/lib/metanorma/standard_document/sections/terms_section.rb +0 -61
  497. data/lib/metanorma/standard_document/sections.rb +0 -34
  498. data/lib/metanorma/standard_document/standard_document_type.rb +0 -15
  499. data/lib/metanorma/standard_document/terms/abbreviation_type.rb +0 -27
  500. data/lib/metanorma/standard_document/terms/concept.rb +0 -42
  501. data/lib/metanorma/standard_document/terms/definition_collection.rb +0 -24
  502. data/lib/metanorma/standard_document/terms/designation.rb +0 -31
  503. data/lib/metanorma/standard_document/terms/expression_designation.rb +0 -38
  504. data/lib/metanorma/standard_document/terms/expression_type.rb +0 -27
  505. data/lib/metanorma/standard_document/terms/grammar_gender.rb +0 -27
  506. data/lib/metanorma/standard_document/terms/grammar_info.rb +0 -36
  507. data/lib/metanorma/standard_document/terms/graphical_symbol_designation.rb +0 -25
  508. data/lib/metanorma/standard_document/terms/letter_symbol_designation.rb +0 -27
  509. data/lib/metanorma/standard_document/terms/non_verbal_representation.rb +0 -33
  510. data/lib/metanorma/standard_document/terms/related_term.rb +0 -31
  511. data/lib/metanorma/standard_document/terms/related_term_type.rb +0 -28
  512. data/lib/metanorma/standard_document/terms/term.rb +0 -66
  513. data/lib/metanorma/standard_document/terms/term_collection.rb +0 -24
  514. data/lib/metanorma/standard_document/terms/term_definition.rb +0 -29
  515. data/lib/metanorma/standard_document/terms/term_expression.rb +0 -20
  516. data/lib/metanorma/standard_document/terms/term_name_element.rb +0 -29
  517. data/lib/metanorma/standard_document/terms/term_source.rb +0 -29
  518. data/lib/metanorma/standard_document/terms/term_source_status.rb +0 -29
  519. data/lib/metanorma/standard_document/terms/term_source_type.rb +0 -21
  520. data/lib/metanorma/standard_document/terms/verbal_expression.rb +0 -35
  521. data/lib/metanorma/standard_document/terms.rb +0 -33
  522. data/lib/metanorma/standard_document.rb +0 -27
  523. data/lib/metanorma/un_document/blocks/un_admonition_block.rb +0 -86
  524. data/lib/metanorma/un_document/blocks.rb +0 -9
  525. data/lib/metanorma/un_document/metadata/un_bib_data_extension_type.rb +0 -10
  526. data/lib/metanorma/un_document/metadata/un_bibliographic_item.rb +0 -15
  527. data/lib/metanorma/un_document/metadata.rb +0 -12
  528. data/lib/metanorma/un_document/root.rb +0 -37
  529. data/lib/metanorma/un_document/sections/un_abstract_section.rb +0 -48
  530. data/lib/metanorma/un_document/sections/un_preface.rb +0 -40
  531. data/lib/metanorma/un_document/sections/un_sections.rb +0 -24
  532. data/lib/metanorma/un_document/sections.rb +0 -11
  533. data/lib/metanorma/un_document/un_text_element.rb +0 -116
  534. data/lib/metanorma/un_document.rb +0 -13
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module Lists
7
+ # The rendered list forms fmt-ul/fmt-ol: the presentation
8
+ # rendering of a list that deviates from a sequence of list
9
+ # items (e.g. rendered as a table). Present to the exclusion
10
+ # of any other child of the semantic list. Declared as a
11
+ # module and re-applied per class (lutaml inherits neither the
12
+ # attribute registry nor xml mappings).
13
+ module FmtListContract
14
+ module_function
15
+
16
+ def declare_attributes(base)
17
+ base.attribute :id, :string
18
+ base.attribute :anchor, :string
19
+ base.attribute :semx_id, :string
20
+ base.attribute :name,
21
+ Metanorma::Document::Components::Inline::NameWithIdElement
22
+ base.attribute :table,
23
+ "Metanorma::Document::Components::Tables::TableBlock",
24
+ collection: true
25
+ base.attribute :note,
26
+ Metanorma::Document::Components::Blocks::NoteBlock,
27
+ collection: true
28
+ base.attribute :text, :string, collection: true
29
+ base.attribute :semx,
30
+ "Metanorma::Document::Components::Inline::SemxElement",
31
+ collection: true
32
+ end
33
+
34
+ def apply_mapping(mapping)
35
+ mapping.mixed_content
36
+ mapping.map_attribute "id", to: :id
37
+ mapping.map_attribute "anchor", to: :anchor
38
+ mapping.map_attribute "semx-id", to: :semx_id
39
+ mapping.map_element "name", to: :name
40
+ mapping.map_element "table", to: :table
41
+ mapping.map_element "note", to: :note
42
+ mapping.map_content to: :text
43
+ mapping.map_element "semx", to: :semx
44
+ end
45
+ end
46
+
47
+ # Rendered counterpart of `<ul>`.
48
+ class FmtUlElement < Lutaml::Model::Serializable
49
+ include Metanorma::Document::Components::Inline::RenderedDisplay
50
+
51
+ FmtListContract.declare_attributes(self)
52
+
53
+ xml do
54
+ element "fmt-ul"
55
+ FmtListContract.apply_mapping(self)
56
+ end
57
+ end
58
+
59
+ # Rendered counterpart of `<ol>`.
60
+ class FmtOlElement < Lutaml::Model::Serializable
61
+ include Metanorma::Document::Components::Inline::RenderedDisplay
62
+
63
+ FmtListContract.declare_attributes(self)
64
+
65
+ xml do
66
+ element "fmt-ol"
67
+ FmtListContract.apply_mapping(self)
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -70,6 +70,9 @@ module Metanorma
70
70
  map_element "dl", to: :dl
71
71
  map_element "example", to: :example
72
72
  map_element "note", to: :note
73
+ # Term entries embed <termnote> (a note with an autonum label)
74
+ # inside list items; capture it through the note model.
75
+ map_element "termnote", to: :note
73
76
  map_element "quote", to: :quote
74
77
  map_element "table", to: :table
75
78
  map_element "ul", to: :unordered_lists
@@ -10,12 +10,13 @@ module Metanorma
10
10
  attribute :start, :string
11
11
  attribute :semx_id, :string
12
12
  attribute :displayorder, :integer
13
- attribute :display, :string
13
+ attribute :display_style, :string
14
14
  attribute :display_directives, :string
15
15
  attribute :class_attr, :string
16
16
  attribute :group, :string
17
17
  attribute :spacing, :string
18
18
  attribute :indent, :string
19
+ attribute :fmt_ol, "Metanorma::Document::Components::Lists::FmtOlElement"
19
20
 
20
21
  def json_type
21
22
  "ol"
@@ -33,13 +34,14 @@ module Metanorma
33
34
  map_attribute "type", to: :type
34
35
  map_attribute "semx-id", to: :semx_id
35
36
  map_attribute "displayorder", to: :displayorder
36
- map_attribute "display", to: :display
37
+ map_attribute "display", to: :display_style
37
38
  map_attribute "display-directives", to: :display_directives
38
39
  map_attribute "class", to: :class_attr, render_empty: true
39
40
  map_attribute "start", to: :start
40
41
  map_attribute "group", to: :group
41
42
  map_attribute "spacing", to: :spacing
42
43
  map_attribute "indent", to: :indent
44
+ map_element "fmt-ol", to: :fmt_ol
43
45
  end
44
46
  end
45
47
  end
@@ -14,6 +14,7 @@ module Metanorma
14
14
  attribute :indent, :string
15
15
  attribute :bare, :boolean
16
16
  attribute :json_type, :string
17
+ attribute :fmt_ul, "Metanorma::Document::Components::Lists::FmtUlElement"
17
18
 
18
19
  def json_type
19
20
  "ul"
@@ -34,6 +35,7 @@ module Metanorma
34
35
  map_attribute "spacing", to: :spacing
35
36
  map_attribute "indent", to: :indent
36
37
  map_attribute "bare", to: :bare
38
+ map_element "fmt-ul", to: :fmt_ul
37
39
  end
38
40
  end
39
41
  end
@@ -8,6 +8,8 @@ module Metanorma
8
8
  autoload :Definition, "#{__dir__}/lists/definition"
9
9
  autoload :DefinitionList, "#{__dir__}/lists/definition_list"
10
10
  autoload :DtElement, "#{__dir__}/lists/dt_element"
11
+ autoload :FmtUlElement, "#{__dir__}/lists/fmt_list_element"
12
+ autoload :FmtOlElement, "#{__dir__}/lists/fmt_list_element"
11
13
  autoload :List, "#{__dir__}/lists/list"
12
14
  autoload :ListItem, "#{__dir__}/lists/list_item"
13
15
  autoload :OrderedList, "#{__dir__}/lists/ordered_list"
@@ -14,6 +14,17 @@ module Metanorma
14
14
  collection: true
15
15
  attribute :ol, Metanorma::Document::Components::Lists::OrderedList,
16
16
  collection: true
17
+ attribute :table, Metanorma::Document::Components::Tables::TableBlock,
18
+ collection: true
19
+ attribute :note, Metanorma::Document::Components::Blocks::NoteBlock,
20
+ collection: true
21
+ attribute :dl, Metanorma::Document::Components::Lists::DefinitionList,
22
+ collection: true
23
+ attribute :formula,
24
+ Metanorma::Document::Components::AncillaryBlocks::FormulaBlock,
25
+ collection: true
26
+ attribute :bookmark, Metanorma::Document::Components::IdElements::Bookmark,
27
+ collection: true
17
28
  attribute :attribution, "Metanorma::Document::Components::Inline::AttributionElement"
18
29
  attribute :json_type, :string
19
30
 
@@ -36,6 +47,11 @@ module Metanorma
36
47
  map_element "p", to: :paragraphs
37
48
  map_element "ul", to: :ul
38
49
  map_element "ol", to: :ol
50
+ map_element "table", to: :table
51
+ map_element "note", to: :note
52
+ map_element "dl", to: :dl
53
+ map_element "formula", to: :formula
54
+ map_element "bookmark", to: :bookmark
39
55
  map_element "attribution", to: :attribution
40
56
  end
41
57
  end
@@ -20,7 +20,7 @@ module Metanorma
20
20
  # Identifier for the end of the text to which the comment applies.
21
21
  attribute :applies_to, :string
22
22
 
23
- attribute :display, :string
23
+ attribute :display_style, :string
24
24
 
25
25
  xml do
26
26
  element "review"
@@ -28,7 +28,7 @@ module Metanorma
28
28
  map_attribute "date", to: :date
29
29
  map_attribute "from", to: :applies_from
30
30
  map_attribute "to", to: :applies_to
31
- map_attribute "display", to: :display
31
+ map_attribute "display", to: :display_style
32
32
  end
33
33
  end
34
34
  end
@@ -22,6 +22,8 @@ module Metanorma
22
22
  # Inline elements
23
23
  attribute :em, Metanorma::Document::Components::Inline::EmRawElement,
24
24
  collection: true
25
+ attribute :ruby, Metanorma::Document::Components::TextElements::RubyElement,
26
+ collection: true
25
27
  attribute :strong, Metanorma::Document::Components::Inline::StrongRawElement,
26
28
  collection: true
27
29
  attribute :smallcap, Metanorma::Document::Components::Inline::SmallCapElement,
@@ -83,6 +85,14 @@ module Metanorma
83
85
  collection: true
84
86
  attribute :input, Metanorma::Document::Elements::Input,
85
87
  collection: true
88
+ attribute :passthrough, Metanorma::Document::Components::Blocks::Passthrough,
89
+ collection: true
90
+ attribute :date, Metanorma::Document::Components::Inline::DateElement,
91
+ collection: true
92
+ attribute :fmt_date, Metanorma::Document::Components::Inline::FmtDateElement,
93
+ collection: true
94
+ attribute :erefstack, Metanorma::Document::Components::Inline::ErefStack,
95
+ collection: true
86
96
 
87
97
  # JSON serialization attributes
88
98
  attribute :json_type, :string
@@ -110,6 +120,7 @@ module Metanorma
110
120
  map_attribute "displayorder", to: :displayorder
111
121
  map_content to: :text
112
122
  map_element "em", to: :em
123
+ map_element "ruby", to: :ruby
113
124
  map_element "strong", to: :strong
114
125
  map_element "smallcap", to: :smallcap
115
126
  map_element "sub", to: :sub
@@ -141,6 +152,10 @@ module Metanorma
141
152
  map_element "add", to: :add
142
153
  map_element "del", to: :del
143
154
  map_element "input", to: :input
155
+ map_element "passthrough", to: :passthrough
156
+ map_element "date", to: :date
157
+ map_element "fmt-date", to: :fmt_date
158
+ map_element "erefstack", to: :erefstack
144
159
  end
145
160
 
146
161
  def json_content
@@ -16,11 +16,17 @@ module Metanorma
16
16
  collection: true
17
17
  attribute :locality_stack, Metanorma::Document::Relaton::LocalityStack,
18
18
  collection: true
19
+ attribute :locality, Metanorma::Document::Relaton::BibItemLocality,
20
+ collection: true
19
21
  attribute :bib_item, Metanorma::Document::Components::BibData::BibliographicItem
20
22
  attribute :display_text, "Metanorma::Document::Components::Inline::DisplayTextElement"
23
+ # The origin's own rendered text (<origin>ISO 19101-1:2014</origin>)
24
+ attribute :content, :string, collection: true
21
25
 
22
26
  xml do
23
27
  element "citation"
28
+ mixed_content
29
+ map_content to: :content
24
30
  map_attribute "bibitemid", to: :bibitemid
25
31
  map_attribute "date", to: :date
26
32
  map_attribute "type", to: :type
@@ -28,6 +34,7 @@ module Metanorma
28
34
  map_element "bib-locality", to: :bib_locality
29
35
  map_element "bib-locality-stack", to: :bib_locality_stack
30
36
  map_element "localityStack", to: :locality_stack
37
+ map_element "locality", to: :locality
31
38
  map_element "bib-item", to: :bib_item
32
39
  map_element "display-text", to: :display_text
33
40
  end
@@ -10,6 +10,9 @@ module Metanorma
10
10
  attribute :type, :string
11
11
  attribute :origin, SourceOrigin
12
12
  attribute :modification, SourceModification
13
+ attribute :fmt_source,
14
+ "Metanorma::Document::Components::Inline::FmtSourceElement",
15
+ collection: true
13
16
 
14
17
  xml do
15
18
  element "source"
@@ -18,6 +21,7 @@ module Metanorma
18
21
  map_attribute "type", to: :type
19
22
  map_element "origin", to: :origin
20
23
  map_element "modification", to: :modification
24
+ map_element "fmt-source", to: :fmt_source
21
25
  end
22
26
  end
23
27
  end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ # The semantic vocabulary namespace (semantic__* elements under
7
+ # metanorma-extension/metanorma/source): the machine-readable
8
+ # layer flavors embed alongside the presentation tree. Element
9
+ # names are dynamic per flavor and document, so ONE recursive
10
+ # model with a catch-all element mapping serves the whole
11
+ # namespace (lutaml-model#903/#905); element_order preserves the
12
+ # mixed-content sequence and each child's original tag name for
13
+ # ordered rendering.
14
+ module Semantic
15
+ class Node < Lutaml::Model::Serializable
16
+ attribute :children,
17
+ "Metanorma::Document::Components::Semantic::Node",
18
+ collection: true
19
+
20
+ # Attributes actually consumed by rendering; the rest of the
21
+ # vocabulary's attribute surface drops at parse. sem_-prefixed
22
+ # names avoid collisions with the children attribute.
23
+ XML_ATTRIBUTES = {
24
+ "id" => :id, "target" => :sem_target, "citeas" => :citeas,
25
+ "bibitemid" => :bibitemid, "type" => :type_attr,
26
+ "language" => :sem_language, "script" => :sem_script,
27
+ "format" => :format, "alt" => :alt, "style" => :sem_style,
28
+ "display" => :display_style, "scope" => :scope, "role" => :sem_role,
29
+ "label" => :label, "number" => :sem_number, "value" => :sem_value,
30
+ "url" => :url, "href" => :href, "from" => :sem_from,
31
+ "prefix" => :prefix, "hidden" => :hidden, "obligation" => :obligation
32
+ }.freeze
33
+
34
+ XML_ATTRIBUTES.each_value { |attr| attribute attr, :string }
35
+
36
+ xml do
37
+ map_any_element to: :children
38
+ XML_ATTRIBUTES.each do |xml_name, attr|
39
+ map_attribute xml_name, to: attr
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module Semantic
7
+ autoload :Node, "metanorma/document/components/semantic/node"
8
+ end
9
+ end
10
+ end
11
+ end
@@ -9,6 +9,7 @@ module Metanorma
9
9
  xml do
10
10
  element "th"
11
11
  mixed_content
12
+ TableCellXmlMapping.apply(self)
12
13
  end
13
14
  end
14
15
  end
@@ -4,9 +4,68 @@ module Metanorma
4
4
  module Document
5
5
  module Components
6
6
  module Tables
7
+ # Shared XML mapping for TableCell and its <td>/<th> subclasses.
8
+ # lutaml-model does not inherit xml mappings into a subclass's
9
+ # `xml do` block — a bare redeclaration silently drops every
10
+ # parent map_element (the #51 root cause: stems inside cells
11
+ # parsed hollow). Each subclass applies this module after
12
+ # declaring its element name.
13
+ module TableCellXmlMapping
14
+ module_function
15
+
16
+ def apply(mapping)
17
+ mapping.map_attribute "id", to: :id
18
+ mapping.map_attribute "anchor", to: :anchor
19
+ mapping.map_attribute "colspan", to: :colspan
20
+ mapping.map_attribute "rowspan", to: :rowspan
21
+ mapping.map_attribute "align", to: :align
22
+ mapping.map_attribute "valign", to: :valign
23
+ mapping.map_attribute "semx-id", to: :semx_id
24
+ mapping.map_content to: :text
25
+ mapping.map_element "em", to: :em
26
+ mapping.map_element "ruby", to: :ruby
27
+ mapping.map_element "strong", to: :strong
28
+ mapping.map_element "tt", to: :tt
29
+ mapping.map_element "sub", to: :sub
30
+ mapping.map_element "sup", to: :sup
31
+ mapping.map_element "smallcap", to: :smallcap
32
+ mapping.map_element "br", to: :br
33
+ mapping.map_element "xref", to: :xref
34
+ mapping.map_element "eref", to: :eref
35
+ mapping.map_element "fmt-eref", to: :fmt_eref
36
+ mapping.map_element "link", to: :link
37
+ mapping.map_element "stem", to: :stem
38
+ mapping.map_element "fn", to: :fn
39
+ mapping.map_element "strike", to: :strike
40
+ mapping.map_element "underline", to: :underline
41
+ mapping.map_element "p", to: :p
42
+ mapping.map_element "dl", to: :dl
43
+ mapping.map_element "ul", to: :ul
44
+ mapping.map_element "ol", to: :ol
45
+ mapping.map_element "figure", to: :figure
46
+ mapping.map_element "formula", to: :formula
47
+ mapping.map_element "note", to: :note
48
+ mapping.map_element "example", to: :example
49
+ mapping.map_element "quote", to: :quote
50
+ mapping.map_element "sourcecode", to: :sourcecode
51
+ mapping.map_element "source", to: :source
52
+ mapping.map_element "table", to: :table
53
+ mapping.map_element "key", to: :key
54
+ mapping.map_element "fmt-stem", to: :fmt_stem
55
+ mapping.map_element "fmt-fn-label", to: :fmt_fn_label
56
+ mapping.map_element "semx", to: :semx
57
+ mapping.map_element "span", to: :span
58
+ mapping.map_element "bookmark", to: :bookmark
59
+ mapping.map_element "input", to: :input
60
+ mapping.map_element "fmt-annotation-start", to: :fmt_annotation_start
61
+ mapping.map_element "fmt-annotation-end", to: :fmt_annotation_end
62
+ end
63
+ end
64
+
7
65
  # Base class for table cells with common attributes and mixed content.
8
66
  class TableCell < Lutaml::Model::Serializable
9
67
  attribute :id, :string
68
+ attribute :anchor, :string
10
69
  attribute :colspan, :integer
11
70
  attribute :rowspan, :integer
12
71
  attribute :align, :string
@@ -16,6 +75,8 @@ module Metanorma
16
75
  # Inline elements
17
76
  attribute :em, Metanorma::Document::Components::Inline::EmRawElement,
18
77
  collection: true
78
+ attribute :ruby, Metanorma::Document::Components::TextElements::RubyElement,
79
+ collection: true
19
80
  attribute :strong, Metanorma::Document::Components::Inline::StrongRawElement,
20
81
  collection: true
21
82
  attribute :tt, Metanorma::Document::Components::Inline::TtElement,
@@ -31,6 +92,9 @@ module Metanorma
31
92
  collection: true
32
93
  attribute :eref, Metanorma::Document::Components::Inline::ErefElement,
33
94
  collection: true
95
+ attribute :fmt_eref,
96
+ Metanorma::Document::Components::Inline::FmtErefElement,
97
+ collection: true
34
98
  attribute :link, Metanorma::Document::Components::Inline::LinkElement,
35
99
  collection: true
36
100
  attribute :stem,
@@ -65,8 +129,11 @@ module Metanorma
65
129
  Metanorma::Document::Components::ReferenceElements::SourceElement,
66
130
  collection: true
67
131
 
68
- # Nested tables (table inside td/th)
69
- attribute :table, TableBlock,
132
+ # Nested tables (table inside td/th). String-typed: breaks the
133
+ # TableCell ⇄ TableBlock autoload cycle (cell → nested table →
134
+ # rows → cells).
135
+ attribute :table,
136
+ "Metanorma::Document::Components::Tables::TableBlock",
70
137
  collection: true
71
138
 
72
139
  # Key definitions inside table cells
@@ -93,48 +160,7 @@ module Metanorma
93
160
 
94
161
  xml do
95
162
  mixed_content
96
- map_attribute "id", to: :id
97
- map_attribute "colspan", to: :colspan
98
- map_attribute "rowspan", to: :rowspan
99
- map_attribute "align", to: :align
100
- map_attribute "valign", to: :valign
101
- map_attribute "semx-id", to: :semx_id
102
- map_content to: :text
103
- map_element "em", to: :em
104
- map_element "strong", to: :strong
105
- map_element "tt", to: :tt
106
- map_element "sub", to: :sub
107
- map_element "sup", to: :sup
108
- map_element "smallcap", to: :smallcap
109
- map_element "br", to: :br
110
- map_element "xref", to: :xref
111
- map_element "eref", to: :eref
112
- map_element "link", to: :link
113
- map_element "stem", to: :stem
114
- map_element "fn", to: :fn
115
- map_element "strike", to: :strike
116
- map_element "underline", to: :underline
117
- map_element "p", to: :p
118
- map_element "dl", to: :dl
119
- map_element "ul", to: :ul
120
- map_element "ol", to: :ol
121
- map_element "figure", to: :figure
122
- map_element "formula", to: :formula
123
- map_element "note", to: :note
124
- map_element "example", to: :example
125
- map_element "quote", to: :quote
126
- map_element "sourcecode", to: :sourcecode
127
- map_element "source", to: :source
128
- map_element "table", to: :table
129
- map_element "key", to: :key
130
- map_element "fmt-stem", to: :fmt_stem
131
- map_element "fmt-fn-label", to: :fmt_fn_label
132
- map_element "semx", to: :semx
133
- map_element "span", to: :span
134
- map_element "bookmark", to: :bookmark
135
- map_element "input", to: :input
136
- map_element "fmt-annotation-start", to: :fmt_annotation_start
137
- map_element "fmt-annotation-end", to: :fmt_annotation_end
163
+ TableCellXmlMapping.apply(self)
138
164
  end
139
165
  end
140
166
  end
@@ -9,6 +9,7 @@ module Metanorma
9
9
  xml do
10
10
  element "td"
11
11
  mixed_content
12
+ TableCellXmlMapping.apply(self)
12
13
  end
13
14
  end
14
15
  end
@@ -7,6 +7,7 @@ module Metanorma
7
7
  # Sequence of cells to be displayed as a row in a table.
8
8
  class TextTableRow < Lutaml::Model::Serializable
9
9
  attribute :id, :string
10
+ attribute :anchor, :string
10
11
  attribute :semx_id, :string
11
12
  attribute :td, TextTableCell, collection: true
12
13
  attribute :th, HeaderTableCell, collection: true
@@ -14,6 +15,7 @@ module Metanorma
14
15
  xml do
15
16
  element "tr"
16
17
  map_attribute "id", to: :id
18
+ map_attribute "anchor", to: :anchor
17
19
  map_attribute "semx-id", to: :semx_id
18
20
  map_element "td", to: :td
19
21
  map_element "th", to: :th
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module TextElements
7
+ # Ruby annotation giving information other than pronunciation
8
+ # of the annotated text (standoc renaming of BasicDoc
9
+ # `annotation`). The annotation value travels in the `value`
10
+ # attribute.
11
+ class RubyAnnotationElement < Lutaml::Model::Serializable
12
+ attribute :value, :string
13
+ attribute :language, :string
14
+ attribute :script, :string
15
+
16
+ xml do
17
+ element "ruby-annotation"
18
+ map_attribute "value", to: :value
19
+ map_attribute "language", to: :language
20
+ map_attribute "script", to: :script
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -4,17 +4,52 @@ module Metanorma
4
4
  module Document
5
5
  module Components
6
6
  module TextElements
7
- # Text with Ruby annotations in East Asian languages. Corresponds to HTML `ruby`.
8
- class RubyElement < TextElement
9
- attribute :ruby_paren, Metanorma::Document::Components::DataTypes::LocalizedString,
10
- collection: true
11
- attribute :ruby_text, Metanorma::Document::Components::DataTypes::LocalizedString,
7
+ # Text with Ruby annotations in East Asian languages.
8
+ # Corresponds to HTML `ruby`.
9
+ #
10
+ # Semantic form: a leading pronunciation or semantic
11
+ # annotation, then the annotated text, which may itself nest
12
+ # further ruby.
13
+ #
14
+ # Presentation form: `rb` (the base text) and `rt` (the
15
+ # rendered annotation).
16
+ class RubyElement < Lutaml::Model::Serializable
17
+ attribute :pronunciation,
18
+ "Metanorma::Document::Components::TextElements::RubyPronunciationElement"
19
+ attribute :annotation,
20
+ "Metanorma::Document::Components::TextElements::RubyAnnotationElement"
21
+ attribute :ruby_base,
22
+ "Metanorma::Document::Components::TextElements::RbElement"
23
+ attribute :ruby_text, :string, collection: true
24
+ attribute :ruby,
25
+ "Metanorma::Document::Components::TextElements::RubyElement",
12
26
  collection: true
27
+ attribute :text, :string, collection: true
13
28
 
14
29
  xml do
15
30
  element "ruby"
16
- map_element "rp", to: :ruby_paren
31
+ mixed_content
32
+ map_element "ruby-pronunciation", to: :pronunciation
33
+ map_element "ruby-annotation", to: :annotation
34
+ map_element "rb", to: :ruby_base
17
35
  map_element "rt", to: :ruby_text
36
+ map_element "ruby", to: :ruby
37
+ map_content to: :text
38
+ end
39
+ end
40
+
41
+ # The base text of a presentation-form ruby annotation.
42
+ class RbElement < Lutaml::Model::Serializable
43
+ attribute :text, :string, collection: true
44
+ attribute :ruby,
45
+ "Metanorma::Document::Components::TextElements::RubyElement",
46
+ collection: true
47
+
48
+ xml do
49
+ element "rb"
50
+ mixed_content
51
+ map_content to: :text
52
+ map_element "ruby", to: :ruby
18
53
  end
19
54
  end
20
55
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module TextElements
7
+ # Ruby annotation giving the pronunciation of the annotated
8
+ # text (standoc renaming of BasicDoc `pronunciation`). The
9
+ # annotation value travels in the `value` attribute.
10
+ class RubyPronunciationElement < Lutaml::Model::Serializable
11
+ attribute :value, :string
12
+ attribute :language, :string
13
+ attribute :script, :string
14
+
15
+ xml do
16
+ element "ruby-pronunciation"
17
+ map_attribute "value", to: :value
18
+ map_attribute "language", to: :language
19
+ map_attribute "script", to: :script
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -10,6 +10,8 @@ module Metanorma
10
10
  attribute :text, :string, collection: true
11
11
  attribute :em, "Metanorma::Document::Components::Inline::EmRawElement",
12
12
  collection: true
13
+ attribute :ruby, "Metanorma::Document::Components::TextElements::RubyElement",
14
+ collection: true
13
15
  attribute :strong, "Metanorma::Document::Components::Inline::StrongRawElement",
14
16
  collection: true
15
17
  attribute :eref, "Metanorma::Document::Components::Inline::ErefElement",
@@ -22,6 +24,7 @@ module Metanorma
22
24
  mixed_content
23
25
  map_content to: :text
24
26
  map_element "em", to: :em
27
+ map_element "ruby", to: :ruby
25
28
  map_element "strong", to: :strong
26
29
  map_element "eref", to: :eref
27
30
  map_element "link", to: :link