metanorma-document 0.2.6 → 0.2.7

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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +321 -45
  3. data/Gemfile +2 -0
  4. data/lib/metanorma/basic_document/ancillary_blocks/figure_block.rb +3 -1
  5. data/lib/metanorma/basic_document/blocks/basic_block.rb +5 -1
  6. data/lib/metanorma/basic_document/blocks/note_block.rb +5 -0
  7. data/lib/metanorma/basic_document/blocks.rb +3 -24
  8. data/lib/metanorma/basic_document/lists/list.rb +2 -1
  9. data/lib/metanorma/basic_document/lists/list_item.rb +17 -0
  10. data/lib/metanorma/basic_document/lists.rb +1 -0
  11. data/lib/metanorma/basic_document/paragraphs/paragraph_with_footnote.rb +3 -1
  12. data/lib/metanorma/basic_document/reference_elements/callout.rb +1 -1
  13. data/lib/metanorma/basic_document/reference_elements/footnote.rb +1 -1
  14. data/lib/metanorma/basic_document/text_elements/mathml.rb +1 -1
  15. data/lib/metanorma/bipm_document/root.rb +10 -50
  16. data/lib/metanorma/bipm_document.rb +0 -2
  17. data/lib/metanorma/bsi_document/metadata/bsi_bib_data_extension_type.rb +10 -0
  18. data/lib/metanorma/bsi_document/metadata/bsi_bibliographic_item.rb +15 -0
  19. data/lib/metanorma/bsi_document/metadata.rb +12 -0
  20. data/lib/metanorma/bsi_document/root.rb +29 -0
  21. data/lib/metanorma/bsi_document/sections/bsi_annex_section.rb +25 -0
  22. data/lib/metanorma/bsi_document/sections/bsi_clause_section.rb +25 -0
  23. data/lib/metanorma/bsi_document/sections/bsi_sections.rb +27 -0
  24. data/lib/metanorma/bsi_document/sections.rb +11 -0
  25. data/lib/metanorma/bsi_document.rb +11 -0
  26. data/lib/metanorma/cc_document/root.rb +10 -50
  27. data/lib/metanorma/cc_document.rb +0 -2
  28. data/lib/metanorma/collection.rb +0 -2
  29. data/lib/metanorma/document/components/ancillary_blocks/example_block.rb +3 -3
  30. data/lib/metanorma/document/components/ancillary_blocks/figure_block.rb +2 -0
  31. data/lib/metanorma/document/components/ancillary_blocks/sourcecode_block.rb +2 -0
  32. data/lib/metanorma/document/components/blocks/passthrough.rb +21 -0
  33. data/lib/metanorma/document/components/blocks/requirement_model.rb +159 -0
  34. data/lib/metanorma/document/components/blocks.rb +10 -0
  35. data/lib/metanorma/document/components/contrib_metadata/contribution_element_metadata.rb +3 -1
  36. data/lib/metanorma/document/components/id_elements/image.rb +2 -0
  37. data/lib/metanorma/document/components/inline/xref_element.rb +8 -0
  38. data/lib/metanorma/document/components/lists/definition_list.rb +6 -0
  39. data/lib/metanorma/document/components/lists/list_item.rb +1 -1
  40. data/lib/metanorma/document/components/lists/ordered_list.rb +6 -0
  41. data/lib/metanorma/document/components/lists/unordered_list.rb +8 -0
  42. data/lib/metanorma/document/components/multi_paragraph/admonition_block.rb +8 -0
  43. data/lib/metanorma/document/components/multi_paragraph/review_block.rb +3 -0
  44. data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +6 -2
  45. data/lib/metanorma/document/components/reference_elements/source_element.rb +57 -0
  46. data/lib/metanorma/document/components/reference_elements.rb +6 -0
  47. data/lib/metanorma/document/components/sections/references_section.rb +1 -1
  48. data/lib/metanorma/document/components/tables/table_block.rb +10 -0
  49. data/lib/metanorma/document/components/tables/table_cell.rb +2 -1
  50. data/lib/metanorma/document/data_types.rb +0 -4
  51. data/lib/metanorma/document/elements/add.rb +18 -0
  52. data/lib/metanorma/document/elements/del.rb +18 -0
  53. data/lib/metanorma/document/elements.rb +10 -0
  54. data/lib/metanorma/document/relaton/address.rb +16 -0
  55. data/lib/metanorma/document/root.rb +1 -3
  56. data/lib/metanorma/document/version.rb +1 -1
  57. data/lib/metanorma/document.rb +11 -2
  58. data/lib/metanorma/gb_document/metadata/gb_bib_data_extension_type.rb +10 -0
  59. data/lib/metanorma/gb_document/metadata/gb_bibliographic_item.rb +15 -0
  60. data/lib/metanorma/gb_document/metadata.rb +12 -0
  61. data/lib/metanorma/gb_document/root.rb +29 -0
  62. data/lib/metanorma/gb_document.rb +10 -0
  63. data/lib/metanorma/generic_document/root.rb +31 -0
  64. data/lib/metanorma/generic_document.rb +7 -0
  65. data/lib/metanorma/html/base_renderer.rb +198 -111
  66. data/lib/metanorma/html/bipm_renderer.rb +16 -8
  67. data/lib/metanorma/html/cc_renderer.rb +0 -1
  68. data/lib/metanorma/html/component/base.rb +5 -1
  69. data/lib/metanorma/html/component/footnote_collector.rb +3 -3
  70. data/lib/metanorma/html/component/index_section.rb +27 -9
  71. data/lib/metanorma/html/component/index_term_collector.rb +8 -3
  72. data/lib/metanorma/html/component.rb +2 -1
  73. data/lib/metanorma/html/drops/figure_drop.rb +14 -5
  74. data/lib/metanorma/html/drops/formula_drop.rb +7 -2
  75. data/lib/metanorma/html/drops/sourcecode_drop.rb +6 -2
  76. data/lib/metanorma/html/drops.rb +2 -1
  77. data/lib/metanorma/html/generator.rb +33 -16
  78. data/lib/metanorma/html/iec_renderer.rb +0 -1
  79. data/lib/metanorma/html/ieee_renderer.rb +0 -1
  80. data/lib/metanorma/html/ietf_renderer.rb +0 -1
  81. data/lib/metanorma/html/iho_renderer.rb +1 -2
  82. data/lib/metanorma/html/iso_renderer.rb +68 -23
  83. data/lib/metanorma/html/itu_renderer.rb +0 -1
  84. data/lib/metanorma/html/ogc_renderer.rb +0 -1
  85. data/lib/metanorma/html/oiml_renderer.rb +0 -1
  86. data/lib/metanorma/html/pdfa_renderer.rb +0 -1
  87. data/lib/metanorma/html/ribose_renderer.rb +0 -1
  88. data/lib/metanorma/html/standard_renderer.rb +61 -28
  89. data/lib/metanorma/html/theme.rb +2 -2
  90. data/lib/metanorma/html.rb +48 -1
  91. data/lib/metanorma/iec_document/root.rb +8 -47
  92. data/lib/metanorma/iec_document.rb +2 -3
  93. data/lib/metanorma/ieee_document/root.rb +14 -50
  94. data/lib/metanorma/ieee_document/sections/ieee_sections.rb +31 -0
  95. data/lib/metanorma/ieee_document/sections.rb +9 -0
  96. data/lib/metanorma/ieee_document.rb +3 -3
  97. data/lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb +0 -2
  98. data/lib/metanorma/ietf_document/metadata/ietf_bibliographic_item.rb +0 -2
  99. data/lib/metanorma/ietf_document/root.rb +14 -50
  100. data/lib/metanorma/ietf_document/sections/ietf_annex_section.rb +26 -0
  101. data/lib/metanorma/ietf_document/sections/ietf_clause_section.rb +26 -0
  102. data/lib/metanorma/ietf_document/sections/ietf_content_section.rb +25 -0
  103. data/lib/metanorma/ietf_document/sections/ietf_sections.rb +35 -0
  104. data/lib/metanorma/ietf_document/sections.rb +4 -23
  105. data/lib/metanorma/ietf_document.rb +4 -3
  106. data/lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb +0 -2
  107. data/lib/metanorma/iho_document/root.rb +10 -50
  108. data/lib/metanorma/iho_document.rb +0 -3
  109. data/lib/metanorma/iso_document/annotation_container.rb +1 -10
  110. data/lib/metanorma/iso_document/boilerplate.rb +1 -11
  111. data/lib/metanorma/iso_document/metadata/iso_bibliographic_item.rb +2 -2
  112. data/lib/metanorma/iso_document/metadata/iso_localized_title.rb +4 -3
  113. data/lib/metanorma/iso_document/metadata/metanorma_extension.rb +1 -12
  114. data/lib/metanorma/iso_document/root.rb +7 -73
  115. data/lib/metanorma/iso_document/sections/colophon.rb +1 -16
  116. data/lib/metanorma/iso_document/sections/iso_annex_section.rb +11 -133
  117. data/lib/metanorma/iso_document/sections/iso_clause_section.rb +9 -166
  118. data/lib/metanorma/iso_document/sections/iso_foreword_section.rb +15 -89
  119. data/lib/metanorma/iso_document/sections/iso_preface.rb +15 -21
  120. data/lib/metanorma/iso_document/sections/iso_sections.rb +19 -29
  121. data/lib/metanorma/iso_document/sections/iso_terms_section.rb +6 -9
  122. data/lib/metanorma/iso_document/terms/term_expression.rb +2 -47
  123. data/lib/metanorma/iso_document/terms/term_origin.rb +2 -24
  124. data/lib/metanorma/iso_document/terms/term_source.rb +4 -32
  125. data/lib/metanorma/iso_document.rb +2 -2
  126. data/lib/metanorma/itu_document/root.rb +10 -50
  127. data/lib/metanorma/itu_document.rb +0 -2
  128. data/lib/metanorma/jis_document/metadata/jis_bib_data_extension_type.rb +10 -0
  129. data/lib/metanorma/jis_document/metadata/jis_bibliographic_item.rb +15 -0
  130. data/lib/metanorma/jis_document/metadata.rb +12 -0
  131. data/lib/metanorma/jis_document/root.rb +29 -0
  132. data/lib/metanorma/jis_document/sections/jis_annex_section.rb +20 -0
  133. data/lib/metanorma/jis_document/sections.rb +9 -0
  134. data/lib/metanorma/jis_document.rb +11 -0
  135. data/lib/metanorma/m3d_document/metadata/m3d_bib_data_extension_type.rb +10 -0
  136. data/lib/metanorma/m3d_document/metadata/m3d_bibliographic_item.rb +15 -0
  137. data/lib/metanorma/m3d_document/metadata.rb +12 -0
  138. data/lib/metanorma/m3d_document/root.rb +29 -0
  139. data/lib/metanorma/m3d_document.rb +10 -0
  140. data/lib/metanorma/nist_document/metadata/nist_bib_data_extension_type.rb +10 -0
  141. data/lib/metanorma/nist_document/metadata/nist_bibliographic_item.rb +15 -0
  142. data/lib/metanorma/nist_document/metadata.rb +12 -0
  143. data/lib/metanorma/nist_document/root.rb +29 -0
  144. data/lib/metanorma/nist_document/sections/errata.rb +16 -0
  145. data/lib/metanorma/nist_document/sections/errata_clause.rb +20 -0
  146. data/lib/metanorma/nist_document/sections/errata_row.rb +22 -0
  147. data/lib/metanorma/nist_document/sections/nist_preface.rb +30 -0
  148. data/lib/metanorma/nist_document/sections.rb +12 -0
  149. data/lib/metanorma/nist_document.rb +11 -0
  150. data/lib/metanorma/ogc_document/root.rb +10 -50
  151. data/lib/metanorma/ogc_document.rb +0 -2
  152. data/lib/metanorma/oiml_document/root.rb +8 -47
  153. data/lib/metanorma/oiml_document.rb +2 -3
  154. data/lib/metanorma/plateau_document/metadata/plateau_bibliographic_item.rb +13 -0
  155. data/lib/metanorma/plateau_document/metadata.rb +10 -0
  156. data/lib/metanorma/plateau_document/root.rb +29 -0
  157. data/lib/metanorma/plateau_document.rb +10 -0
  158. data/lib/metanorma/registers/setup.rb +162 -0
  159. data/lib/metanorma/registers.rb +7 -0
  160. data/lib/metanorma/ribose_document/root.rb +10 -52
  161. data/lib/metanorma/ribose_document.rb +0 -2
  162. data/lib/metanorma/standard_document/annotation_container.rb +14 -0
  163. data/lib/metanorma/standard_document/block_attributes.rb +226 -0
  164. data/lib/metanorma/standard_document/blocks/passthrough.rb +1 -18
  165. data/lib/metanorma/standard_document/blocks/requirement_model.rb +18 -163
  166. data/lib/metanorma/standard_document/boilerplate.rb +14 -0
  167. data/lib/metanorma/standard_document/elements/add.rb +1 -17
  168. data/lib/metanorma/standard_document/elements/del.rb +1 -17
  169. data/lib/metanorma/standard_document/metadata/metanorma_extension.rb +16 -0
  170. data/lib/metanorma/standard_document/metadata.rb +2 -0
  171. data/lib/metanorma/standard_document/refs/reference_to_term.rb +2 -1
  172. data/lib/metanorma/standard_document/root_attributes.rb +78 -0
  173. data/lib/metanorma/standard_document/sections/abstract.rb +1 -3
  174. data/lib/metanorma/standard_document/sections/acknowledgements.rb +1 -3
  175. data/lib/metanorma/standard_document/sections/annex_section.rb +81 -16
  176. data/lib/metanorma/standard_document/sections/bibliography_section.rb +1 -2
  177. data/lib/metanorma/standard_document/sections/clause_section.rb +102 -10
  178. data/lib/metanorma/standard_document/sections/colophon.rb +16 -0
  179. data/lib/metanorma/standard_document/sections/definition_section.rb +45 -42
  180. data/lib/metanorma/standard_document/sections/floating_section_title.rb +23 -0
  181. data/lib/metanorma/standard_document/sections/foreword.rb +1 -3
  182. data/lib/metanorma/standard_document/sections/introduction.rb +1 -4
  183. data/lib/metanorma/standard_document/sections/misc_container.rb +5 -2
  184. data/lib/metanorma/standard_document/sections/preface.rb +36 -0
  185. data/lib/metanorma/standard_document/sections/sections.rb +40 -0
  186. data/lib/metanorma/standard_document/sections/standard_content_section.rb +42 -9
  187. data/lib/metanorma/standard_document/sections/terms_section.rb +52 -10
  188. data/lib/metanorma/standard_document/sections.rb +6 -2
  189. data/lib/metanorma/standard_document/terms/designation.rb +1 -1
  190. data/lib/metanorma/standard_document/terms/term_expression.rb +51 -0
  191. data/lib/metanorma/standard_document/terms.rb +1 -0
  192. data/lib/metanorma/standard_document.rb +7 -2
  193. data/lib/metanorma/un_document/metadata/un_bib_data_extension_type.rb +10 -0
  194. data/lib/metanorma/un_document/metadata/un_bibliographic_item.rb +15 -0
  195. data/lib/metanorma/un_document/metadata.rb +12 -0
  196. data/lib/metanorma/un_document/root.rb +29 -0
  197. data/lib/metanorma/un_document/sections/un_preface.rb +23 -0
  198. data/lib/metanorma/un_document/sections/un_sections.rb +24 -0
  199. data/lib/metanorma/un_document/sections.rb +10 -0
  200. data/lib/metanorma/un_document.rb +11 -0
  201. metadata +77 -3
  202. data/lib/metanorma/html/whitespace_patch.rb +0 -47
@@ -3,25 +3,67 @@
3
3
  module Metanorma
4
4
  module StandardDocument
5
5
  module Sections
6
- # Term sections give elaborated definitions of terms used in a standardization document.
7
- # The <terms> element contains <title>, <p>, <ul>, <term> children.
8
- class TermsSection < Metanorma::StandardDocument::Sections::ClauseSection
9
- attribute :terms, Metanorma::StandardDocument::Terms::Term,
6
+ # Term sections give elaborated definitions of terms used in a
7
+ # standardization document.
8
+ #
9
+ # Corresponds to isodoc.rnc:
10
+ # terms = element terms {
11
+ # Section-Attributes, title?,
12
+ # ( paragraph | ul )*,
13
+ # term+
14
+ # }
15
+ class TermsSection < Lutaml::Model::Serializable
16
+ attribute :id, :string
17
+ attribute :anchor, :string
18
+ attribute :type, :string
19
+ attribute :number, :string
20
+ attribute :obligation, :string
21
+ attribute :inline_header, :string
22
+ attribute :unnumbered, :string
23
+ attribute :toc, :string
24
+ attribute :class_attr, :string
25
+ attribute :title,
26
+ Metanorma::Document::Components::Inline::TitleWithAnnotationElement
27
+
28
+ # Prefatory paragraphs before term entries
29
+ attribute :paragraphs,
30
+ Metanorma::Document::Components::Paragraphs::ParagraphBlock,
31
+ collection: true
32
+ attribute :unordered_lists,
33
+ Metanorma::Document::Components::Lists::UnorderedList,
34
+ collection: true
35
+
36
+ # Term entries
37
+ attribute :terms,
38
+ Metanorma::StandardDocument::Terms::Term,
10
39
  collection: true
11
40
 
41
+ # Presentation-specific attributes
12
42
  attribute :semx_id, :string
13
- attribute :original_id, :string
14
43
  attribute :autonum, :string
15
44
  attribute :displayorder, :integer
45
+ attribute :fmt_title,
46
+ Metanorma::Document::Components::Inline::FmtTitleElement
47
+ attribute :fmt_xref_label,
48
+ Metanorma::Document::Components::Inline::FmtXrefLabelElement,
49
+ collection: true
50
+ attribute :variant_title,
51
+ Metanorma::Document::Components::Inline::VariantTitleElement,
52
+ collection: true
16
53
 
17
54
  xml do
18
55
  element "terms"
19
- map_element "term", to: :terms
56
+ ordered
57
+
58
+ Metanorma::StandardDocument::SectionXmlMapping.apply_content_section_attributes(self)
20
59
 
21
- map_attribute "semx-id", to: :semx_id
22
- map_attribute "original-id", to: :original_id
23
- map_attribute "autonum", to: :autonum
24
- map_attribute "displayorder", to: :displayorder
60
+ map_element "title", to: :title
61
+ map_element "variant-title", to: :variant_title
62
+ map_element "fmt-title", to: :fmt_title
63
+ map_element "fmt-xref-label", to: :fmt_xref_label
64
+ map_element "p", to: :paragraphs
65
+ map_element "ul", to: :unordered_lists
66
+ map_element "term", to: :terms
25
67
  end
26
68
  end
27
69
  end
@@ -7,18 +7,22 @@ module Metanorma
7
7
  autoload :Acknowledgements, "#{__dir__}/sections/acknowledgements"
8
8
  autoload :AnnexSection, "#{__dir__}/sections/annex_section"
9
9
  autoload :BibliographySection, "#{__dir__}/sections/bibliography_section"
10
+ autoload :Colophon, "#{__dir__}/sections/colophon"
10
11
  autoload :BoilerplateType, "#{__dir__}/sections/boilerplate_type"
11
12
  autoload :ClauseHierarchicalSection,
12
13
  "#{__dir__}/sections/clause_hierarchical_section"
13
14
  autoload :ClauseSection, "#{__dir__}/sections/clause_section"
15
+ autoload :ContentSection, "#{__dir__}/sections/standard_content_section"
14
16
  autoload :DefinitionSection, "#{__dir__}/sections/definition_section"
17
+ autoload :FloatingSectionTitle,
18
+ "#{__dir__}/sections/floating_section_title"
15
19
  autoload :FloatingTitle, "#{__dir__}/sections/floating_title"
16
20
  autoload :Foreword, "#{__dir__}/sections/foreword"
17
21
  autoload :Introduction, "#{__dir__}/sections/introduction"
18
22
  autoload :MiscContainer, "#{__dir__}/sections/misc_container"
19
23
  autoload :NormativeType, "#{__dir__}/sections/normative_type"
20
- autoload :StandardContentSection,
21
- "#{__dir__}/sections/standard_content_section"
24
+ autoload :Preface, "#{__dir__}/sections/preface"
25
+ autoload :Sections, "#{__dir__}/sections/sections"
22
26
  autoload :StandardHierarchicalSection,
23
27
  "#{__dir__}/sections/standard_hierarchical_section"
24
28
  autoload :StandardReferencesSection,
@@ -10,7 +10,7 @@ module Metanorma
10
10
  Metanorma::Document::Components::DataTypes::Iso3166Code, collection: true
11
11
  attribute :sources, Metanorma::StandardDocument::Terms::TermSource,
12
12
  collection: true
13
- attribute :expression, Metanorma::IsoDocument::Terms::TermExpression
13
+ attribute :expression, Metanorma::StandardDocument::Terms::TermExpression
14
14
 
15
15
  attribute :semx_id, :string
16
16
  attribute :original_id, :string
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module StandardDocument
5
+ module Terms
6
+ class TermNameElement < Lutaml::Model::Serializable
7
+ attribute :id, :string
8
+ attribute :semx_id, :string
9
+ attribute :lang, :string
10
+ attribute :text, :string, collection: true
11
+ attribute :strike, Metanorma::Document::Components::TextElements::StrikeElement,
12
+ collection: true
13
+ attribute :em, Metanorma::Document::Components::Inline::EmRawElement,
14
+ collection: true
15
+ attribute :strong, Metanorma::Document::Components::Inline::StrongRawElement,
16
+ collection: true
17
+ attribute :sup, Metanorma::Document::Components::Inline::SupElement,
18
+ collection: true
19
+ attribute :sub, Metanorma::Document::Components::Inline::SubElement,
20
+ collection: true
21
+
22
+ xml do
23
+ element "name"
24
+ map_attribute "id", to: :id
25
+ map_attribute "semx-id", to: :semx_id
26
+ map_attribute "lang", to: :lang
27
+ mixed_content
28
+ map_content to: :text
29
+ map_element "strike", to: :strike
30
+ map_element "em", to: :em
31
+ map_element "strong", to: :strong
32
+ map_element "sup", to: :sup
33
+ map_element "sub", to: :sub
34
+ end
35
+ end
36
+
37
+ class TermExpression < Lutaml::Model::Serializable
38
+ attribute :name, TermNameElement, collection: true
39
+ attribute :usage, :string
40
+ attribute :abbreviation_type, :string
41
+
42
+ xml do
43
+ element "expression"
44
+ map_element "name", to: :name
45
+ map_element "usage", to: :usage
46
+ map_element "abbreviation-type", to: :abbreviation_type
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -22,6 +22,7 @@ module Metanorma
22
22
  autoload :Term, "#{__dir__}/terms/term"
23
23
  autoload :TermCollection, "#{__dir__}/terms/term_collection"
24
24
  autoload :TermDefinition, "#{__dir__}/terms/term_definition"
25
+ autoload :TermExpression, "#{__dir__}/terms/term_expression"
25
26
  autoload :TermSource, "#{__dir__}/terms/term_source"
26
27
  autoload :TermSourceStatus, "#{__dir__}/terms/term_source_status"
27
28
  autoload :TermSourceType, "#{__dir__}/terms/term_source_type"
@@ -1,16 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/document"
4
-
5
3
  module Metanorma
6
4
  module StandardDocument
5
+ autoload :AnnotationContainer,
6
+ "metanorma/standard_document/annotation_container"
7
+ autoload :BlockAttributes, "metanorma/standard_document/block_attributes"
8
+ autoload :BlockXmlMapping, "metanorma/standard_document/block_attributes"
9
+ autoload :SectionXmlMapping, "metanorma/standard_document/block_attributes"
7
10
  autoload :Blocks, "metanorma/standard_document/blocks"
11
+ autoload :Boilerplate, "metanorma/standard_document/boilerplate"
8
12
  autoload :Elements, "metanorma/standard_document/elements"
9
13
  autoload :Lists, "metanorma/standard_document/lists"
10
14
  autoload :Metadata, "metanorma/standard_document/metadata"
11
15
  autoload :Namespace, "metanorma/standard_document/namespace"
12
16
  autoload :Refs, "metanorma/standard_document/refs"
13
17
  autoload :Root, "metanorma/standard_document/root"
18
+ autoload :RootAttributes, "metanorma/standard_document/root_attributes"
14
19
  autoload :Sections, "metanorma/standard_document/sections"
15
20
  autoload :StandardDocumentType,
16
21
  "metanorma/standard_document/standard_document_type"
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module UnDocument
5
+ module Metadata
6
+ class UnBibDataExtensionType < Metanorma::IsoDocument::Metadata::IsoBibDataExtensionType
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module UnDocument
5
+ module Metadata
6
+ class UnBibliographicItem < Metanorma::IsoDocument::Metadata::IsoBibliographicItem
7
+ attribute :ext, UnBibDataExtensionType
8
+
9
+ xml do
10
+ element "bibdata"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module UnDocument
5
+ module Metadata
6
+ autoload :UnBibDataExtensionType,
7
+ "#{__dir__}/metadata/un_bib_data_extension_type"
8
+ autoload :UnBibliographicItem,
9
+ "#{__dir__}/metadata/un_bibliographic_item"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module UnDocument
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
7
+
8
+ def self.lutaml_default_register
9
+ :un_document
10
+ end
11
+
12
+ attribute :bibdata, Metadata::UnBibliographicItem
13
+ attribute :preface,
14
+ UnDocument::Sections::UnPreface
15
+ attribute :sections,
16
+ UnDocument::Sections::UnSections
17
+ attribute :annex,
18
+ Metanorma::StandardDocument::Sections::AnnexSection,
19
+ collection: true
20
+
21
+ xml do
22
+ element "metanorma"
23
+ namespace Metanorma::StandardDocument::Namespace
24
+
25
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module UnDocument
5
+ module Sections
6
+ # UN preface with only abstract, foreword, introduction.
7
+ # Corresponds to un.rnc:
8
+ # preface = element preface { abstract?, foreword?, introduction? }
9
+ class UnPreface < Metanorma::StandardDocument::Sections::Preface
10
+ xml do
11
+ element "preface"
12
+ ordered
13
+
14
+ map_element "abstract", to: :abstract
15
+ map_element "foreword", to: :foreword
16
+ map_element "introduction", to: :introduction
17
+
18
+ Metanorma::StandardDocument::SectionXmlMapping.apply_preface_attributes(self)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module UnDocument
5
+ module Sections
6
+ # UN sections container.
7
+ # Corresponds to un.rnc:
8
+ # sections = element sections { (clause | floating-title)+ }
9
+ #
10
+ # UN does not allow terms/definitions at top level of sections.
11
+ class UnSections < Metanorma::StandardDocument::Sections::Sections
12
+ xml do
13
+ element "sections"
14
+ ordered
15
+
16
+ map_element "clause", to: :clause
17
+ map_element "floating-title", to: :floating_title
18
+
19
+ Metanorma::StandardDocument::SectionXmlMapping.apply_sections_attributes(self)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module UnDocument
5
+ module Sections
6
+ autoload :UnPreface, "#{__dir__}/sections/un_preface"
7
+ autoload :UnSections, "#{__dir__}/sections/un_sections"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module UnDocument
5
+ autoload :Metadata, "metanorma/un_document/metadata"
6
+ autoload :Root, "metanorma/un_document/root"
7
+ autoload :Sections, "metanorma/un_document/sections"
8
+ end
9
+ end
10
+
11
+ Metanorma::Registers::Setup.setup_un_register
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-document
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-05-12 00:00:00.000000000 Z
11
+ date: 2026-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model
@@ -167,6 +167,7 @@ files:
167
167
  - lib/metanorma/basic_document/lists/definition.rb
168
168
  - lib/metanorma/basic_document/lists/definition_list.rb
169
169
  - lib/metanorma/basic_document/lists/list.rb
170
+ - lib/metanorma/basic_document/lists/list_item.rb
170
171
  - lib/metanorma/basic_document/lists/ordered_list.rb
171
172
  - lib/metanorma/basic_document/lists/ordered_list_type.rb
172
173
  - lib/metanorma/basic_document/lists/unordered_list.rb
@@ -229,6 +230,15 @@ files:
229
230
  - lib/metanorma/bipm_document/metadata/bipm_bibliographic_item.rb
230
231
  - lib/metanorma/bipm_document/metadata/bipm_structured_identifier.rb
231
232
  - lib/metanorma/bipm_document/root.rb
233
+ - lib/metanorma/bsi_document.rb
234
+ - lib/metanorma/bsi_document/metadata.rb
235
+ - lib/metanorma/bsi_document/metadata/bsi_bib_data_extension_type.rb
236
+ - lib/metanorma/bsi_document/metadata/bsi_bibliographic_item.rb
237
+ - lib/metanorma/bsi_document/root.rb
238
+ - lib/metanorma/bsi_document/sections.rb
239
+ - lib/metanorma/bsi_document/sections/bsi_annex_section.rb
240
+ - lib/metanorma/bsi_document/sections/bsi_clause_section.rb
241
+ - lib/metanorma/bsi_document/sections/bsi_sections.rb
232
242
  - lib/metanorma/cc_document.rb
233
243
  - lib/metanorma/cc_document/metadata.rb
234
244
  - lib/metanorma/cc_document/metadata/cc_bib_data_extension_type.rb
@@ -258,6 +268,8 @@ files:
258
268
  - lib/metanorma/document/components/blocks/basic_block.rb
259
269
  - lib/metanorma/document/components/blocks/basic_block_no_notes.rb
260
270
  - lib/metanorma/document/components/blocks/note_block.rb
271
+ - lib/metanorma/document/components/blocks/passthrough.rb
272
+ - lib/metanorma/document/components/blocks/requirement_model.rb
261
273
  - lib/metanorma/document/components/change.rb
262
274
  - lib/metanorma/document/components/change/attribute_change_action.rb
263
275
  - lib/metanorma/document/components/change/attribute_modify.rb
@@ -383,6 +395,7 @@ files:
383
395
  - lib/metanorma/document/components/reference_elements/reference_to_id_element.rb
384
396
  - lib/metanorma/document/components/reference_elements/reference_to_id_with_paragraph_element.rb
385
397
  - lib/metanorma/document/components/reference_elements/reference_to_link_element.rb
398
+ - lib/metanorma/document/components/reference_elements/source_element.rb
386
399
  - lib/metanorma/document/components/sections.rb
387
400
  - lib/metanorma/document/components/sections/basic_section.rb
388
401
  - lib/metanorma/document/components/sections/content_section.rb
@@ -418,6 +431,9 @@ files:
418
431
  - lib/metanorma/document/components/text_elements/text_element_type.rb
419
432
  - lib/metanorma/document/components/text_elements/underline_element.rb
420
433
  - lib/metanorma/document/data_types.rb
434
+ - lib/metanorma/document/elements.rb
435
+ - lib/metanorma/document/elements/add.rb
436
+ - lib/metanorma/document/elements/del.rb
421
437
  - lib/metanorma/document/relaton.rb
422
438
  - lib/metanorma/document/relaton/address.rb
423
439
  - lib/metanorma/document/relaton/affiliation.rb
@@ -471,6 +487,13 @@ files:
471
487
  - lib/metanorma/document/relaton/vocab_id_type.rb
472
488
  - lib/metanorma/document/root.rb
473
489
  - lib/metanorma/document/version.rb
490
+ - lib/metanorma/gb_document.rb
491
+ - lib/metanorma/gb_document/metadata.rb
492
+ - lib/metanorma/gb_document/metadata/gb_bib_data_extension_type.rb
493
+ - lib/metanorma/gb_document/metadata/gb_bibliographic_item.rb
494
+ - lib/metanorma/gb_document/root.rb
495
+ - lib/metanorma/generic_document.rb
496
+ - lib/metanorma/generic_document/root.rb
474
497
  - lib/metanorma/html.rb
475
498
  - lib/metanorma/html/asset_pipeline.rb
476
499
  - lib/metanorma/html/base_renderer.rb
@@ -521,7 +544,6 @@ files:
521
544
  - lib/metanorma/html/templates/_toc.html.liquid
522
545
  - lib/metanorma/html/templates/document.html.liquid
523
546
  - lib/metanorma/html/theme.rb
524
- - lib/metanorma/html/whitespace_patch.rb
525
547
  - lib/metanorma/iec_document.rb
526
548
  - lib/metanorma/iec_document/root.rb
527
549
  - lib/metanorma/ieee_document.rb
@@ -530,6 +552,8 @@ files:
530
552
  - lib/metanorma/ieee_document/metadata/ieee_bibliographic_item.rb
531
553
  - lib/metanorma/ieee_document/metadata/ieee_structured_identifier.rb
532
554
  - lib/metanorma/ieee_document/root.rb
555
+ - lib/metanorma/ieee_document/sections.rb
556
+ - lib/metanorma/ieee_document/sections/ieee_sections.rb
533
557
  - lib/metanorma/ietf_document.rb
534
558
  - lib/metanorma/ietf_document/metadata.rb
535
559
  - lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb
@@ -537,6 +561,10 @@ files:
537
561
  - lib/metanorma/ietf_document/metadata/ietf_editorial_group.rb
538
562
  - lib/metanorma/ietf_document/root.rb
539
563
  - lib/metanorma/ietf_document/sections.rb
564
+ - lib/metanorma/ietf_document/sections/ietf_annex_section.rb
565
+ - lib/metanorma/ietf_document/sections/ietf_clause_section.rb
566
+ - lib/metanorma/ietf_document/sections/ietf_content_section.rb
567
+ - lib/metanorma/ietf_document/sections/ietf_sections.rb
540
568
  - lib/metanorma/iho_document.rb
541
569
  - lib/metanorma/iho_document/metadata.rb
542
570
  - lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb
@@ -606,6 +634,28 @@ files:
606
634
  - lib/metanorma/itu_document/metadata/itu_series.rb
607
635
  - lib/metanorma/itu_document/metadata/itu_structured_identifier.rb
608
636
  - lib/metanorma/itu_document/root.rb
637
+ - lib/metanorma/jis_document.rb
638
+ - lib/metanorma/jis_document/metadata.rb
639
+ - lib/metanorma/jis_document/metadata/jis_bib_data_extension_type.rb
640
+ - lib/metanorma/jis_document/metadata/jis_bibliographic_item.rb
641
+ - lib/metanorma/jis_document/root.rb
642
+ - lib/metanorma/jis_document/sections.rb
643
+ - lib/metanorma/jis_document/sections/jis_annex_section.rb
644
+ - lib/metanorma/m3d_document.rb
645
+ - lib/metanorma/m3d_document/metadata.rb
646
+ - lib/metanorma/m3d_document/metadata/m3d_bib_data_extension_type.rb
647
+ - lib/metanorma/m3d_document/metadata/m3d_bibliographic_item.rb
648
+ - lib/metanorma/m3d_document/root.rb
649
+ - lib/metanorma/nist_document.rb
650
+ - lib/metanorma/nist_document/metadata.rb
651
+ - lib/metanorma/nist_document/metadata/nist_bib_data_extension_type.rb
652
+ - lib/metanorma/nist_document/metadata/nist_bibliographic_item.rb
653
+ - lib/metanorma/nist_document/root.rb
654
+ - lib/metanorma/nist_document/sections.rb
655
+ - lib/metanorma/nist_document/sections/errata.rb
656
+ - lib/metanorma/nist_document/sections/errata_clause.rb
657
+ - lib/metanorma/nist_document/sections/errata_row.rb
658
+ - lib/metanorma/nist_document/sections/nist_preface.rb
609
659
  - lib/metanorma/ogc_document.rb
610
660
  - lib/metanorma/ogc_document/metadata.rb
611
661
  - lib/metanorma/ogc_document/metadata/ogc_bib_data_extension_type.rb
@@ -613,12 +663,20 @@ files:
613
663
  - lib/metanorma/ogc_document/root.rb
614
664
  - lib/metanorma/oiml_document.rb
615
665
  - lib/metanorma/oiml_document/root.rb
666
+ - lib/metanorma/plateau_document.rb
667
+ - lib/metanorma/plateau_document/metadata.rb
668
+ - lib/metanorma/plateau_document/metadata/plateau_bibliographic_item.rb
669
+ - lib/metanorma/plateau_document/root.rb
670
+ - lib/metanorma/registers.rb
671
+ - lib/metanorma/registers/setup.rb
616
672
  - lib/metanorma/ribose_document.rb
617
673
  - lib/metanorma/ribose_document/metadata.rb
618
674
  - lib/metanorma/ribose_document/metadata/ribose_bib_data_extension_type.rb
619
675
  - lib/metanorma/ribose_document/metadata/ribose_bibliographic_item.rb
620
676
  - lib/metanorma/ribose_document/root.rb
621
677
  - lib/metanorma/standard_document.rb
678
+ - lib/metanorma/standard_document/annotation_container.rb
679
+ - lib/metanorma/standard_document/block_attributes.rb
622
680
  - lib/metanorma/standard_document/blocks.rb
623
681
  - lib/metanorma/standard_document/blocks/amend_block.rb
624
682
  - lib/metanorma/standard_document/blocks/amend_content_block.rb
@@ -650,6 +708,7 @@ files:
650
708
  - lib/metanorma/standard_document/blocks/svg_target_type.rb
651
709
  - lib/metanorma/standard_document/blocks/table_col.rb
652
710
  - lib/metanorma/standard_document/blocks/to_c.rb
711
+ - lib/metanorma/standard_document/boilerplate.rb
653
712
  - lib/metanorma/standard_document/elements.rb
654
713
  - lib/metanorma/standard_document/elements/add.rb
655
714
  - lib/metanorma/standard_document/elements/del.rb
@@ -671,6 +730,7 @@ files:
671
730
  - lib/metanorma/standard_document/metadata.rb
672
731
  - lib/metanorma/standard_document/metadata/editorial_group_type.rb
673
732
  - lib/metanorma/standard_document/metadata/ics_type.rb
733
+ - lib/metanorma/standard_document/metadata/metanorma_extension.rb
674
734
  - lib/metanorma/standard_document/metadata/standard_bib_data.rb
675
735
  - lib/metanorma/standard_document/metadata/standard_bib_data_extension_type.rb
676
736
  - lib/metanorma/standard_document/metadata/structured_identifier_type.rb
@@ -686,6 +746,7 @@ files:
686
746
  - lib/metanorma/standard_document/refs/xref_connective_type.rb
687
747
  - lib/metanorma/standard_document/refs/xref_target_type.rb
688
748
  - lib/metanorma/standard_document/root.rb
749
+ - lib/metanorma/standard_document/root_attributes.rb
689
750
  - lib/metanorma/standard_document/sections.rb
690
751
  - lib/metanorma/standard_document/sections/abstract.rb
691
752
  - lib/metanorma/standard_document/sections/acknowledgements.rb
@@ -694,12 +755,16 @@ files:
694
755
  - lib/metanorma/standard_document/sections/boilerplate_type.rb
695
756
  - lib/metanorma/standard_document/sections/clause_hierarchical_section.rb
696
757
  - lib/metanorma/standard_document/sections/clause_section.rb
758
+ - lib/metanorma/standard_document/sections/colophon.rb
697
759
  - lib/metanorma/standard_document/sections/definition_section.rb
760
+ - lib/metanorma/standard_document/sections/floating_section_title.rb
698
761
  - lib/metanorma/standard_document/sections/floating_title.rb
699
762
  - lib/metanorma/standard_document/sections/foreword.rb
700
763
  - lib/metanorma/standard_document/sections/introduction.rb
701
764
  - lib/metanorma/standard_document/sections/misc_container.rb
702
765
  - lib/metanorma/standard_document/sections/normative_type.rb
766
+ - lib/metanorma/standard_document/sections/preface.rb
767
+ - lib/metanorma/standard_document/sections/sections.rb
703
768
  - lib/metanorma/standard_document/sections/standard_content_section.rb
704
769
  - lib/metanorma/standard_document/sections/standard_hierarchical_section.rb
705
770
  - lib/metanorma/standard_document/sections/standard_references_section.rb
@@ -723,10 +788,19 @@ files:
723
788
  - lib/metanorma/standard_document/terms/term.rb
724
789
  - lib/metanorma/standard_document/terms/term_collection.rb
725
790
  - lib/metanorma/standard_document/terms/term_definition.rb
791
+ - lib/metanorma/standard_document/terms/term_expression.rb
726
792
  - lib/metanorma/standard_document/terms/term_source.rb
727
793
  - lib/metanorma/standard_document/terms/term_source_status.rb
728
794
  - lib/metanorma/standard_document/terms/term_source_type.rb
729
795
  - lib/metanorma/standard_document/terms/verbal_expression.rb
796
+ - lib/metanorma/un_document.rb
797
+ - lib/metanorma/un_document/metadata.rb
798
+ - lib/metanorma/un_document/metadata/un_bib_data_extension_type.rb
799
+ - lib/metanorma/un_document/metadata/un_bibliographic_item.rb
800
+ - lib/metanorma/un_document/root.rb
801
+ - lib/metanorma/un_document/sections.rb
802
+ - lib/metanorma/un_document/sections/un_preface.rb
803
+ - lib/metanorma/un_document/sections/un_sections.rb
730
804
  - metanorma-document.gemspec
731
805
  - tasks/roundtrip_samples.rake
732
806
  homepage: https://github.com/metanorma/metanorma-document
@@ -1,47 +0,0 @@
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