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,40 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ lang }}">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>{{ title | escape }}</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="{{ font_url }}" rel="stylesheet" />
10
+ <style>
11
+ {{ styles }}
12
+ </style>
13
+ </head>
14
+ <body lang="{{ lang }}">
15
+ <a href="#doc-content" class="skip-nav">Skip to content</a>
16
+ {{ header }}
17
+ <div class="reading-progress" id="reading-progress"></div>
18
+ <div class="doc-layout">
19
+ <aside class="toc-sidebar" id="toc-sidebar" role="navigation" aria-label="Table of contents">
20
+ <div class="toc-header">
21
+ <h2 class="toc-heading">Contents</h2>
22
+ <button class="toc-close-btn" id="toc-close-btn" aria-label="Close menu">&times;</button>
23
+ </div>
24
+ <nav class="toc-nav">
25
+ <ul class="toc-list">
26
+ {{ toc }}
27
+ </ul>
28
+ </nav>
29
+ </aside>
30
+ <div class="toc-overlay" id="toc-overlay"></div>
31
+ <main class="doc-content" id="doc-content" role="main">
32
+ {{ body }}
33
+ </main>
34
+ {{ footer }}
35
+ </div>
36
+ <button class="toc-hamburger" id="toc-hamburger" aria-label="Open table of contents">&#9776;</button>
37
+ <button class="back-to-top" id="back-to-top" aria-label="Back to top"><svg viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="3,8 6,4 9,8"/></svg></button>
38
+ {{ scripts }}
39
+ </body>
40
+ </html>
@@ -0,0 +1,196 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module Html
5
+ class Theme
6
+ # Primary palette
7
+ attr_accessor :primary, :accent, :gradient,
8
+ :primary_light, :accent_light, :primary_dark,
9
+ :accent_deep, :warm, :warm_light
10
+
11
+ # Text & backgrounds
12
+ attr_accessor :text_color, :text_light, :text_muted,
13
+ :bg, :bg_light, :border, :sidebar_bg
14
+
15
+ # Typography
16
+ attr_accessor :font_body, :font_sans, :font_mono, :font_url
17
+
18
+ # Layout constants
19
+ attr_accessor :content_max_width, :sidebar_width, :header_height,
20
+ :radius_sm, :radius_md, :shadow_sm, :shadow_md
21
+
22
+ # Block element colors (driven via CSS variables, eliminates extra_css)
23
+ attr_accessor :note_color, :note_bg, :note_border,
24
+ :example_color, :example_bg, :example_border,
25
+ :admonition_color, :admonition_bg, :admonition_border
26
+
27
+ # Footer accent
28
+ attr_accessor :footer_border_color
29
+
30
+ # Cover separator
31
+ attr_accessor :cover_separator_color
32
+
33
+ # Computed CSS (gradients — cannot use CSS variables alone)
34
+ attr_accessor :header_background, :cover_background,
35
+ :cover_after_bg, :cover_before_bg,
36
+ :progress_bar_color
37
+
38
+ # Dark mode overrides
39
+ attr_accessor :dark_bg, :dark_bg_light, :dark_border, :dark_sidebar,
40
+ :dark_text, :dark_text_light, :dark_text_muted,
41
+ :dark_primary_light, :dark_accent_light,
42
+ :dark_note_bg, :dark_example_bg, :dark_admonition_bg,
43
+ :dark_code_bg, :dark_code_border
44
+
45
+ # Arbitrary per-element CSS overrides (search, sourcecode, etc.)
46
+ attr_accessor :extra_css
47
+
48
+ def initialize
49
+ @primary = "#28388A"
50
+ @accent = "#9C60C1"
51
+ @gradient = "linear-gradient(135deg, #28388A 0%, #3a4ba0 50%, #9C60C1 100%)"
52
+ @primary_light = "#eef0f8"
53
+ @accent_light = "#f5eef9"
54
+ @primary_dark = "#1c2660"
55
+ @accent_deep = nil
56
+ @warm = nil
57
+ @warm_light = nil
58
+ @text_color = "#1a1a2e"
59
+ @text_light = "#4a4a6a"
60
+ @text_muted = "#8888a0"
61
+ @bg = "#fff"
62
+ @bg_light = "#fafbff"
63
+ @border = "#e0e2ee"
64
+ @sidebar_bg = "#f7f7fc"
65
+ @font_body = '"Source Serif 4", "Noto Serif", Georgia, "Times New Roman", serif'
66
+ @font_sans = '"DM Sans", "Helvetica Neue", Arial, sans-serif'
67
+ @font_mono = '"JetBrains Mono", "Fira Code", "Courier New", monospace'
68
+ @font_url = "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&family=Source+Serif+4:ital,opsz,wght@0,8..60,300..700;1,8..60,300..700&family=JetBrains+Mono:wght@400;500&display=swap"
69
+ @content_max_width = "50em"
70
+ @sidebar_width = "260px"
71
+ @header_height = "52px"
72
+ @radius_sm = "4px"
73
+ @radius_md = "8px"
74
+ @shadow_sm = "0 1px 3px rgba(40,56,138,0.08)"
75
+ @shadow_md = "0 4px 12px rgba(40,56,138,0.12)"
76
+
77
+ # Block element defaults
78
+ @note_color = "var(--mn-accent)"
79
+ @note_bg = "var(--mn-accent-light)"
80
+ @note_border = "var(--mn-accent)"
81
+ @example_color = "#0d9488"
82
+ @example_bg = "rgba(232, 248, 245, 0.6)"
83
+ @example_border = "#0d9488"
84
+ @admonition_color = "#b8860b"
85
+ @admonition_bg = "rgba(255, 252, 245, 0.8)"
86
+ @admonition_border = "#e8a820"
87
+ @footer_border_color = nil
88
+ @cover_separator_color = nil
89
+
90
+ @header_background = nil
91
+ @cover_background = nil
92
+ @cover_after_bg = nil
93
+ @cover_before_bg = nil
94
+ @progress_bar_color = nil
95
+ @extra_css = nil
96
+
97
+ # Dark mode defaults
98
+ @dark_bg = "#0f1118"
99
+ @dark_bg_light = "#1a1d2a"
100
+ @dark_border = "#2e3248"
101
+ @dark_sidebar = "#141620"
102
+ @dark_text = "#e2e6f0"
103
+ @dark_text_light = "#c0c8dc"
104
+ @dark_text_muted = "#96a0b8"
105
+ @dark_primary_light = "#1e2140"
106
+ @dark_accent_light = "#2a2040"
107
+ @dark_note_bg = nil
108
+ @dark_example_bg = nil
109
+ @dark_admonition_bg = nil
110
+ @dark_code_bg = nil
111
+ @dark_code_border = nil
112
+ end
113
+
114
+ def to_css_root
115
+ root = <<~CSS
116
+ :root {
117
+ --mn-primary: #{primary};
118
+ --mn-accent: #{accent};
119
+ --mn-gradient: #{gradient};
120
+ --mn-primary-light: #{primary_light};
121
+ --mn-accent-light: #{accent_light};
122
+ --mn-primary-dark: #{primary_dark};
123
+ --color-text: #{text_color};
124
+ --color-text-light: #{text_light};
125
+ --color-text-muted: #{text_muted};
126
+ --color-bg: #{bg};
127
+ --color-bg-light: #{bg_light};
128
+ --color-border: #{border};
129
+ --color-sidebar-bg: #{sidebar_bg};
130
+ --font-body: #{font_body};
131
+ --font-sans: #{font_sans};
132
+ --font-mono: #{font_mono};
133
+ --content-max-width: #{content_max_width};
134
+ --sidebar-width: #{sidebar_width};
135
+ --header-height: #{header_height};
136
+ --radius-sm: #{radius_sm};
137
+ --radius-md: #{radius_md};
138
+ --shadow-sm: #{shadow_sm};
139
+ --shadow-md: #{shadow_md};
140
+ --note-bg: #{note_bg};
141
+ --note-border: #{note_border};
142
+ --note-color: #{note_color};
143
+ --example-bg: #{example_bg};
144
+ --example-border: #{example_border};
145
+ --example-color: #{example_color};
146
+ --admonition-bg: #{admonition_bg};
147
+ --admonition-border: #{admonition_border};
148
+ --admonition-color: #{admonition_color};
149
+ CSS
150
+ root += " --mn-accent-deep: #{accent_deep};\n" if accent_deep
151
+ root += " --mn-warm: #{warm};\n" if warm
152
+ root += " --mn-warm-light: #{warm_light};\n" if warm_light
153
+ root += " --mn-header-bg: #{header_background};\n" if header_background
154
+ root += " --mn-cover-bg: #{cover_background};\n" if cover_background
155
+ root += " --mn-progress-color: #{progress_bar_color};\n" if progress_bar_color
156
+ root += " --mn-footer-border: #{footer_border_color};\n" if footer_border_color
157
+ root += " --mn-cover-separator: #{cover_separator_color};\n" if cover_separator_color
158
+ root += " }\n"
159
+ root += generate_dark_mode_block if dark_bg
160
+ root
161
+ end
162
+
163
+ def to_css_extras
164
+ css = ""
165
+ css += ".title-section::before { content: \"\"; position: absolute; inset: 0; pointer-events: none; #{cover_before_bg} }\n" if cover_before_bg
166
+ css += ".title-section::after { #{cover_after_bg} }\n" if cover_after_bg
167
+ css += extra_css.to_s if extra_css
168
+ css
169
+ end
170
+
171
+ def to_css
172
+ to_css_root + to_css_extras
173
+ end
174
+
175
+ private
176
+
177
+ def generate_dark_mode_block
178
+ css = "[data-theme=\"dark\"] {\n"
179
+ css += " --color-text: #{dark_text};\n" if dark_text
180
+ css += " --color-text-light: #{dark_text_light};\n" if dark_text_light
181
+ css += " --color-text-muted: #{dark_text_muted};\n" if dark_text_muted
182
+ css += " --color-bg: #{dark_bg};\n" if dark_bg
183
+ css += " --color-bg-light: #{dark_bg_light};\n" if dark_bg_light
184
+ css += " --color-border: #{dark_border};\n" if dark_border
185
+ css += " --color-sidebar-bg: #{dark_sidebar};\n" if dark_sidebar
186
+ css += " --mn-primary-light: #{dark_primary_light};\n" if dark_primary_light
187
+ css += " --mn-accent-light: #{dark_accent_light};\n" if dark_accent_light
188
+ css += " --note-bg: #{dark_note_bg};\n" if dark_note_bg
189
+ css += " --example-bg: #{dark_example_bg};\n" if dark_example_bg
190
+ css += " --admonition-bg: #{dark_admonition_bg};\n" if dark_admonition_bg
191
+ css += "}\n"
192
+ css
193
+ end
194
+ end
195
+ end
196
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Moxml's Nokogiri adapter strips whitespace-only text nodes from children,
4
+ # which drops significant spaces in mixed content (e.g., "Table 1" → "Table1").
5
+ # This patch preserves whitespace text nodes that are between element siblings,
6
+ # as they are significant in presentation XML mixed content.
7
+ Moxml::Adapter::Nokogiri.class_eval do
8
+ class << self
9
+ remove_method :children
10
+ end
11
+
12
+ def self.children(node)
13
+ node.children.to_a
14
+ end
15
+ end
16
+
17
+ # Lutaml::Xml::XmlElement#order also strips whitespace-only text nodes.
18
+ # Preserve them so walk_ordered can render them between inline elements.
19
+ Lutaml::Xml::XmlElement.class_eval do
20
+ remove_method :order
21
+
22
+ def order
23
+ return @order_cache if @order_cache
24
+
25
+ @order_cache = children.filter_map do |child|
26
+ if child.text?
27
+ # Preserve ALL text nodes including whitespace-only ones.
28
+ # Upstream strips whitespace here, but mixed content in
29
+ # presentation XML requires spaces between inline elements.
30
+ Lutaml::Xml::Element.new("Text", "text",
31
+ text_content: child.text,
32
+ node_type: :text)
33
+ elsif child.cdata?
34
+ Lutaml::Xml::Element.new("Text", "#cdata-section",
35
+ text_content: child.text,
36
+ node_type: :cdata)
37
+ elsif child.comment?
38
+ nil
39
+ else
40
+ Lutaml::Xml::Element.new("Element", child.unprefixed_name,
41
+ node_type: :element,
42
+ namespace_uri: child.namespace_uri,
43
+ namespace_prefix: child.namespace_prefix)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "metanorma/html/whitespace_patch"
4
+
5
+ module Metanorma
6
+ module Html
7
+ autoload :BaseRenderer, "metanorma/html/base_renderer"
8
+ autoload :Generator, "metanorma/html/generator"
9
+ autoload :Theme, "metanorma/html/theme"
10
+ autoload :AssetPipeline, "metanorma/html/asset_pipeline"
11
+ autoload :ComponentRegistry, "metanorma/html/component_registry"
12
+ autoload :Component, "metanorma/html/component"
13
+ autoload :Drops, "metanorma/html/drops"
14
+ autoload :StandardRenderer, "metanorma/html/standard_renderer"
15
+ autoload :IsoRenderer, "metanorma/html/iso_renderer"
16
+ autoload :BipmRenderer, "metanorma/html/bipm_renderer"
17
+ autoload :CcRenderer, "metanorma/html/cc_renderer"
18
+ autoload :IccRenderer, "metanorma/html/icc_renderer"
19
+ autoload :PdfaRenderer, "metanorma/html/pdfa_renderer"
20
+ autoload :IecRenderer, "metanorma/html/iec_renderer"
21
+ autoload :IeeeRenderer, "metanorma/html/ieee_renderer"
22
+ autoload :IetfRenderer, "metanorma/html/ietf_renderer"
23
+ autoload :IhoRenderer, "metanorma/html/iho_renderer"
24
+ autoload :ItuRenderer, "metanorma/html/itu_renderer"
25
+ autoload :OgcRenderer, "metanorma/html/ogc_renderer"
26
+ autoload :OimlRenderer, "metanorma/html/oiml_renderer"
27
+ autoload :RiboseRenderer, "metanorma/html/ribose_renderer"
28
+ end
29
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "metanorma/standard_document"
4
+ require "metanorma/iso_document"
5
+
6
+ module Metanorma
7
+ module IecDocument
8
+ class Root < Metanorma::StandardDocument::Root
9
+ attribute :version, :string
10
+ attribute :type, :string
11
+ attribute :schema_version, :string
12
+ attribute :flavor, :string
13
+
14
+ attribute :bibdata,
15
+ Metanorma::IsoDocument::Metadata::IsoBibliographicItem
16
+
17
+ attribute :term_sources,
18
+ Metanorma::Document::Components::ReferenceElements::Citation,
19
+ collection: true
20
+
21
+ attribute :preface, Metanorma::IsoDocument::Sections::IsoPreface
22
+ attribute :sections, Metanorma::IsoDocument::Sections::IsoSections
23
+ attribute :annex, Metanorma::IsoDocument::Sections::IsoAnnexSection,
24
+ collection: true
25
+ attribute :bibliography,
26
+ Metanorma::StandardDocument::Sections::BibliographySection
27
+ attribute :boilerplate, Metanorma::IsoDocument::Boilerplate
28
+ attribute :metanorma_extension,
29
+ Metanorma::IsoDocument::Metadata::MetanormaExtension
30
+ attribute :annotation_container, Metanorma::IsoDocument::AnnotationContainer
31
+ attribute :indexsect,
32
+ Metanorma::Document::Components::Sections::BasicSection
33
+ attribute :autonum, :string
34
+ attribute :fmt_xref_label, :string
35
+ attribute :localized_strings,
36
+ Metanorma::Document::Components::Inline::LocalizedStringsElement
37
+ attribute :fmt_footnote_container,
38
+ Metanorma::Document::Components::Inline::FmtFootnoteContainerElement
39
+ attribute :colophon, Metanorma::IsoDocument::Sections::Colophon
40
+
41
+ xml do
42
+ element "metanorma"
43
+ namespace Metanorma::StandardDocument::Namespace
44
+ map_attribute "type", to: :type
45
+ map_attribute "version", to: :version
46
+ map_attribute "schema-version", to: :schema_version
47
+ map_attribute "flavor", to: :flavor
48
+ map_element "bibdata", to: :bibdata
49
+ map_element "termdocsource", to: :term_sources
50
+ map_element "metanorma-extension", to: :metanorma_extension
51
+ map_element "boilerplate", to: :boilerplate
52
+ map_element "preface", to: :preface
53
+ map_element "sections", to: :sections
54
+ map_element "annex", to: :annex
55
+ map_element "bibliography", to: :bibliography
56
+ map_element "annotation-container", to: :annotation_container
57
+ map_element "indexsect", to: :indexsect
58
+ map_element "localized-strings", to: :localized_strings
59
+ map_element "fmt-footnote-container", to: :fmt_footnote_container
60
+ map_element "colophon", to: :colophon
61
+ map_attribute "autonum", to: :autonum
62
+ map_attribute "fmt-xref-label", to: :fmt_xref_label
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "metanorma/standard_document"
4
+ require "metanorma/iso_document"
5
+
6
+ module Metanorma
7
+ module IecDocument
8
+ autoload :Root, "metanorma/iec_document/root"
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IeeeDocument
5
+ module Metadata
6
+ # Extension point for bibliographical definitions of IEEE documents.
7
+ # Inherits all ISO extension fields; overrides structuredidentifier for IEEE format.
8
+ class IeeeBibDataExtensionType < Metanorma::IsoDocument::Metadata::IsoBibDataExtensionType
9
+ attribute :structuredidentifier, IeeeStructuredIdentifier
10
+
11
+ xml do
12
+ element "ext"
13
+ map_element "structuredidentifier", to: :structuredidentifier
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IeeeDocument
5
+ module Metadata
6
+ # The bibliographical description of an IEEE document.
7
+ # IEEE adds keyword in bibdata and IEEE-specific structured identifier.
8
+ class IeeeBibliographicItem < Metanorma::IsoDocument::Metadata::IsoBibliographicItem
9
+ attribute :ext, IeeeBibDataExtensionType
10
+ attribute :keyword, :string, collection: true
11
+
12
+ xml do
13
+ element "bibdata"
14
+ map_element "ext", to: :ext
15
+ map_element "keyword", to: :keyword
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IeeeDocument
5
+ module Metadata
6
+ # Structured identifier for IEEE documents (docnumber, agency, class, version, year).
7
+ class IeeeStructuredIdentifier < Lutaml::Model::Serializable
8
+ attribute :docnumber, :string
9
+ attribute :agency, :string
10
+ attribute :klass, :string
11
+ attribute :version, :string
12
+ attribute :year, :string
13
+
14
+ xml do
15
+ element "structuredidentifier"
16
+ map_element "docnumber", to: :docnumber
17
+ map_element "agency", to: :agency
18
+ map_element "class", to: :klass
19
+ map_element "version", to: :version
20
+ map_element "year", to: :year
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IeeeDocument
5
+ module Metadata
6
+ autoload :IeeeBibDataExtensionType,
7
+ "#{__dir__}/metadata/ieee_bib_data_extension_type"
8
+ autoload :IeeeBibliographicItem,
9
+ "#{__dir__}/metadata/ieee_bibliographic_item"
10
+ autoload :IeeeStructuredIdentifier,
11
+ "#{__dir__}/metadata/ieee_structured_identifier"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "metanorma/standard_document"
4
+ require "metanorma/iso_document"
5
+
6
+ module Metanorma
7
+ module IeeeDocument
8
+ class Root < Metanorma::StandardDocument::Root
9
+ attribute :version, :string
10
+ attribute :type, :string
11
+ attribute :schema_version, :string
12
+ attribute :flavor, :string
13
+
14
+ attribute :bibdata, Metadata::IeeeBibliographicItem
15
+
16
+ attribute :term_sources,
17
+ Metanorma::Document::Components::ReferenceElements::Citation,
18
+ collection: true
19
+
20
+ attribute :preface, Metanorma::IsoDocument::Sections::IsoPreface
21
+ attribute :sections, Metanorma::IsoDocument::Sections::IsoSections
22
+ attribute :annex, Metanorma::IsoDocument::Sections::IsoAnnexSection,
23
+ collection: true
24
+ attribute :bibliography,
25
+ Metanorma::StandardDocument::Sections::BibliographySection
26
+ attribute :boilerplate, Metanorma::IsoDocument::Boilerplate
27
+ attribute :metanorma_extension,
28
+ Metanorma::IsoDocument::Metadata::MetanormaExtension
29
+ attribute :annotation_container, Metanorma::IsoDocument::AnnotationContainer
30
+ attribute :indexsect,
31
+ Metanorma::Document::Components::Sections::BasicSection
32
+ attribute :autonum, :string
33
+ attribute :fmt_xref_label, :string
34
+ attribute :localized_strings,
35
+ Metanorma::Document::Components::Inline::LocalizedStringsElement
36
+ attribute :fmt_footnote_container,
37
+ Metanorma::Document::Components::Inline::FmtFootnoteContainerElement
38
+ attribute :colophon, Metanorma::IsoDocument::Sections::Colophon
39
+
40
+ xml do
41
+ element "metanorma"
42
+ namespace Metanorma::StandardDocument::Namespace
43
+ map_attribute "type", to: :type
44
+ map_attribute "version", to: :version
45
+ map_attribute "schema-version", to: :schema_version
46
+ map_attribute "flavor", to: :flavor
47
+ map_element "bibdata", to: :bibdata
48
+ map_element "termdocsource", to: :term_sources
49
+ map_element "metanorma-extension", to: :metanorma_extension
50
+ map_element "boilerplate", to: :boilerplate
51
+ map_element "preface", to: :preface
52
+ map_element "sections", to: :sections
53
+ map_element "annex", to: :annex
54
+ map_element "bibliography", to: :bibliography
55
+ map_element "annotation-container", to: :annotation_container
56
+ map_element "indexsect", to: :indexsect
57
+ map_element "localized-strings", to: :localized_strings
58
+ map_element "fmt-footnote-container", to: :fmt_footnote_container
59
+ map_element "colophon", to: :colophon
60
+ map_attribute "autonum", to: :autonum
61
+ map_attribute "fmt-xref-label", to: :fmt_xref_label
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "metanorma/standard_document"
4
+ require "metanorma/iso_document"
5
+
6
+ module Metanorma
7
+ module IeeeDocument
8
+ autoload :Metadata, "metanorma/ieee_document/metadata"
9
+ autoload :Root, "metanorma/ieee_document/root"
10
+ end
11
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Metanorma
6
+ module IetfDocument
7
+ module Metadata
8
+ class PiSettings < Lutaml::Model::Serializable
9
+ attribute :toc, :string
10
+ attribute :tocdepth, :string
11
+ attribute :symrefs, :string
12
+ attribute :sortrefs, :string
13
+ attribute :compact, :string
14
+ attribute :subcompact, :string
15
+ attribute :strict, :string
16
+ attribute :comments, :string
17
+ attribute :notedraftinprogress, :string
18
+
19
+ xml do
20
+ element "pi"
21
+ map_element "toc", to: :toc
22
+ map_element "tocdepth", to: :tocdepth
23
+ map_element "symrefs", to: :symrefs
24
+ map_element "sortrefs", to: :sortrefs
25
+ map_element "compact", to: :compact
26
+ map_element "subcompact", to: :subcompact
27
+ map_element "strict", to: :strict
28
+ map_element "comments", to: :comments
29
+ map_element "notedraftinprogress", to: :notedraftinprogress
30
+ end
31
+ end
32
+
33
+ class IetfBibDataExtensionType < Lutaml::Model::Serializable
34
+ attribute :doctype, :string
35
+ attribute :flavor, :string
36
+ attribute :ipr, :string
37
+ attribute :consensus, :string
38
+ attribute :area, :string, collection: true
39
+ attribute :submission_type, :string
40
+ attribute :editorial_group, IetfEditorialGroup
41
+ attribute :pi, PiSettings
42
+
43
+ xml do
44
+ element "ext"
45
+ map_element "doctype", to: :doctype
46
+ map_element "flavor", to: :flavor
47
+ map_element "ipr", to: :ipr
48
+ map_element "consensus", to: :consensus
49
+ map_element "area", to: :area
50
+ map_element "submissionType", to: :submission_type
51
+ map_element "editorial-group", to: :editorial_group
52
+ map_element "editorialgroup", to: :editorial_group
53
+ map_element "pi", to: :pi
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "metanorma/document"
4
+
5
+ module Metanorma
6
+ module IetfDocument
7
+ module Metadata
8
+ class IetfBibliographicItem < Metanorma::Document::Components::BibData::BibliographicItem
9
+ attribute :ext, Metanorma::IetfDocument::Metadata::IetfBibDataExtensionType
10
+
11
+ xml do
12
+ element "bibdata"
13
+ map_attribute "type", to: :type_attr
14
+ map_attribute "schema-version", to: :schema_version
15
+ map_element "fetched", to: :fetched
16
+ map_element "title", to: :title
17
+ map_element "formattedref", to: :formatted_ref
18
+ map_element "uri", to: :link
19
+ map_element "docidentifier", to: :docidentifier
20
+ map_element "docnumber", to: :docnumber
21
+ map_element "date", to: :date
22
+ map_element "contributor", to: :contributor
23
+ map_element "edition", to: :edition
24
+ map_element "version", to: :version
25
+ map_element "note", to: :note
26
+ map_element "language", to: :language
27
+ map_element "script", to: :script
28
+ map_element "abstract", to: :abstract
29
+ map_element "status", to: :status
30
+ map_element "copyright", to: :copyright
31
+ map_element "relation", to: :relation
32
+ map_element "series", to: :series
33
+ map_element "medium", to: :medium
34
+ map_element "place", to: :place
35
+ map_element "price", to: :price
36
+ map_element "extent", to: :extent
37
+ map_element "size", to: :size
38
+ map_element "accessLocation", to: :access_location
39
+ map_element "license", to: :license
40
+ map_element "classification", to: :classification
41
+ map_element "keyword", to: :keyword
42
+ map_element "validity", to: :validity
43
+ map_element "ext", to: :ext
44
+ map_attribute "id", to: :id
45
+ map_attribute "anchor", to: :anchor
46
+ map_attribute "semx-id", to: :semx_id
47
+ map_attribute "schema-version", to: :schema_version
48
+ map_element "biblio-tag", to: :biblio_tag
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end