metanorma-document 0.2.0

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 (682) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +21 -0
  3. data/.github/workflows/release.yml +25 -0
  4. data/.github/workflows/roundtrip-samples.yml +132 -0
  5. data/.gitignore +19 -0
  6. data/.rspec +3 -0
  7. data/.rubocop.yml +22 -0
  8. data/.rubocop_todo.yml +166 -0
  9. data/CHANGELOG.md +21 -0
  10. data/Gemfile +26 -0
  11. data/LICENSE.txt +25 -0
  12. data/README.adoc +176 -0
  13. data/Rakefile +14 -0
  14. data/bin/console +15 -0
  15. data/bin/setup +8 -0
  16. data/data/javascripts/components/mn-code-copy.js +36 -0
  17. data/data/javascripts/components/mn-glossary.js +103 -0
  18. data/data/javascripts/components/mn-index-panel.js +33 -0
  19. data/data/javascripts/components/mn-lightbox.js +18 -0
  20. data/data/javascripts/components/mn-search.js +212 -0
  21. data/data/javascripts/components/mn-shortcuts.js +83 -0
  22. data/data/javascripts/components/mn-stem-dropdown.js +42 -0
  23. data/data/javascripts/components/mn-toc.js +182 -0
  24. data/data/javascripts/core/mn-navigation.js +84 -0
  25. data/data/javascripts/core/mn-reader.js +38 -0
  26. data/data/javascripts/core/mn-reveal.js +36 -0
  27. data/data/javascripts/core/mn-scroll.js +87 -0
  28. data/data/javascripts/core/mn-theme.js +140 -0
  29. data/data/javascripts/search.js +203 -0
  30. data/data/logos/bipm-logo.svg +1 -0
  31. data/data/logos/iec-logo.svg +1 -0
  32. data/data/logos/iho-logo.svg +555 -0
  33. data/data/logos/iso-logo.svg +1 -0
  34. data/data/logos/itu-logo.svg +1 -0
  35. data/data/logos/metanorma-logo.svg +41 -0
  36. data/data/logos/ogc-logo.svg +1 -0
  37. data/data/logos/pdfa-logo.svg +95 -0
  38. data/data/stylesheets/base/_dark.css +193 -0
  39. data/data/stylesheets/base/_layout.css +112 -0
  40. data/data/stylesheets/base/_print.css +46 -0
  41. data/data/stylesheets/base/_reset.css +55 -0
  42. data/data/stylesheets/base/_transitions.css +77 -0
  43. data/data/stylesheets/base/_typography.css +89 -0
  44. data/data/stylesheets/components/admonition.css +19 -0
  45. data/data/stylesheets/components/bibliography.css +18 -0
  46. data/data/stylesheets/components/cover.css +205 -0
  47. data/data/stylesheets/components/example.css +20 -0
  48. data/data/stylesheets/components/figure.css +30 -0
  49. data/data/stylesheets/components/footer.css +24 -0
  50. data/data/stylesheets/components/footnote.css +41 -0
  51. data/data/stylesheets/components/formula.css +25 -0
  52. data/data/stylesheets/components/glossary.css +61 -0
  53. data/data/stylesheets/components/header.css +149 -0
  54. data/data/stylesheets/components/index.css +118 -0
  55. data/data/stylesheets/components/inline.css +88 -0
  56. data/data/stylesheets/components/note.css +24 -0
  57. data/data/stylesheets/components/progress.css +40 -0
  58. data/data/stylesheets/components/search.css +45 -0
  59. data/data/stylesheets/components/section.css +26 -0
  60. data/data/stylesheets/components/shortcuts.css +71 -0
  61. data/data/stylesheets/components/sourcecode.css +30 -0
  62. data/data/stylesheets/components/table.css +57 -0
  63. data/data/stylesheets/components/term.css +45 -0
  64. data/data/stylesheets/components/toc.css +162 -0
  65. data/lib/data/dist/iso_document/frontend/assets/index-mwzbzmnK.js +22 -0
  66. data/lib/data/dist/iso_document/frontend/assets/index-pGvKTNid.css +1 -0
  67. data/lib/data/dist/iso_document/frontend/assets/iso-red.svg +53 -0
  68. data/lib/data/dist/iso_document/frontend/index.html +13 -0
  69. data/lib/metanorma/basic_document/ancillary_blocks/example_block.rb +58 -0
  70. data/lib/metanorma/basic_document/ancillary_blocks/figure_block.rb +64 -0
  71. data/lib/metanorma/basic_document/ancillary_blocks/formula_block.rb +38 -0
  72. data/lib/metanorma/basic_document/ancillary_blocks/literal_block.rb +26 -0
  73. data/lib/metanorma/basic_document/ancillary_blocks/sourcecode_block.rb +57 -0
  74. data/lib/metanorma/basic_document/ancillary_blocks/subfigure.rb +18 -0
  75. data/lib/metanorma/basic_document/ancillary_blocks.rb +15 -0
  76. data/lib/metanorma/basic_document/bib_data/bib_data.rb +18 -0
  77. data/lib/metanorma/basic_document/bib_data/bib_data_extension_type.rb +17 -0
  78. data/lib/metanorma/basic_document/bib_data/bibliographic_item.rb +93 -0
  79. data/lib/metanorma/basic_document/bib_data/document_type.rb +21 -0
  80. data/lib/metanorma/basic_document/bib_data.rb +14 -0
  81. data/lib/metanorma/basic_document/blocks/basic_block.rb +13 -0
  82. data/lib/metanorma/basic_document/blocks/basic_block_no_notes.rb +21 -0
  83. data/lib/metanorma/basic_document/blocks/note_block.rb +13 -0
  84. data/lib/metanorma/basic_document/blocks.rb +32 -0
  85. data/lib/metanorma/basic_document/change/attribute_change_action.rb +19 -0
  86. data/lib/metanorma/basic_document/change/attribute_modify.rb +19 -0
  87. data/lib/metanorma/basic_document/change/change.rb +25 -0
  88. data/lib/metanorma/basic_document/change/change_set.rb +20 -0
  89. data/lib/metanorma/basic_document/change/content_action.rb +21 -0
  90. data/lib/metanorma/basic_document/change/content_change.rb +17 -0
  91. data/lib/metanorma/basic_document/change/content_change_action.rb +28 -0
  92. data/lib/metanorma/basic_document/change/content_modify.rb +18 -0
  93. data/lib/metanorma/basic_document/change/node_change.rb +16 -0
  94. data/lib/metanorma/basic_document/change/node_delete.rb +17 -0
  95. data/lib/metanorma/basic_document/change/node_insert.rb +18 -0
  96. data/lib/metanorma/basic_document/change/node_move.rb +20 -0
  97. data/lib/metanorma/basic_document/change/unique_identifier.rb +17 -0
  98. data/lib/metanorma/basic_document/change.rb +23 -0
  99. data/lib/metanorma/basic_document/contrib_metadata/contribution_element_metadata.rb +22 -0
  100. data/lib/metanorma/basic_document/contrib_metadata/hash.rb +19 -0
  101. data/lib/metanorma/basic_document/contrib_metadata/integrity_value.rb +15 -0
  102. data/lib/metanorma/basic_document/contrib_metadata/iso10118_oid.rb +17 -0
  103. data/lib/metanorma/basic_document/contrib_metadata/iso14888_oid.rb +17 -0
  104. data/lib/metanorma/basic_document/contrib_metadata/signature.rb +21 -0
  105. data/lib/metanorma/basic_document/contrib_metadata.rb +16 -0
  106. data/lib/metanorma/basic_document/data_types/formatted_string.rb +17 -0
  107. data/lib/metanorma/basic_document/data_types/iso15924_code.rb +17 -0
  108. data/lib/metanorma/basic_document/data_types/iso3166_code.rb +17 -0
  109. data/lib/metanorma/basic_document/data_types/iso639_code.rb +17 -0
  110. data/lib/metanorma/basic_document/data_types/iso8601_date_time.rb +17 -0
  111. data/lib/metanorma/basic_document/data_types/localized_string.rb +23 -0
  112. data/lib/metanorma/basic_document/data_types/string_format.rb +22 -0
  113. data/lib/metanorma/basic_document/data_types/uri.rb +17 -0
  114. data/lib/metanorma/basic_document/data_types.rb +16 -0
  115. data/lib/metanorma/basic_document/empty_elements/basic_element.rb +18 -0
  116. data/lib/metanorma/basic_document/empty_elements/horizontal_rule_element.rb +14 -0
  117. data/lib/metanorma/basic_document/empty_elements/index_element.rb +24 -0
  118. data/lib/metanorma/basic_document/empty_elements/line_break_element.rb +14 -0
  119. data/lib/metanorma/basic_document/empty_elements/page_break_element.rb +15 -0
  120. data/lib/metanorma/basic_document/empty_elements.rb +16 -0
  121. data/lib/metanorma/basic_document/id_elements/alt_source.rb +21 -0
  122. data/lib/metanorma/basic_document/id_elements/audio.rb +18 -0
  123. data/lib/metanorma/basic_document/id_elements/bookmark.rb +17 -0
  124. data/lib/metanorma/basic_document/id_elements/id_element.rb +19 -0
  125. data/lib/metanorma/basic_document/id_elements/image.rb +19 -0
  126. data/lib/metanorma/basic_document/id_elements/media.rb +39 -0
  127. data/lib/metanorma/basic_document/id_elements/media_type.rb +17 -0
  128. data/lib/metanorma/basic_document/id_elements/video.rb +22 -0
  129. data/lib/metanorma/basic_document/id_elements.rb +16 -0
  130. data/lib/metanorma/basic_document/lists/definition.rb +21 -0
  131. data/lib/metanorma/basic_document/lists/definition_list.rb +18 -0
  132. data/lib/metanorma/basic_document/lists/list.rb +17 -0
  133. data/lib/metanorma/basic_document/lists/ordered_list.rb +19 -0
  134. data/lib/metanorma/basic_document/lists/ordered_list_type.rb +21 -0
  135. data/lib/metanorma/basic_document/lists/unordered_list.rb +14 -0
  136. data/lib/metanorma/basic_document/lists.rb +14 -0
  137. data/lib/metanorma/basic_document/multi_paragraph/admonition_block.rb +36 -0
  138. data/lib/metanorma/basic_document/multi_paragraph/admonition_type.rb +21 -0
  139. data/lib/metanorma/basic_document/multi_paragraph/paragraphs_block.rb +19 -0
  140. data/lib/metanorma/basic_document/multi_paragraph/quote_block.rb +26 -0
  141. data/lib/metanorma/basic_document/multi_paragraph/review_block.rb +32 -0
  142. data/lib/metanorma/basic_document/multi_paragraph.rb +16 -0
  143. data/lib/metanorma/basic_document/paragraphs/paragraph_block.rb +26 -0
  144. data/lib/metanorma/basic_document/paragraphs/paragraph_with_footnote.rb +21 -0
  145. data/lib/metanorma/basic_document/paragraphs/text_alignment.rb +21 -0
  146. data/lib/metanorma/basic_document/paragraphs.rb +12 -0
  147. data/lib/metanorma/basic_document/reference_elements/callout.rb +21 -0
  148. data/lib/metanorma/basic_document/reference_elements/citation.rb +25 -0
  149. data/lib/metanorma/basic_document/reference_elements/footnote.rb +17 -0
  150. data/lib/metanorma/basic_document/reference_elements/index_xref_element.rb +25 -0
  151. data/lib/metanorma/basic_document/reference_elements/reference_element.rb +22 -0
  152. data/lib/metanorma/basic_document/reference_elements/reference_format.rb +21 -0
  153. data/lib/metanorma/basic_document/reference_elements/reference_to_citation_element.rb +20 -0
  154. data/lib/metanorma/basic_document/reference_elements/reference_to_id_element.rb +17 -0
  155. data/lib/metanorma/basic_document/reference_elements/reference_to_id_with_paragraph_element.rb +19 -0
  156. data/lib/metanorma/basic_document/reference_elements/reference_to_link_element.rb +17 -0
  157. data/lib/metanorma/basic_document/reference_elements.rb +25 -0
  158. data/lib/metanorma/basic_document/sections/basic_section.rb +38 -0
  159. data/lib/metanorma/basic_document/sections/content_section.rb +18 -0
  160. data/lib/metanorma/basic_document/sections/hierarchical_section.rb +18 -0
  161. data/lib/metanorma/basic_document/sections/references_section.rb +19 -0
  162. data/lib/metanorma/basic_document/sections.rb +14 -0
  163. data/lib/metanorma/basic_document/tables/paragraph_table_cell.rb +18 -0
  164. data/lib/metanorma/basic_document/tables/table_block.rb +37 -0
  165. data/lib/metanorma/basic_document/tables/table_cell.rb +23 -0
  166. data/lib/metanorma/basic_document/tables/text_alignment.rb +21 -0
  167. data/lib/metanorma/basic_document/tables/text_table_cell.rb +18 -0
  168. data/lib/metanorma/basic_document/tables/text_table_row.rb +21 -0
  169. data/lib/metanorma/basic_document/tables/vertical_alignment.rb +21 -0
  170. data/lib/metanorma/basic_document/tables.rb +16 -0
  171. data/lib/metanorma/basic_document/text_elements/asciiml.rb +17 -0
  172. data/lib/metanorma/basic_document/text_elements/emphasis_element.rb +14 -0
  173. data/lib/metanorma/basic_document/text_elements/keyword_element.rb +14 -0
  174. data/lib/metanorma/basic_document/text_elements/latex.rb +17 -0
  175. data/lib/metanorma/basic_document/text_elements/mathml.rb +17 -0
  176. data/lib/metanorma/basic_document/text_elements/monospace_element.rb +14 -0
  177. data/lib/metanorma/basic_document/text_elements/ruby_element.rb +21 -0
  178. data/lib/metanorma/basic_document/text_elements/small_caps_element.rb +14 -0
  179. data/lib/metanorma/basic_document/text_elements/stem_element.rb +19 -0
  180. data/lib/metanorma/basic_document/text_elements/stem_type.rb +17 -0
  181. data/lib/metanorma/basic_document/text_elements/stem_value.rb +17 -0
  182. data/lib/metanorma/basic_document/text_elements/strike_element.rb +14 -0
  183. data/lib/metanorma/basic_document/text_elements/strong_element.rb +14 -0
  184. data/lib/metanorma/basic_document/text_elements/subscript_element.rb +14 -0
  185. data/lib/metanorma/basic_document/text_elements/superscript_element.rb +14 -0
  186. data/lib/metanorma/basic_document/text_elements/text_element.rb +18 -0
  187. data/lib/metanorma/basic_document/text_elements/text_element_type.rb +20 -0
  188. data/lib/metanorma/basic_document/text_elements/underline_element.rb +13 -0
  189. data/lib/metanorma/basic_document/text_elements.rb +33 -0
  190. data/lib/metanorma/basic_document.rb +23 -0
  191. data/lib/metanorma/bipm_document/metadata/bipm_bib_data_extension_type.rb +20 -0
  192. data/lib/metanorma/bipm_document/metadata/bipm_bibliographic_item.rb +31 -0
  193. data/lib/metanorma/bipm_document/metadata/bipm_structured_identifier.rb +21 -0
  194. data/lib/metanorma/bipm_document/metadata.rb +15 -0
  195. data/lib/metanorma/bipm_document/root.rb +65 -0
  196. data/lib/metanorma/bipm_document.rb +10 -0
  197. data/lib/metanorma/cc_document/metadata/cc_bib_data_extension_type.rb +12 -0
  198. data/lib/metanorma/cc_document/metadata/cc_bibliographic_item.rb +17 -0
  199. data/lib/metanorma/cc_document/metadata.rb +11 -0
  200. data/lib/metanorma/cc_document/root.rb +65 -0
  201. data/lib/metanorma/cc_document.rb +10 -0
  202. data/lib/metanorma/collection/directive.rb +18 -0
  203. data/lib/metanorma/collection/doc_container.rb +18 -0
  204. data/lib/metanorma/collection/entry.rb +33 -0
  205. data/lib/metanorma/collection/root.rb +31 -0
  206. data/lib/metanorma/collection.rb +12 -0
  207. data/lib/metanorma/document/components/ancillary_blocks/example_block.rb +124 -0
  208. data/lib/metanorma/document/components/ancillary_blocks/figure_block.rb +113 -0
  209. data/lib/metanorma/document/components/ancillary_blocks/formula_block.rb +85 -0
  210. data/lib/metanorma/document/components/ancillary_blocks/key_element.rb +26 -0
  211. data/lib/metanorma/document/components/ancillary_blocks/literal_block.rb +32 -0
  212. data/lib/metanorma/document/components/ancillary_blocks/sourcecode_block.rb +123 -0
  213. data/lib/metanorma/document/components/ancillary_blocks/subfigure.rb +41 -0
  214. data/lib/metanorma/document/components/ancillary_blocks.rb +18 -0
  215. data/lib/metanorma/document/components/bib_data/bib_data.rb +67 -0
  216. data/lib/metanorma/document/components/bib_data/bib_data_extension_type.rb +19 -0
  217. data/lib/metanorma/document/components/bib_data/bibliographic_item.rb +107 -0
  218. data/lib/metanorma/document/components/bib_data/document_type.rb +23 -0
  219. data/lib/metanorma/document/components/bib_data.rb +15 -0
  220. data/lib/metanorma/document/components/blocks/basic_block.rb +19 -0
  221. data/lib/metanorma/document/components/blocks/basic_block_no_notes.rb +22 -0
  222. data/lib/metanorma/document/components/blocks/note_block.rb +79 -0
  223. data/lib/metanorma/document/components/blocks.rb +13 -0
  224. data/lib/metanorma/document/components/change/attribute_change_action.rb +21 -0
  225. data/lib/metanorma/document/components/change/attribute_modify.rb +20 -0
  226. data/lib/metanorma/document/components/change/change.rb +27 -0
  227. data/lib/metanorma/document/components/change/change_set.rb +21 -0
  228. data/lib/metanorma/document/components/change/content_action.rb +23 -0
  229. data/lib/metanorma/document/components/change/content_change.rb +19 -0
  230. data/lib/metanorma/document/components/change/content_change_action.rb +30 -0
  231. data/lib/metanorma/document/components/change/content_modify.rb +19 -0
  232. data/lib/metanorma/document/components/change/node_change.rb +18 -0
  233. data/lib/metanorma/document/components/change/node_delete.rb +19 -0
  234. data/lib/metanorma/document/components/change/node_insert.rb +20 -0
  235. data/lib/metanorma/document/components/change/node_move.rb +22 -0
  236. data/lib/metanorma/document/components/change/unique_identifier.rb +19 -0
  237. data/lib/metanorma/document/components/change.rb +24 -0
  238. data/lib/metanorma/document/components/contrib_metadata/contribution_element_metadata.rb +23 -0
  239. data/lib/metanorma/document/components/contrib_metadata/hash.rb +21 -0
  240. data/lib/metanorma/document/components/contrib_metadata/integrity_value.rb +17 -0
  241. data/lib/metanorma/document/components/contrib_metadata/iso10118_oid.rb +19 -0
  242. data/lib/metanorma/document/components/contrib_metadata/iso14888_oid.rb +19 -0
  243. data/lib/metanorma/document/components/contrib_metadata/signature.rb +23 -0
  244. data/lib/metanorma/document/components/contrib_metadata.rb +17 -0
  245. data/lib/metanorma/document/components/data_types/formatted_string.rb +95 -0
  246. data/lib/metanorma/document/components/data_types/iso15924_code.rb +19 -0
  247. data/lib/metanorma/document/components/data_types/iso3166_code.rb +19 -0
  248. data/lib/metanorma/document/components/data_types/iso639_code.rb +19 -0
  249. data/lib/metanorma/document/components/data_types/iso8601_date_time.rb +19 -0
  250. data/lib/metanorma/document/components/data_types/localized_string.rb +29 -0
  251. data/lib/metanorma/document/components/data_types/string_format.rb +24 -0
  252. data/lib/metanorma/document/components/data_types/uri.rb +19 -0
  253. data/lib/metanorma/document/components/data_types.rb +18 -0
  254. data/lib/metanorma/document/components/empty_elements/basic_element.rb +20 -0
  255. data/lib/metanorma/document/components/empty_elements/horizontal_rule_element.rb +16 -0
  256. data/lib/metanorma/document/components/empty_elements/index_element.rb +26 -0
  257. data/lib/metanorma/document/components/empty_elements/line_break_element.rb +16 -0
  258. data/lib/metanorma/document/components/empty_elements/page_break_element.rb +20 -0
  259. data/lib/metanorma/document/components/empty_elements.rb +18 -0
  260. data/lib/metanorma/document/components/id_elements/alt_source.rb +23 -0
  261. data/lib/metanorma/document/components/id_elements/audio.rb +19 -0
  262. data/lib/metanorma/document/components/id_elements/bookmark.rb +24 -0
  263. data/lib/metanorma/document/components/id_elements/id_element.rb +21 -0
  264. data/lib/metanorma/document/components/id_elements/image.rb +23 -0
  265. data/lib/metanorma/document/components/id_elements/media.rb +41 -0
  266. data/lib/metanorma/document/components/id_elements/media_type.rb +19 -0
  267. data/lib/metanorma/document/components/id_elements/video.rb +23 -0
  268. data/lib/metanorma/document/components/id_elements.rb +18 -0
  269. data/lib/metanorma/document/components/inline/asciimath_element.rb +16 -0
  270. data/lib/metanorma/document/components/inline/attribution_element.rb +17 -0
  271. data/lib/metanorma/document/components/inline/bcp14_element.rb +16 -0
  272. data/lib/metanorma/document/components/inline/biblio_tag_element.rb +23 -0
  273. data/lib/metanorma/document/components/inline/br_element.rb +13 -0
  274. data/lib/metanorma/document/components/inline/comma_element.rb +13 -0
  275. data/lib/metanorma/document/components/inline/concept_element.rb +22 -0
  276. data/lib/metanorma/document/components/inline/display_text_element.rb +37 -0
  277. data/lib/metanorma/document/components/inline/em_raw_element.rb +23 -0
  278. data/lib/metanorma/document/components/inline/enum_comma_element.rb +13 -0
  279. data/lib/metanorma/document/components/inline/eref_element.rb +35 -0
  280. data/lib/metanorma/document/components/inline/fmt_admitted_element.rb +17 -0
  281. data/lib/metanorma/document/components/inline/fmt_annotation_body_element.rb +38 -0
  282. data/lib/metanorma/document/components/inline/fmt_annotation_end_element.rb +26 -0
  283. data/lib/metanorma/document/components/inline/fmt_annotation_start_element.rb +26 -0
  284. data/lib/metanorma/document/components/inline/fmt_concept_element.rb +23 -0
  285. data/lib/metanorma/document/components/inline/fmt_definition_element.rb +18 -0
  286. data/lib/metanorma/document/components/inline/fmt_fn_body_element.rb +22 -0
  287. data/lib/metanorma/document/components/inline/fmt_fn_label_element.rb +23 -0
  288. data/lib/metanorma/document/components/inline/fmt_footnote_container_element.rb +16 -0
  289. data/lib/metanorma/document/components/inline/fmt_identifier_element.rb +16 -0
  290. data/lib/metanorma/document/components/inline/fmt_name_element.rb +23 -0
  291. data/lib/metanorma/document/components/inline/fmt_preferred_element.rb +17 -0
  292. data/lib/metanorma/document/components/inline/fmt_sourcecode_element.rb +29 -0
  293. data/lib/metanorma/document/components/inline/fmt_stem_element.rb +18 -0
  294. data/lib/metanorma/document/components/inline/fmt_termsource_element.rb +20 -0
  295. data/lib/metanorma/document/components/inline/fmt_title_element.rb +29 -0
  296. data/lib/metanorma/document/components/inline/fmt_xref_element.rb +25 -0
  297. data/lib/metanorma/document/components/inline/fmt_xref_label_element.rb +23 -0
  298. data/lib/metanorma/document/components/inline/fn_element.rb +31 -0
  299. data/lib/metanorma/document/components/inline/link_element.rb +27 -0
  300. data/lib/metanorma/document/components/inline/localized_string_element.rb +31 -0
  301. data/lib/metanorma/document/components/inline/localized_strings_element.rb +16 -0
  302. data/lib/metanorma/document/components/inline/math_element.rb +16 -0
  303. data/lib/metanorma/document/components/inline/name_with_id_element.rb +20 -0
  304. data/lib/metanorma/document/components/inline/semx_child_element.rb +25 -0
  305. data/lib/metanorma/document/components/inline/semx_element.rb +117 -0
  306. data/lib/metanorma/document/components/inline/small_cap_element.rb +16 -0
  307. data/lib/metanorma/document/components/inline/span_element.rb +37 -0
  308. data/lib/metanorma/document/components/inline/stem_inline_element.rb +24 -0
  309. data/lib/metanorma/document/components/inline/strong_raw_element.rb +25 -0
  310. data/lib/metanorma/document/components/inline/sub_element.rb +15 -0
  311. data/lib/metanorma/document/components/inline/sup_element.rb +26 -0
  312. data/lib/metanorma/document/components/inline/tab_element.rb +13 -0
  313. data/lib/metanorma/document/components/inline/title_with_annotation_element.rb +51 -0
  314. data/lib/metanorma/document/components/inline/tt_element.rb +20 -0
  315. data/lib/metanorma/document/components/inline/variant_title_element.rb +27 -0
  316. data/lib/metanorma/document/components/inline/xref_element.rb +24 -0
  317. data/lib/metanorma/document/components/inline.rb +100 -0
  318. data/lib/metanorma/document/components/lists/dd_element.rb +58 -0
  319. data/lib/metanorma/document/components/lists/definition.rb +32 -0
  320. data/lib/metanorma/document/components/lists/definition_list.rb +44 -0
  321. data/lib/metanorma/document/components/lists/dt_element.rb +71 -0
  322. data/lib/metanorma/document/components/lists/list.rb +25 -0
  323. data/lib/metanorma/document/components/lists/list_item.rb +102 -0
  324. data/lib/metanorma/document/components/lists/ordered_list.rb +42 -0
  325. data/lib/metanorma/document/components/lists/ordered_list_type.rb +23 -0
  326. data/lib/metanorma/document/components/lists/unordered_list.rb +34 -0
  327. data/lib/metanorma/document/components/lists.rb +19 -0
  328. data/lib/metanorma/document/components/multi_paragraph/admonition_block.rb +62 -0
  329. data/lib/metanorma/document/components/multi_paragraph/admonition_type.rb +23 -0
  330. data/lib/metanorma/document/components/multi_paragraph/paragraphs_block.rb +21 -0
  331. data/lib/metanorma/document/components/multi_paragraph/quote_block.rb +74 -0
  332. data/lib/metanorma/document/components/multi_paragraph/review_block.rb +34 -0
  333. data/lib/metanorma/document/components/multi_paragraph.rb +15 -0
  334. data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +155 -0
  335. data/lib/metanorma/document/components/paragraphs/paragraph_with_footnote.rb +24 -0
  336. data/lib/metanorma/document/components/paragraphs/text_alignment.rb +23 -0
  337. data/lib/metanorma/document/components/paragraphs.rb +14 -0
  338. data/lib/metanorma/document/components/reference_elements/callout.rb +25 -0
  339. data/lib/metanorma/document/components/reference_elements/citation.rb +38 -0
  340. data/lib/metanorma/document/components/reference_elements/footnote.rb +19 -0
  341. data/lib/metanorma/document/components/reference_elements/index_xref_element.rb +27 -0
  342. data/lib/metanorma/document/components/reference_elements/reference_element.rb +24 -0
  343. data/lib/metanorma/document/components/reference_elements/reference_format.rb +23 -0
  344. data/lib/metanorma/document/components/reference_elements/reference_to_citation_element.rb +33 -0
  345. data/lib/metanorma/document/components/reference_elements/reference_to_id_element.rb +19 -0
  346. data/lib/metanorma/document/components/reference_elements/reference_to_id_with_paragraph_element.rb +21 -0
  347. data/lib/metanorma/document/components/reference_elements/reference_to_link_element.rb +19 -0
  348. data/lib/metanorma/document/components/reference_elements.rb +27 -0
  349. data/lib/metanorma/document/components/sections/basic_section.rb +37 -0
  350. data/lib/metanorma/document/components/sections/content_section.rb +20 -0
  351. data/lib/metanorma/document/components/sections/hierarchical_section.rb +19 -0
  352. data/lib/metanorma/document/components/sections/references_section.rb +25 -0
  353. data/lib/metanorma/document/components/sections.rb +15 -0
  354. data/lib/metanorma/document/components/tables/header_table_cell.rb +17 -0
  355. data/lib/metanorma/document/components/tables/paragraph_table_cell.rb +20 -0
  356. data/lib/metanorma/document/components/tables/table_block.rb +99 -0
  357. data/lib/metanorma/document/components/tables/table_cell.rb +139 -0
  358. data/lib/metanorma/document/components/tables/table_section.rb +42 -0
  359. data/lib/metanorma/document/components/tables/text_alignment.rb +23 -0
  360. data/lib/metanorma/document/components/tables/text_table_cell.rb +17 -0
  361. data/lib/metanorma/document/components/tables/text_table_row.rb +30 -0
  362. data/lib/metanorma/document/components/tables/vertical_alignment.rb +23 -0
  363. data/lib/metanorma/document/components/tables.rb +22 -0
  364. data/lib/metanorma/document/components/text_elements/asciiml.rb +19 -0
  365. data/lib/metanorma/document/components/text_elements/emphasis_element.rb +16 -0
  366. data/lib/metanorma/document/components/text_elements/keyword_element.rb +16 -0
  367. data/lib/metanorma/document/components/text_elements/latex.rb +19 -0
  368. data/lib/metanorma/document/components/text_elements/latexmath_element.rb +19 -0
  369. data/lib/metanorma/document/components/text_elements/monospace_element.rb +16 -0
  370. data/lib/metanorma/document/components/text_elements/ruby_element.rb +23 -0
  371. data/lib/metanorma/document/components/text_elements/small_caps_element.rb +16 -0
  372. data/lib/metanorma/document/components/text_elements/stem_element.rb +34 -0
  373. data/lib/metanorma/document/components/text_elements/stem_type.rb +23 -0
  374. data/lib/metanorma/document/components/text_elements/stem_value.rb +19 -0
  375. data/lib/metanorma/document/components/text_elements/strike_element.rb +33 -0
  376. data/lib/metanorma/document/components/text_elements/strong_element.rb +16 -0
  377. data/lib/metanorma/document/components/text_elements/subscript_element.rb +16 -0
  378. data/lib/metanorma/document/components/text_elements/superscript_element.rb +16 -0
  379. data/lib/metanorma/document/components/text_elements/text_element.rb +20 -0
  380. data/lib/metanorma/document/components/text_elements/text_element_type.rb +21 -0
  381. data/lib/metanorma/document/components/text_elements/underline_element.rb +33 -0
  382. data/lib/metanorma/document/components/text_elements.rb +31 -0
  383. data/lib/metanorma/document/components.rb +27 -0
  384. data/lib/metanorma/document/data_types.rb +11 -0
  385. data/lib/metanorma/document/relaton/address.rb +39 -0
  386. data/lib/metanorma/document/relaton/affiliation.rb +22 -0
  387. data/lib/metanorma/document/relaton/bib_item_locality.rb +21 -0
  388. data/lib/metanorma/document/relaton/bib_item_size.rb +19 -0
  389. data/lib/metanorma/document/relaton/bib_item_size_type.rb +21 -0
  390. data/lib/metanorma/document/relaton/bib_item_type.rb +25 -0
  391. data/lib/metanorma/document/relaton/bibliographic_date.rb +27 -0
  392. data/lib/metanorma/document/relaton/bibliographic_date_type.rb +22 -0
  393. data/lib/metanorma/document/relaton/contact_method.rb +22 -0
  394. data/lib/metanorma/document/relaton/contribution_info.rb +21 -0
  395. data/lib/metanorma/document/relaton/contributor.rb +15 -0
  396. data/lib/metanorma/document/relaton/contributor_role.rb +23 -0
  397. data/lib/metanorma/document/relaton/copyright_association.rb +32 -0
  398. data/lib/metanorma/document/relaton/date_time.rb +19 -0
  399. data/lib/metanorma/document/relaton/document_identifier.rb +25 -0
  400. data/lib/metanorma/document/relaton/document_relation.rb +26 -0
  401. data/lib/metanorma/document/relaton/document_relation_type.rb +31 -0
  402. data/lib/metanorma/document/relaton/document_status.rb +26 -0
  403. data/lib/metanorma/document/relaton/edition.rb +21 -0
  404. data/lib/metanorma/document/relaton/full_name.rb +34 -0
  405. data/lib/metanorma/document/relaton/iso4217_code.rb +17 -0
  406. data/lib/metanorma/document/relaton/iso8601_date.rb +17 -0
  407. data/lib/metanorma/document/relaton/keyword_type.rb +23 -0
  408. data/lib/metanorma/document/relaton/locality_stack.rb +19 -0
  409. data/lib/metanorma/document/relaton/localized_name.rb +22 -0
  410. data/lib/metanorma/document/relaton/medium_type.rb +26 -0
  411. data/lib/metanorma/document/relaton/org_identifier.rb +20 -0
  412. data/lib/metanorma/document/relaton/org_subdivision.rb +28 -0
  413. data/lib/metanorma/document/relaton/org_subdivision_identifier.rb +20 -0
  414. data/lib/metanorma/document/relaton/organization.rb +48 -0
  415. data/lib/metanorma/document/relaton/person.rb +28 -0
  416. data/lib/metanorma/document/relaton/person_identifier.rb +18 -0
  417. data/lib/metanorma/document/relaton/personal_identifier_type.rb +21 -0
  418. data/lib/metanorma/document/relaton/phone.rb +18 -0
  419. data/lib/metanorma/document/relaton/place_type.rb +36 -0
  420. data/lib/metanorma/document/relaton/price_type.rb +18 -0
  421. data/lib/metanorma/document/relaton/region_type.rb +20 -0
  422. data/lib/metanorma/document/relaton/relaton_collection.rb +25 -0
  423. data/lib/metanorma/document/relaton/series_type.rb +36 -0
  424. data/lib/metanorma/document/relaton/series_type_type.rb +21 -0
  425. data/lib/metanorma/document/relaton/specific_locality_type.rb +25 -0
  426. data/lib/metanorma/document/relaton/title_type.rb +21 -0
  427. data/lib/metanorma/document/relaton/typed_note.rb +25 -0
  428. data/lib/metanorma/document/relaton/typed_title_string.rb +50 -0
  429. data/lib/metanorma/document/relaton/typed_uri.rb +18 -0
  430. data/lib/metanorma/document/relaton/validity_type.rb +22 -0
  431. data/lib/metanorma/document/relaton/variant_full_name.rb +18 -0
  432. data/lib/metanorma/document/relaton/variant_org_name.rb +18 -0
  433. data/lib/metanorma/document/relaton/version_info.rb +19 -0
  434. data/lib/metanorma/document/relaton/vocab_id_type.rb +22 -0
  435. data/lib/metanorma/document/relaton.rb +64 -0
  436. data/lib/metanorma/document/root.rb +14 -0
  437. data/lib/metanorma/document/version.rb +8 -0
  438. data/lib/metanorma/document.rb +54 -0
  439. data/lib/metanorma/html/asset_pipeline.rb +100 -0
  440. data/lib/metanorma/html/base_renderer.rb +1610 -0
  441. data/lib/metanorma/html/bipm_renderer.rb +145 -0
  442. data/lib/metanorma/html/cc_renderer.rb +55 -0
  443. data/lib/metanorma/html/component/base.rb +63 -0
  444. data/lib/metanorma/html/component/footnote_collector.rb +57 -0
  445. data/lib/metanorma/html/component/index_section.rb +74 -0
  446. data/lib/metanorma/html/component/index_term_collector.rb +100 -0
  447. data/lib/metanorma/html/component.rb +12 -0
  448. data/lib/metanorma/html/component_registry.rb +37 -0
  449. data/lib/metanorma/html/drops/footnote_drop.rb +26 -0
  450. data/lib/metanorma/html/drops.rb +9 -0
  451. data/lib/metanorma/html/generator.rb +114 -0
  452. data/lib/metanorma/html/icc_renderer.rb +49 -0
  453. data/lib/metanorma/html/iec_renderer.rb +54 -0
  454. data/lib/metanorma/html/ieee_renderer.rb +55 -0
  455. data/lib/metanorma/html/ietf_renderer.rb +58 -0
  456. data/lib/metanorma/html/iho_renderer.rb +56 -0
  457. data/lib/metanorma/html/iso_renderer.rb +821 -0
  458. data/lib/metanorma/html/itu_renderer.rb +55 -0
  459. data/lib/metanorma/html/ogc_renderer.rb +86 -0
  460. data/lib/metanorma/html/oiml_renderer.rb +55 -0
  461. data/lib/metanorma/html/pdfa_renderer.rb +51 -0
  462. data/lib/metanorma/html/ribose_renderer.rb +55 -0
  463. data/lib/metanorma/html/standard_renderer.rb +535 -0
  464. data/lib/metanorma/html/templates/_cover.html.liquid +11 -0
  465. data/lib/metanorma/html/templates/_doc_title.html.liquid +3 -0
  466. data/lib/metanorma/html/templates/_footer.html.liquid +8 -0
  467. data/lib/metanorma/html/templates/_footnotes.html.liquid +11 -0
  468. data/lib/metanorma/html/templates/_header.html.liquid +65 -0
  469. data/lib/metanorma/html/templates/_iso_cover.html.liquid +31 -0
  470. data/lib/metanorma/html/templates/_iso_doc_title.html.liquid +3 -0
  471. data/lib/metanorma/html/templates/document.html.liquid +40 -0
  472. data/lib/metanorma/html/theme.rb +196 -0
  473. data/lib/metanorma/html/whitespace_patch.rb +47 -0
  474. data/lib/metanorma/html.rb +29 -0
  475. data/lib/metanorma/iec_document/root.rb +66 -0
  476. data/lib/metanorma/iec_document.rb +10 -0
  477. data/lib/metanorma/ieee_document/metadata/ieee_bib_data_extension_type.rb +18 -0
  478. data/lib/metanorma/ieee_document/metadata/ieee_bibliographic_item.rb +20 -0
  479. data/lib/metanorma/ieee_document/metadata/ieee_structured_identifier.rb +25 -0
  480. data/lib/metanorma/ieee_document/metadata.rb +14 -0
  481. data/lib/metanorma/ieee_document/root.rb +65 -0
  482. data/lib/metanorma/ieee_document.rb +11 -0
  483. data/lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb +58 -0
  484. data/lib/metanorma/ietf_document/metadata/ietf_bibliographic_item.rb +53 -0
  485. data/lib/metanorma/ietf_document/metadata/ietf_editorial_group.rb +17 -0
  486. data/lib/metanorma/ietf_document/metadata.rb +14 -0
  487. data/lib/metanorma/ietf_document/root.rb +66 -0
  488. data/lib/metanorma/ietf_document/sections.rb +31 -0
  489. data/lib/metanorma/ietf_document.rb +10 -0
  490. data/lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb +25 -0
  491. data/lib/metanorma/iho_document/metadata/iho_bibliographic_item.rb +20 -0
  492. data/lib/metanorma/iho_document/metadata/iho_editorial_group.rb +19 -0
  493. data/lib/metanorma/iho_document/metadata/iho_series.rb +22 -0
  494. data/lib/metanorma/iho_document/metadata/iho_sub_group.rb +18 -0
  495. data/lib/metanorma/iho_document/metadata.rb +15 -0
  496. data/lib/metanorma/iho_document/root.rb +65 -0
  497. data/lib/metanorma/iho_document.rb +11 -0
  498. data/lib/metanorma/iso_document/annotation_container.rb +16 -0
  499. data/lib/metanorma/iso_document/blocks/iso_admonition_block.rb +27 -0
  500. data/lib/metanorma/iso_document/blocks/iso_admonition_type.rb +25 -0
  501. data/lib/metanorma/iso_document/blocks.rb +12 -0
  502. data/lib/metanorma/iso_document/boilerplate.rb +17 -0
  503. data/lib/metanorma/iso_document/metadata/abstract_title.rb +36 -0
  504. data/lib/metanorma/iso_document/metadata/doc_identifier.rb +26 -0
  505. data/lib/metanorma/iso_document/metadata/ics.rb +19 -0
  506. data/lib/metanorma/iso_document/metadata/iec_document_category.rb +23 -0
  507. data/lib/metanorma/iso_document/metadata/iso_bib_data_extension_type.rb +86 -0
  508. data/lib/metanorma/iso_document/metadata/iso_bibliographic_item.rb +175 -0
  509. data/lib/metanorma/iso_document/metadata/iso_document_id.rb +46 -0
  510. data/lib/metanorma/iso_document/metadata/iso_document_stage_codes.rb +26 -0
  511. data/lib/metanorma/iso_document/metadata/iso_document_status.rb +56 -0
  512. data/lib/metanorma/iso_document/metadata/iso_document_substage_codes.rb +26 -0
  513. data/lib/metanorma/iso_document/metadata/iso_document_type.rb +25 -0
  514. data/lib/metanorma/iso_document/metadata/iso_localized_title.rb +57 -0
  515. data/lib/metanorma/iso_document/metadata/iso_project_group.rb +32 -0
  516. data/lib/metanorma/iso_document/metadata/iso_sub_group.rb +38 -0
  517. data/lib/metanorma/iso_document/metadata/metanorma_extension.rb +20 -0
  518. data/lib/metanorma/iso_document/metadata/structured_identifier.rb +33 -0
  519. data/lib/metanorma/iso_document/metadata/title_amd.rb +12 -0
  520. data/lib/metanorma/iso_document/metadata/title_amendment_prefix.rb +12 -0
  521. data/lib/metanorma/iso_document/metadata/title_collection.rb +46 -0
  522. data/lib/metanorma/iso_document/metadata/title_full.rb +12 -0
  523. data/lib/metanorma/iso_document/metadata/title_intro.rb +12 -0
  524. data/lib/metanorma/iso_document/metadata/title_main.rb +12 -0
  525. data/lib/metanorma/iso_document/metadata/title_part.rb +12 -0
  526. data/lib/metanorma/iso_document/metadata/title_part_prefix.rb +12 -0
  527. data/lib/metanorma/iso_document/metadata.rb +39 -0
  528. data/lib/metanorma/iso_document/raw_paragraph.rb +23 -0
  529. data/lib/metanorma/iso_document/root.rb +92 -0
  530. data/lib/metanorma/iso_document/sections/colophon.rb +18 -0
  531. data/lib/metanorma/iso_document/sections/iso_abstract_section.rb +15 -0
  532. data/lib/metanorma/iso_document/sections/iso_amendment_clause.rb +24 -0
  533. data/lib/metanorma/iso_document/sections/iso_annex_section.rb +172 -0
  534. data/lib/metanorma/iso_document/sections/iso_clause_section.rb +206 -0
  535. data/lib/metanorma/iso_document/sections/iso_foreword_section.rb +118 -0
  536. data/lib/metanorma/iso_document/sections/iso_preface.rb +43 -0
  537. data/lib/metanorma/iso_document/sections/iso_sections.rb +61 -0
  538. data/lib/metanorma/iso_document/sections/iso_terms_section.rb +88 -0
  539. data/lib/metanorma/iso_document/sections.rb +17 -0
  540. data/lib/metanorma/iso_document/terms/iso_term.rb +84 -0
  541. data/lib/metanorma/iso_document/terms/iso_term_collection.rb +20 -0
  542. data/lib/metanorma/iso_document/terms/term_definition.rb +30 -0
  543. data/lib/metanorma/iso_document/terms/term_designation.rb +44 -0
  544. data/lib/metanorma/iso_document/terms/term_example.rb +39 -0
  545. data/lib/metanorma/iso_document/terms/term_expression.rb +55 -0
  546. data/lib/metanorma/iso_document/terms/term_note.rb +41 -0
  547. data/lib/metanorma/iso_document/terms/term_origin.rb +26 -0
  548. data/lib/metanorma/iso_document/terms/term_source.rb +49 -0
  549. data/lib/metanorma/iso_document/terms/verbal_definition.rb +41 -0
  550. data/lib/metanorma/iso_document/terms.rb +20 -0
  551. data/lib/metanorma/iso_document.rb +16 -0
  552. data/lib/metanorma/itu_document/metadata/itu_bib_data_extension_type.rb +63 -0
  553. data/lib/metanorma/itu_document/metadata/itu_bibliographic_item.rb +21 -0
  554. data/lib/metanorma/itu_document/metadata/itu_series.rb +22 -0
  555. data/lib/metanorma/itu_document/metadata/itu_structured_identifier.rb +23 -0
  556. data/lib/metanorma/itu_document/metadata.rb +19 -0
  557. data/lib/metanorma/itu_document/root.rb +65 -0
  558. data/lib/metanorma/itu_document.rb +10 -0
  559. data/lib/metanorma/ogc_document/metadata/ogc_bib_data_extension_type.rb +12 -0
  560. data/lib/metanorma/ogc_document/metadata/ogc_bibliographic_item.rb +19 -0
  561. data/lib/metanorma/ogc_document/metadata.rb +12 -0
  562. data/lib/metanorma/ogc_document/root.rb +65 -0
  563. data/lib/metanorma/ogc_document.rb +10 -0
  564. data/lib/metanorma/oiml_document/root.rb +66 -0
  565. data/lib/metanorma/oiml_document.rb +10 -0
  566. data/lib/metanorma/ribose_document/metadata/ribose_bib_data_extension_type.rb +20 -0
  567. data/lib/metanorma/ribose_document/metadata/ribose_bibliographic_item.rb +18 -0
  568. data/lib/metanorma/ribose_document/metadata.rb +12 -0
  569. data/lib/metanorma/ribose_document/root.rb +68 -0
  570. data/lib/metanorma/ribose_document.rb +10 -0
  571. data/lib/metanorma/standard_document/blocks/amend_block.rb +50 -0
  572. data/lib/metanorma/standard_document/blocks/amend_content_block.rb +17 -0
  573. data/lib/metanorma/standard_document/blocks/auto_number.rb +20 -0
  574. data/lib/metanorma/standard_document/blocks/block_source.rb +45 -0
  575. data/lib/metanorma/standard_document/blocks/change_type.rb +21 -0
  576. data/lib/metanorma/standard_document/blocks/element_name.rb +22 -0
  577. data/lib/metanorma/standard_document/blocks/form.rb +38 -0
  578. data/lib/metanorma/standard_document/blocks/image_map_area_type.rb +24 -0
  579. data/lib/metanorma/standard_document/blocks/image_map_area_type_type.rb +21 -0
  580. data/lib/metanorma/standard_document/blocks/image_map_block.rb +32 -0
  581. data/lib/metanorma/standard_document/blocks/image_map_coords.rb +19 -0
  582. data/lib/metanorma/standard_document/blocks/image_map_radius.rb +19 -0
  583. data/lib/metanorma/standard_document/blocks/multilingual_rendering_type.rb +21 -0
  584. data/lib/metanorma/standard_document/blocks/passthrough.rb +20 -0
  585. data/lib/metanorma/standard_document/blocks/requirement_model.rb +165 -0
  586. data/lib/metanorma/standard_document/blocks/standard_admonition_block.rb +32 -0
  587. data/lib/metanorma/standard_document/blocks/standard_block.rb +28 -0
  588. data/lib/metanorma/standard_document/blocks/standard_block_no_notes.rb +34 -0
  589. data/lib/metanorma/standard_document/blocks/standard_example_block.rb +30 -0
  590. data/lib/metanorma/standard_document/blocks/standard_figure_block.rb +32 -0
  591. data/lib/metanorma/standard_document/blocks/standard_formula_block.rb +30 -0
  592. data/lib/metanorma/standard_document/blocks/standard_note_block.rb +64 -0
  593. data/lib/metanorma/standard_document/blocks/standard_paragraph_block.rb +25 -0
  594. data/lib/metanorma/standard_document/blocks/standard_quote_block.rb +29 -0
  595. data/lib/metanorma/standard_document/blocks/standard_sourcecode_block.rb +32 -0
  596. data/lib/metanorma/standard_document/blocks/standard_table_block.rb +39 -0
  597. data/lib/metanorma/standard_document/blocks/svg_map_block.rb +23 -0
  598. data/lib/metanorma/standard_document/blocks/svg_target_type.rb +20 -0
  599. data/lib/metanorma/standard_document/blocks/table_col.rb +16 -0
  600. data/lib/metanorma/standard_document/blocks/to_c.rb +17 -0
  601. data/lib/metanorma/standard_document/blocks.rb +60 -0
  602. data/lib/metanorma/standard_document/elements/add.rb +19 -0
  603. data/lib/metanorma/standard_document/elements/del.rb +19 -0
  604. data/lib/metanorma/standard_document/elements/form_input.rb +27 -0
  605. data/lib/metanorma/standard_document/elements/input.rb +33 -0
  606. data/lib/metanorma/standard_document/elements/input_type.rb +27 -0
  607. data/lib/metanorma/standard_document/elements/label.rb +19 -0
  608. data/lib/metanorma/standard_document/elements/option.rb +27 -0
  609. data/lib/metanorma/standard_document/elements/orientation_type.rb +27 -0
  610. data/lib/metanorma/standard_document/elements/select.rb +32 -0
  611. data/lib/metanorma/standard_document/elements/standard_page_break_element.rb +22 -0
  612. data/lib/metanorma/standard_document/elements/textarea.rb +25 -0
  613. data/lib/metanorma/standard_document/elements.rb +20 -0
  614. data/lib/metanorma/standard_document/lists/standard_definition.rb +24 -0
  615. data/lib/metanorma/standard_document/lists/standard_definition_list.rb +30 -0
  616. data/lib/metanorma/standard_document/lists/standard_definition_term.rb +27 -0
  617. data/lib/metanorma/standard_document/lists/standard_unordered_list.rb +28 -0
  618. data/lib/metanorma/standard_document/lists/unordered_checkable_list_item.rb +26 -0
  619. data/lib/metanorma/standard_document/lists.rb +17 -0
  620. data/lib/metanorma/standard_document/metadata/editorial_group_type.rb +25 -0
  621. data/lib/metanorma/standard_document/metadata/ics_type.rb +26 -0
  622. data/lib/metanorma/standard_document/metadata/standard_bib_data.rb +25 -0
  623. data/lib/metanorma/standard_document/metadata/standard_bib_data_extension_type.rb +37 -0
  624. data/lib/metanorma/standard_document/metadata/structured_identifier_type.rb +48 -0
  625. data/lib/metanorma/standard_document/metadata/technical_committee_type.rb +27 -0
  626. data/lib/metanorma/standard_document/metadata.rb +17 -0
  627. data/lib/metanorma/standard_document/namespace.rb +11 -0
  628. data/lib/metanorma/standard_document/refs/reference_to_term.rb +25 -0
  629. data/lib/metanorma/standard_document/refs/reference_to_termbase.rb +27 -0
  630. data/lib/metanorma/standard_document/refs/standoc_locality_stack.rb +24 -0
  631. data/lib/metanorma/standard_document/refs/standoc_reference_to_citation_element.rb +27 -0
  632. data/lib/metanorma/standard_document/refs/standoc_reference_to_id_element.rb +36 -0
  633. data/lib/metanorma/standard_document/refs/xref_case_type.rb +27 -0
  634. data/lib/metanorma/standard_document/refs/xref_connective_type.rb +27 -0
  635. data/lib/metanorma/standard_document/refs/xref_target_type.rb +25 -0
  636. data/lib/metanorma/standard_document/refs.rb +18 -0
  637. data/lib/metanorma/standard_document/root.rb +10 -0
  638. data/lib/metanorma/standard_document/sections/abstract.rb +21 -0
  639. data/lib/metanorma/standard_document/sections/acknowledgements.rb +21 -0
  640. data/lib/metanorma/standard_document/sections/annex_section.rb +32 -0
  641. data/lib/metanorma/standard_document/sections/bibliography_section.rb +21 -0
  642. data/lib/metanorma/standard_document/sections/boilerplate_type.rb +32 -0
  643. data/lib/metanorma/standard_document/sections/clause_hierarchical_section.rb +32 -0
  644. data/lib/metanorma/standard_document/sections/clause_section.rb +29 -0
  645. data/lib/metanorma/standard_document/sections/definition_section.rb +75 -0
  646. data/lib/metanorma/standard_document/sections/floating_title.rb +27 -0
  647. data/lib/metanorma/standard_document/sections/foreword.rb +21 -0
  648. data/lib/metanorma/standard_document/sections/introduction.rb +23 -0
  649. data/lib/metanorma/standard_document/sections/misc_container.rb +26 -0
  650. data/lib/metanorma/standard_document/sections/normative_type.rb +29 -0
  651. data/lib/metanorma/standard_document/sections/standard_content_section.rb +27 -0
  652. data/lib/metanorma/standard_document/sections/standard_hierarchical_section.rb +30 -0
  653. data/lib/metanorma/standard_document/sections/standard_references_section.rb +74 -0
  654. data/lib/metanorma/standard_document/sections/standard_section.rb +39 -0
  655. data/lib/metanorma/standard_document/sections/terms_section.rb +29 -0
  656. data/lib/metanorma/standard_document/sections.rb +30 -0
  657. data/lib/metanorma/standard_document/standard_document_type.rb +15 -0
  658. data/lib/metanorma/standard_document/terms/abbreviation_type.rb +27 -0
  659. data/lib/metanorma/standard_document/terms/concept.rb +42 -0
  660. data/lib/metanorma/standard_document/terms/definition_collection.rb +24 -0
  661. data/lib/metanorma/standard_document/terms/designation.rb +31 -0
  662. data/lib/metanorma/standard_document/terms/expression_designation.rb +38 -0
  663. data/lib/metanorma/standard_document/terms/expression_type.rb +27 -0
  664. data/lib/metanorma/standard_document/terms/grammar_gender.rb +27 -0
  665. data/lib/metanorma/standard_document/terms/grammar_info.rb +36 -0
  666. data/lib/metanorma/standard_document/terms/graphical_symbol_designation.rb +25 -0
  667. data/lib/metanorma/standard_document/terms/letter_symbol_designation.rb +27 -0
  668. data/lib/metanorma/standard_document/terms/non_verbal_representation.rb +33 -0
  669. data/lib/metanorma/standard_document/terms/related_term.rb +31 -0
  670. data/lib/metanorma/standard_document/terms/related_term_type.rb +28 -0
  671. data/lib/metanorma/standard_document/terms/term.rb +66 -0
  672. data/lib/metanorma/standard_document/terms/term_collection.rb +24 -0
  673. data/lib/metanorma/standard_document/terms/term_definition.rb +29 -0
  674. data/lib/metanorma/standard_document/terms/term_source.rb +29 -0
  675. data/lib/metanorma/standard_document/terms/term_source_status.rb +29 -0
  676. data/lib/metanorma/standard_document/terms/term_source_type.rb +21 -0
  677. data/lib/metanorma/standard_document/terms/verbal_expression.rb +35 -0
  678. data/lib/metanorma/standard_document/terms.rb +31 -0
  679. data/lib/metanorma/standard_document.rb +19 -0
  680. data/metanorma-document.gemspec +35 -0
  681. data/tasks/roundtrip_samples.rake +535 -0
  682. metadata +743 -0
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module AncillaryBlocks
7
+ # Block containing a mathematical expression or other formulas.
8
+ class FormulaBlock < Metanorma::Document::Components::Blocks::BasicBlockNoNotes
9
+ # The content of the formula, as a mathematical expression.
10
+ attribute :stem, Metanorma::Document::Components::TextElements::StemElement
11
+
12
+ # The block should be excluded from any automatic numbering of blocks of this class in the document.
13
+ attribute :unnumbered, :boolean
14
+
15
+ # Define a subsequence for numbering of this block; e.g. if this block would be numbered
16
+ # as 7, but it has a subsequence value of XYZ, this block, and all consecutive blocks
17
+ # of the same class and with the same subsequence value, will be numbered consecutively
18
+ # with the same number and in a subsequence: 7a, 7b, 7c etc.
19
+ attribute :subsequence, :string
20
+
21
+ # Indication that the formula is to be labelled as an Inequality, if inequalities are differentiated
22
+ # from equations.
23
+ attribute :inequality, :boolean
24
+
25
+ attribute :anchor, :string
26
+ attribute :semx_id, :string
27
+ attribute :autonum, :string
28
+ attribute :displayorder, :integer
29
+
30
+ # A definitions list defining any symbols used in the formula.
31
+ attribute :dl, Metanorma::Document::Components::Lists::DefinitionList
32
+
33
+ # The caption of the block.
34
+ attribute :name, Metanorma::Document::Components::Inline::NameWithIdElement
35
+
36
+ # Key definitions for formula variables
37
+ attribute :key, KeyElement
38
+
39
+ # Presentation-specific elements
40
+ attribute :fmt_stem, Metanorma::Document::Components::Inline::FmtStemElement
41
+ attribute :fmt_name, Metanorma::Document::Components::Inline::FmtNameElement
42
+ attribute :fmt_xref_label,
43
+ Metanorma::Document::Components::Inline::FmtXrefLabelElement, collection: true
44
+ attribute :p, Metanorma::Document::Components::Paragraphs::ParagraphBlock,
45
+ collection: true
46
+ attribute :fmt_footnote_container, Metanorma::Document::Components::Inline::FmtFootnoteContainerElement,
47
+ collection: true
48
+
49
+ attribute :json_type, :string
50
+
51
+ def json_type
52
+ "formula"
53
+ end
54
+
55
+ json do
56
+ map "type", to: :json_type
57
+ map "id", to: :id
58
+ map "stem", to: :stem
59
+ end
60
+
61
+ xml do
62
+ element "formula"
63
+ map_attribute "id", to: :id
64
+ map_attribute "anchor", to: :anchor
65
+ map_attribute "semx-id", to: :semx_id
66
+ map_attribute "autonum", to: :autonum
67
+ map_attribute "displayorder", to: :displayorder
68
+ map_element "stem", to: :stem
69
+ map_attribute "unnumbered", to: :unnumbered
70
+ map_attribute "subsequence", to: :subsequence
71
+ map_attribute "inequality", to: :inequality
72
+ map_element "dl", to: :dl
73
+ map_element "name", to: :name
74
+ map_element "key", to: :key
75
+ map_element "fmt-stem", to: :fmt_stem
76
+ map_element "fmt-name", to: :fmt_name
77
+ map_element "fmt-xref-label", to: :fmt_xref_label
78
+ map_element "p", to: :p
79
+ map_element "fmt-footnote-container", to: :fmt_footnote_container
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module AncillaryBlocks
7
+ # Key definitions for formula or figure variables.
8
+ class KeyElement < Lutaml::Model::Serializable
9
+ attribute :class_attr, :string
10
+ attribute :name, Metanorma::Document::Components::Inline::NameWithIdElement
11
+ attribute :dl, Metanorma::Document::Components::Lists::DefinitionList
12
+ attribute :p, Metanorma::Document::Components::Paragraphs::ParagraphBlock,
13
+ collection: true
14
+
15
+ xml do
16
+ element "key"
17
+ map_attribute "class", to: :class_attr
18
+ map_element "name", to: :name
19
+ map_element "dl", to: :dl
20
+ map_element "p", to: :p
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module AncillaryBlocks
7
+ # Pre-formatted blocks are wrappers for text to be rendered with fixed-width typeface, and preserving
8
+ # spaces including line breaks. They are intended for a restricted number of functions, most typically
9
+ # ASCII Art (which is still in prominent use in some standards documents), and computer output. In
10
+ # most cases, Sourcecode blocks are more appropriate in markup, as it is more clearly motivated
11
+ # semantically.
12
+ class LiteralBlock < Lutaml::Model::Serializable
13
+ attribute :id, :string
14
+ attribute :alt, :string
15
+ attribute :align, :string
16
+ attribute :name, Metanorma::Document::Components::TextElements::TextElement,
17
+ collection: true
18
+ attribute :content, :string
19
+
20
+ xml do
21
+ element "pre"
22
+ map_attribute "id", to: :id
23
+ map_attribute "alt", to: :alt
24
+ map_attribute "align", to: :align
25
+ map_element "name", to: :name
26
+ map_content to: :content
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,123 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module AncillaryBlocks
7
+ # Body of sourcecode block, containing code text with embedded callout elements.
8
+ # Uses map_all_content to preserve mixed content.
9
+ class SourcecodeBody < Lutaml::Model::Serializable
10
+ attribute :content, :string
11
+
12
+ xml do
13
+ element "body"
14
+ map_all_content to: :content
15
+ end
16
+ end
17
+
18
+ # Callout annotation in sourcecode, containing id, anchor, and paragraphs.
19
+ class CalloutAnnotation < Lutaml::Model::Serializable
20
+ attribute :id, :string
21
+ attribute :anchor, :string
22
+ attribute :semx_id, :string
23
+ attribute :original_id, :string
24
+ attribute :p, Metanorma::Document::Components::Paragraphs::ParagraphBlock,
25
+ collection: true
26
+
27
+ xml do
28
+ element "callout-annotation"
29
+ map_attribute "id", to: :id
30
+ map_attribute "anchor", to: :anchor
31
+ map_attribute "semx-id", to: :semx_id
32
+ map_attribute "original-id", to: :original_id
33
+ map_element "p", to: :p
34
+ end
35
+ end
36
+
37
+ # Block containing computer code or comparable text.
38
+ class SourcecodeBlock < Metanorma::Document::Components::Blocks::BasicBlockNoNotes
39
+ # The caption of the block.
40
+ attribute :name, Metanorma::Document::Components::Inline::NameWithIdElement
41
+
42
+ # The block should be excluded from any automatic numbering of blocks of this class in the document.
43
+ attribute :unnumbered, :boolean
44
+
45
+ # Anchor attribute for cross-references
46
+ attribute :anchor, :string
47
+
48
+ # Define a subsequence for numbering of this block; e.g. if this block would be numbered
49
+ # as 7, but it has a subsequence value of XYZ, this block, and all consecutive blocks
50
+ # of the same class and with the same subsequence value, will be numbered consecutively
51
+ # with the same number and in a subsequence: 7a, 7b, 7c etc.
52
+ attribute :subsequence, :string
53
+
54
+ # A file name associated with the source code (and which could be used to extract the source code
55
+ # fragment to from the document, or to populate the source code fragment with from the external file,
56
+ # in automated processing of the document).
57
+ attribute :filename, :string
58
+
59
+ # The computer language or other notational convention that the source code is expressed in.
60
+ attribute :lang, :string
61
+
62
+ # Whether callout markers are displayed
63
+ attribute :markers, :string
64
+
65
+ # The computer code or other such text presented in the block, as a single unformatted string. (The
66
+ # string should be treated as pre-formatted text, with whitespace treated as significant.)
67
+ attribute :content, :string
68
+
69
+ # The source code body, containing code text with embedded callout references.
70
+ attribute :body, SourcecodeBody
71
+
72
+ # Zero or more cross-references; these are intended to be embedded within the `content` string, and
73
+ # link to annotations.
74
+ attribute :callouts,
75
+ Metanorma::Document::Components::ReferenceElements::ReferenceToIdElement, collection: true
76
+
77
+ # Annotations to the source code; each annotation consists of zero or more paragraphs, and is intended
78
+ # to be referenced by a callout within the source code.
79
+ attribute :callout_annotations,
80
+ CalloutAnnotation, collection: true
81
+
82
+ # Presentation-specific elements
83
+ attribute :fmt_sourcecode, Metanorma::Document::Components::Inline::FmtSourcecodeElement
84
+
85
+ # Presentation-specific: semx-id for round-trip fidelity
86
+ attribute :semx_id, :string
87
+
88
+ attribute :json_type, :string
89
+
90
+ def json_type
91
+ "sourcecode"
92
+ end
93
+
94
+ json do
95
+ map "type", to: :json_type
96
+ map "id", to: :id
97
+ map "content", to: :content
98
+ map "filename", to: :filename
99
+ map "lang", to: :lang
100
+ end
101
+
102
+ xml do
103
+ element "sourcecode"
104
+ map_attribute "id", to: :id
105
+ map_attribute "anchor", to: :anchor
106
+ map_element "name", to: :name
107
+ map_attribute "unnumbered", to: :unnumbered
108
+ map_attribute "subsequence", to: :subsequence
109
+ map_attribute "filename", to: :filename
110
+ map_attribute "lang", to: :lang
111
+ map_attribute "markers", to: :markers
112
+ map_content to: :content
113
+ map_element "body", to: :body
114
+ map_element "callout", to: :callouts
115
+ map_element "callout-annotation", to: :callout_annotations
116
+ map_attribute "semx-id", to: :semx_id
117
+ map_element "fmt-sourcecode", to: :fmt_sourcecode
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module AncillaryBlocks
7
+ # A figure embedded within another figure.
8
+ # Subfigures only occur within figures.
9
+ class Subfigure < Lutaml::Model::Serializable
10
+ attribute :id, :string
11
+ attribute :anchor, :string
12
+ attribute :name, Metanorma::Document::Components::Inline::NameWithIdElement
13
+ attribute :image, Metanorma::Document::Components::IdElements::Image
14
+ attribute :figure, Subfigure, collection: true
15
+ attribute :key, :string
16
+ attribute :dl, Metanorma::Document::Components::Lists::DefinitionList
17
+ attribute :semx_id, :string
18
+ attribute :autonum, :string
19
+ attribute :fmt_name, Metanorma::Document::Components::Inline::FmtNameElement
20
+ attribute :fmt_xref_label,
21
+ Metanorma::Document::Components::Inline::FmtXrefLabelElement, collection: true
22
+
23
+ xml do
24
+ element "figure"
25
+ map_attribute "id", to: :id
26
+ map_attribute "anchor", to: :anchor
27
+ map_attribute "semx-id", to: :semx_id
28
+ map_attribute "autonum", to: :autonum
29
+ map_element "name", to: :name
30
+ map_element "image", to: :image
31
+ map_element "figure", to: :figure
32
+ map_element "key", to: :key
33
+ map_element "dl", to: :dl
34
+ map_element "fmt-name", to: :fmt_name
35
+ map_element "fmt-xref-label", to: :fmt_xref_label
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module AncillaryBlocks
7
+ autoload :ExampleBlock, "#{__dir__}/ancillary_blocks/example_block"
8
+ autoload :FigureBlock, "#{__dir__}/ancillary_blocks/figure_block"
9
+ autoload :FormulaBlock, "#{__dir__}/ancillary_blocks/formula_block"
10
+ autoload :KeyElement, "#{__dir__}/ancillary_blocks/key_element"
11
+ autoload :LiteralBlock, "#{__dir__}/ancillary_blocks/literal_block"
12
+ autoload :SourcecodeBlock,
13
+ "#{__dir__}/ancillary_blocks/sourcecode_block"
14
+ autoload :Subfigure, "#{__dir__}/ancillary_blocks/subfigure"
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module BibData
7
+ # The bibliographic description of a BasicDocument.
8
+ # BibData differs from BibliographicItem by making `title` and `copyright` mandatory.
9
+ class BibData < Lutaml::Model::Serializable
10
+ attribute :ext, Metanorma::Document::Components::BibData::BibDataExtensionType
11
+ attribute :title, Metanorma::Document::Relaton::TypedTitleString,
12
+ collection: true
13
+ attribute :link, Metanorma::Document::Relaton::TypedUri,
14
+ collection: true
15
+ attribute :docidentifier, Metanorma::Document::Relaton::DocumentIdentifier,
16
+ collection: true
17
+ attribute :docnumber, :string
18
+ attribute :date, Metanorma::Document::Relaton::BibliographicDate,
19
+ collection: true
20
+ attribute :contributor, Metanorma::Document::Relaton::ContributionInfo,
21
+ collection: true
22
+ attribute :edition, Metanorma::Document::Relaton::Edition
23
+ attribute :version, Metanorma::Document::Relaton::VersionInfo
24
+ attribute :language, Metanorma::Document::Components::DataTypes::Iso639Code,
25
+ collection: true
26
+ attribute :script, Metanorma::Document::Components::DataTypes::Iso15924Code,
27
+ collection: true
28
+ attribute :abstract, Metanorma::Document::Components::DataTypes::FormattedString,
29
+ collection: true
30
+ attribute :status, Metanorma::Document::Relaton::DocumentStatus
31
+ attribute :copyright, Metanorma::Document::Relaton::CopyrightAssociation,
32
+ collection: true
33
+ attribute :relation, Metanorma::Document::Relaton::DocumentRelation,
34
+ collection: true
35
+ attribute :series, Metanorma::Document::Relaton::SeriesType,
36
+ collection: true
37
+ attribute :keyword, Metanorma::Document::Relaton::KeywordType,
38
+ collection: true
39
+ attribute :classification, Metanorma::Document::Relaton::DocumentIdentifier,
40
+ collection: true
41
+
42
+ xml do
43
+ element "bibdata"
44
+ map_element "ext", to: :ext
45
+ map_element "title", to: :title
46
+ map_element "uri", to: :link
47
+ map_element "docidentifier", to: :docidentifier
48
+ map_element "docnumber", to: :docnumber
49
+ map_element "date", to: :date
50
+ map_element "contributor", to: :contributor
51
+ map_element "edition", to: :edition
52
+ map_element "version", to: :version
53
+ map_element "language", to: :language
54
+ map_element "script", to: :script
55
+ map_element "abstract", to: :abstract
56
+ map_element "status", to: :status
57
+ map_element "copyright", to: :copyright
58
+ map_element "relation", to: :relation
59
+ map_element "series", to: :series
60
+ map_element "keyword", to: :keyword
61
+ map_element "classification", to: :classification
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module BibData
7
+ # The extension point of the bibliographic description of a BasicDocument.
8
+ class BibDataExtensionType < Lutaml::Model::Serializable
9
+ attribute :doctype, Metanorma::Document::Components::BibData::DocumentType
10
+
11
+ xml do
12
+ element "ext"
13
+ map_element "doctype", to: :doctype
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module BibData
7
+ # Description of a bibliographic resource.
8
+ class BibliographicItem < Lutaml::Model::Serializable
9
+ attribute :id, :string
10
+ attribute :type, Metanorma::Document::Relaton::BibItemType
11
+ attribute :fetched, Metanorma::Document::Relaton::DateTime
12
+ attribute :title, Metanorma::Document::Relaton::TypedTitleString,
13
+ collection: true
14
+ attribute :formatted_ref, Metanorma::Document::Components::DataTypes::FormattedString
15
+ attribute :link, Metanorma::Document::Relaton::TypedUri,
16
+ collection: true
17
+ attribute :docidentifier, Metanorma::Document::Relaton::DocumentIdentifier,
18
+ collection: true
19
+ attribute :docnumber, :string
20
+ attribute :date, Metanorma::Document::Relaton::BibliographicDate,
21
+ collection: true
22
+ attribute :contributor, Metanorma::Document::Relaton::ContributionInfo,
23
+ collection: true
24
+ attribute :edition, Metanorma::Document::Relaton::Edition
25
+ attribute :version, Metanorma::Document::Relaton::VersionInfo
26
+ attribute :note, Metanorma::Document::Relaton::TypedNote,
27
+ collection: true
28
+ attribute :language, Metanorma::Document::Components::DataTypes::Iso639Code,
29
+ collection: true
30
+ attribute :script, Metanorma::Document::Components::DataTypes::Iso15924Code,
31
+ collection: true
32
+ attribute :abstract, Metanorma::Document::Components::DataTypes::FormattedString,
33
+ collection: true
34
+ attribute :status, Metanorma::Document::Relaton::DocumentStatus
35
+ attribute :copyright, Metanorma::Document::Relaton::CopyrightAssociation,
36
+ collection: true
37
+ attribute :relation, Metanorma::Document::Relaton::DocumentRelation,
38
+ collection: true
39
+ attribute :series, Metanorma::Document::Relaton::SeriesType,
40
+ collection: true
41
+ attribute :medium, Metanorma::Document::Relaton::MediumType
42
+ attribute :place, Metanorma::Document::Relaton::PlaceType,
43
+ collection: true
44
+ attribute :price, Metanorma::Document::Relaton::PriceType,
45
+ collection: true
46
+ attribute :extent, Metanorma::Document::Relaton::LocalityStack,
47
+ collection: true
48
+ attribute :size, Metanorma::Document::Relaton::BibItemSize,
49
+ collection: true
50
+ attribute :access_location, :string, collection: true
51
+ attribute :license, :string, collection: true
52
+ attribute :classification, Metanorma::Document::Relaton::DocumentIdentifier,
53
+ collection: true
54
+ attribute :keyword, Metanorma::Document::Relaton::KeywordType,
55
+ collection: true
56
+ attribute :validity, Metanorma::Document::Relaton::ValidityType
57
+
58
+ # Presentation-specific
59
+ attribute :anchor, :string
60
+ attribute :semx_id, :string
61
+ attribute :schema_version, :string
62
+ attribute :biblio_tag, Metanorma::Document::Components::Inline::BiblioTagElement
63
+ attribute :type_attr, :string
64
+
65
+ xml do
66
+ element "bibitem"
67
+ map_attribute "id", to: :id
68
+ map_attribute "type", to: :type_attr
69
+ map_attribute "anchor", to: :anchor
70
+ map_attribute "semx-id", to: :semx_id
71
+ map_attribute "schema-version", to: :schema_version
72
+ map_element "biblio-tag", to: :biblio_tag
73
+ map_element "type", to: :type
74
+ map_element "fetched", to: :fetched
75
+ map_element "title", to: :title
76
+ map_element "formattedref", to: :formatted_ref
77
+ map_element "uri", to: :link
78
+ map_element "docidentifier", to: :docidentifier
79
+ map_element "docnumber", to: :docnumber
80
+ map_element "date", to: :date
81
+ map_element "contributor", to: :contributor
82
+ map_element "edition", to: :edition
83
+ map_element "version", to: :version
84
+ map_element "note", to: :note
85
+ map_element "language", to: :language
86
+ map_element "script", to: :script
87
+ map_element "abstract", to: :abstract
88
+ map_element "status", to: :status
89
+ map_element "copyright", to: :copyright
90
+ map_element "relation", to: :relation
91
+ map_element "series", to: :series
92
+ map_element "medium", to: :medium
93
+ map_element "place", to: :place
94
+ map_element "price", to: :price
95
+ map_element "extent", to: :extent
96
+ map_element "size", to: :size
97
+ map_element "accessLocation", to: :access_location
98
+ map_element "license", to: :license
99
+ map_element "classification", to: :classification
100
+ map_element "keyword", to: :keyword
101
+ map_element "validity", to: :validity
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module BibData
7
+ # Classifications of BasicDocuments.
8
+ class DocumentType < Lutaml::Model::Serializable
9
+ attribute :value, :string
10
+
11
+ xml do
12
+ element "document-type"
13
+ map_content to: :value
14
+
15
+ def self.values
16
+ %w[document]
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module BibData
7
+ autoload :BibData, "#{__dir__}/bib_data/bib_data"
8
+ autoload :BibDataExtensionType,
9
+ "#{__dir__}/bib_data/bib_data_extension_type"
10
+ autoload :BibliographicItem, "#{__dir__}/bib_data/bibliographic_item"
11
+ autoload :DocumentType, "#{__dir__}/bib_data/document_type"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module Blocks
7
+ # Block of textual content in BasicDocument.
8
+ class BasicBlock < Lutaml::Model::Serializable
9
+ attribute :notes, NoteBlock, collection: true
10
+
11
+ xml do
12
+ element "basic-block"
13
+ map_element "notes", to: :notes
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Document
5
+ module Components
6
+ module Blocks
7
+ # Base class of blocks for a BasicDocument, omitting notes.
8
+ class BasicBlockNoNotes < Lutaml::Model::Serializable
9
+ attribute :id, :string
10
+ attribute :contrib_metadata, Metanorma::Document::Components::ContribMetadata::ContributionElementMetadata,
11
+ collection: true
12
+
13
+ xml do
14
+ element "basic-block-no-notes"
15
+ map_attribute "id", to: :id
16
+ map_element "contrib-metadata", to: :contrib_metadata
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end