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
@@ -82,7 +82,7 @@ module Metanorma
82
82
  @example_bg = "rgba(232, 248, 245, 0.6)"
83
83
  @example_border = "#0d9488"
84
84
  @admonition_color = "#b8860b"
85
- @admonition_bg = "rgba(255, 252, 245, 0.8)"
85
+ @admonition_bg = "rgba(255, 252, 245, 0.8)"
86
86
  @admonition_border = "#e8a820"
87
87
  @footer_border_color = nil
88
88
  @cover_separator_color = nil
@@ -92,7 +92,7 @@ module Metanorma
92
92
  @cover_after_bg = nil
93
93
  @cover_before_bg = nil
94
94
  @progress_bar_color = nil
95
- @extra_css = nil
95
+ @extra_css = nil
96
96
 
97
97
  # Dark mode defaults
98
98
  @dark_bg = "#0f1118"
@@ -1,9 +1,56 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/html/whitespace_patch"
3
+ require "liquid"
4
+ require "nokogiri"
4
5
 
5
6
  module Metanorma
6
7
  module Html
8
+ unless defined?(TEMPLATES_ROOT)
9
+ TEMPLATES_ROOT = File.join(__dir__, "html", "templates")
10
+
11
+ Liquid::Environment.default.file_system = Liquid::LocalFileSystem.new(
12
+ TEMPLATES_ROOT, "_%s.html.liquid"
13
+ )
14
+
15
+ Moxml::Adapter::Nokogiri.class_eval do
16
+ class << self
17
+ alias_method :_original_children_patched, :children
18
+ remove_method :children
19
+ end
20
+
21
+ def self.children(node)
22
+ node.children.to_a
23
+ end
24
+ end
25
+
26
+ Lutaml::Xml::XmlElement.class_eval do
27
+ remove_method :order
28
+
29
+ def order
30
+ return @order_cache if @order_cache
31
+
32
+ @order_cache = children.filter_map do |child|
33
+ if child.text?
34
+ Lutaml::Xml::Element.new("Text", "text",
35
+ text_content: child.text,
36
+ node_type: :text)
37
+ elsif child.cdata?
38
+ Lutaml::Xml::Element.new("Text", "#cdata-section",
39
+ text_content: child.text,
40
+ node_type: :cdata)
41
+ elsif child.comment?
42
+ nil
43
+ else
44
+ Lutaml::Xml::Element.new("Element", child.unprefixed_name,
45
+ node_type: :element,
46
+ namespace_uri: child.namespace_uri,
47
+ namespace_prefix: child.namespace_prefix)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+
7
54
  autoload :BaseRenderer, "metanorma/html/base_renderer"
8
55
  autoload :Generator, "metanorma/html/generator"
9
56
  autoload :Theme, "metanorma/html/theme"
@@ -1,65 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
-
6
3
  module Metanorma
7
4
  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
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
7
+
8
+ def self.lutaml_default_register
9
+ :iec_document
10
+ end
13
11
 
14
12
  attribute :bibdata,
15
13
  Metanorma::IsoDocument::Metadata::IsoBibliographicItem
16
-
17
- attribute :term_sources,
18
- Metanorma::Document::Components::ReferenceElements::Citation,
19
- collection: true
20
-
21
14
  attribute :preface, Metanorma::IsoDocument::Sections::IsoPreface
22
15
  attribute :sections, Metanorma::IsoDocument::Sections::IsoSections
23
16
  attribute :annex, Metanorma::IsoDocument::Sections::IsoAnnexSection,
24
17
  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
18
 
41
19
  xml do
42
20
  element "metanorma"
43
21
  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
22
+
23
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
63
24
  end
64
25
  end
65
26
  end
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
-
6
3
  module Metanorma
7
4
  module IecDocument
8
5
  autoload :Root, "metanorma/iec_document/root"
9
6
  end
10
7
  end
8
+
9
+ Metanorma::Registers::Setup.setup_iec_register
@@ -1,64 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
-
6
3
  module Metanorma
7
4
  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
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
15
7
 
16
- attribute :term_sources,
17
- Metanorma::Document::Components::ReferenceElements::Citation,
18
- collection: true
8
+ def self.lutaml_default_register
9
+ :ieee_document
10
+ end
19
11
 
20
- attribute :preface, Metanorma::IsoDocument::Sections::IsoPreface
21
- attribute :sections, Metanorma::IsoDocument::Sections::IsoSections
22
- attribute :annex, Metanorma::IsoDocument::Sections::IsoAnnexSection,
12
+ attribute :bibdata, Metadata::IeeeBibliographicItem
13
+ attribute :preface,
14
+ Metanorma::StandardDocument::Sections::Preface
15
+ attribute :sections,
16
+ IeeeDocument::Sections::IeeeSections
17
+ attribute :annex,
18
+ Metanorma::StandardDocument::Sections::AnnexSection,
23
19
  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
20
 
40
21
  xml do
41
22
  element "metanorma"
42
23
  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
24
+
25
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
62
26
  end
63
27
  end
64
28
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IeeeDocument
5
+ module Sections
6
+ # IEEE sections container.
7
+ # Corresponds to ieee.rnc:
8
+ # sections = element sections {
9
+ # note?,
10
+ # ( clause | terms | term-clause | definitions | floating-title )+
11
+ # }
12
+ #
13
+ # Differs from isodoc default by adding an optional leading note.
14
+ class IeeeSections < Metanorma::StandardDocument::Sections::Sections
15
+ attribute :note,
16
+ Metanorma::Document::Components::Blocks::NoteBlock
17
+
18
+ xml do
19
+ element "sections"
20
+ ordered
21
+
22
+ map_element "note", to: :note
23
+
24
+ Metanorma::StandardDocument::SectionXmlMapping.apply_sections_elements(self)
25
+
26
+ Metanorma::StandardDocument::SectionXmlMapping.apply_sections_attributes(self)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IeeeDocument
5
+ module Sections
6
+ autoload :IeeeSections, "#{__dir__}/sections/ieee_sections"
7
+ end
8
+ end
9
+ end
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
-
6
3
  module Metanorma
7
4
  module IeeeDocument
8
5
  autoload :Metadata, "metanorma/ieee_document/metadata"
9
6
  autoload :Root, "metanorma/ieee_document/root"
7
+ autoload :Sections, "metanorma/ieee_document/sections"
10
8
  end
11
9
  end
10
+
11
+ Metanorma::Registers::Setup.setup_ieee_register
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "lutaml/model"
4
-
5
3
  module Metanorma
6
4
  module IetfDocument
7
5
  module Metadata
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/document"
4
-
5
3
  module Metanorma
6
4
  module IetfDocument
7
5
  module Metadata
@@ -1,65 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
- require_relative "metadata"
6
- require_relative "sections"
7
-
8
3
  module Metanorma
9
4
  module IetfDocument
10
- class Root < Metanorma::StandardDocument::Root
11
- attribute :version, :string
12
- attribute :type, :string
13
- attribute :schema_version, :string
14
- attribute :flavor, :string
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
7
+
8
+ def self.lutaml_default_register
9
+ :ietf_document
10
+ end
15
11
 
16
12
  attribute :bibdata,
17
13
  Metanorma::IetfDocument::Metadata::IetfBibliographicItem
18
-
19
- attribute :term_sources,
20
- Metanorma::Document::Components::ReferenceElements::Citation,
14
+ attribute :preface,
15
+ Metanorma::StandardDocument::Sections::Preface
16
+ attribute :sections,
17
+ Metanorma::IetfDocument::Sections::IetfSections
18
+ attribute :annex,
19
+ Metanorma::IetfDocument::Sections::IetfAnnexSection,
21
20
  collection: true
22
21
 
23
- attribute :preface, Metanorma::IsoDocument::Sections::IsoPreface
24
- attribute :sections, Metanorma::IetfDocument::Sections::IetfSections
25
- attribute :annex, Metanorma::IsoDocument::Sections::IsoAnnexSection,
26
- collection: true
27
- attribute :bibliography,
28
- Metanorma::StandardDocument::Sections::BibliographySection
29
- attribute :boilerplate, Metanorma::IsoDocument::Boilerplate
30
- attribute :metanorma_extension,
31
- Metanorma::IsoDocument::Metadata::MetanormaExtension
32
- attribute :annotation_container, Metanorma::IsoDocument::AnnotationContainer
33
- attribute :indexsect,
34
- Metanorma::Document::Components::Sections::BasicSection
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
22
  xml do
42
23
  element "metanorma"
43
24
  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
25
+
26
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
63
27
  end
64
28
  end
65
29
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IetfDocument
5
+ module Sections
6
+ class IetfAnnexSection < Metanorma::StandardDocument::Sections::AnnexSection
7
+ # IETF-specific attributes
8
+ attribute :numbered, :string
9
+ attribute :remove_in_rfc, :string
10
+
11
+ # Sub-clauses within IETF annex use IetfClauseSection
12
+ attribute :clause, IetfClauseSection, collection: true
13
+
14
+ xml do
15
+ element "annex"
16
+ ordered
17
+
18
+ Metanorma::StandardDocument::SectionXmlMapping.apply_annex_attributes(self)
19
+ map_attribute "numbered", to: :numbered
20
+ map_attribute "removeInRFC", to: :remove_in_rfc
21
+ Metanorma::StandardDocument::SectionXmlMapping.apply_annex_elements(self)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IetfDocument
5
+ module Sections
6
+ class IetfClauseSection < Metanorma::StandardDocument::Sections::ClauseSection
7
+ # IETF-specific attributes
8
+ attribute :numbered, :string
9
+ attribute :remove_in_rfc, :string
10
+
11
+ # Recursive IETF sub-clauses
12
+ attribute :clause, IetfClauseSection, collection: true
13
+
14
+ xml do
15
+ element "clause"
16
+ ordered
17
+
18
+ Metanorma::StandardDocument::SectionXmlMapping.apply_clause_attributes(self)
19
+ map_attribute "numbered", to: :numbered
20
+ map_attribute "removeInRFC", to: :remove_in_rfc
21
+ Metanorma::StandardDocument::SectionXmlMapping.apply_clause_elements(self)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IetfDocument
5
+ module Sections
6
+ class IetfContentSection < Metanorma::StandardDocument::Sections::ContentSection
7
+ attribute :numbered, :string
8
+ attribute :remove_in_rfc, :string
9
+
10
+ # Recursive IETF sub-clauses
11
+ attribute :subsection, IetfContentSection, collection: true
12
+
13
+ xml do
14
+ element "clause"
15
+ ordered
16
+
17
+ Metanorma::StandardDocument::SectionXmlMapping.apply_content_section_attributes(self)
18
+ map_attribute "numbered", to: :numbered
19
+ map_attribute "removeInRFC", to: :remove_in_rfc
20
+ Metanorma::StandardDocument::SectionXmlMapping.apply_content_section_elements(self)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metanorma
4
+ module IetfDocument
5
+ module Sections
6
+ # IETF sections container.
7
+ # Corresponds to ietf.rnc:
8
+ # sections = element sections {
9
+ # ( clause | terms | term-clause | definitions | floating-title )+
10
+ # }
11
+ #
12
+ # Extends StandardDocument sections with loose bibitem references
13
+ # and paragraph elements directly inside sections.
14
+ class IetfSections < Metanorma::StandardDocument::Sections::Sections
15
+ attribute :bibitem,
16
+ Metanorma::BasicDocument::BibData::BibliographicItem,
17
+ collection: true
18
+ attribute :p,
19
+ Metanorma::Document::Components::Paragraphs::ParagraphBlock,
20
+ collection: true
21
+
22
+ xml do
23
+ element "sections"
24
+ ordered
25
+
26
+ Metanorma::StandardDocument::SectionXmlMapping.apply_sections_elements(self)
27
+ map_element "bibitem", to: :bibitem
28
+ map_element "p", to: :p
29
+
30
+ Metanorma::StandardDocument::SectionXmlMapping.apply_sections_attributes(self)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,31 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/iso_document"
4
-
5
3
  module Metanorma
6
4
  module IetfDocument
7
5
  module Sections
8
- class IetfSections < Metanorma::IsoDocument::Sections::IsoSections
9
- # Loose bibliographic items appearing directly inside sections.
10
- attribute :bibitem,
11
- Metanorma::BasicDocument::BibData::BibliographicItem,
12
- collection: true
13
-
14
- xml do
15
- element "sections"
16
- ordered
17
- map_element "note", to: :note
18
- map_element "admonition", to: :admonition
19
- map_element "terms", to: :terms
20
- map_element "definitions", to: :definitions
21
- map_element "clause", to: :clause
22
- map_element "references", to: :references
23
- map_element "bibitem", to: :bibitem
24
- map_element "p", to: :p
25
- map_attribute "semx-id", to: :semx_id
26
- map_attribute "displayorder", to: :displayorder
27
- end
28
- end
6
+ autoload :IetfSections, "#{__dir__}/sections/ietf_sections"
7
+ autoload :IetfContentSection, "#{__dir__}/sections/ietf_content_section"
8
+ autoload :IetfClauseSection, "#{__dir__}/sections/ietf_clause_section"
9
+ autoload :IetfAnnexSection, "#{__dir__}/sections/ietf_annex_section"
29
10
  end
30
11
  end
31
12
  end
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
-
6
3
  module Metanorma
7
4
  module IetfDocument
5
+ autoload :Metadata, "metanorma/ietf_document/metadata"
8
6
  autoload :Root, "metanorma/ietf_document/root"
7
+ autoload :Sections, "metanorma/ietf_document/sections"
9
8
  end
10
9
  end
10
+
11
+ Metanorma::Registers::Setup.setup_ietf_register
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/iso_document"
4
-
5
3
  module Metanorma
6
4
  module IhoDocument
7
5
  module Metadata
@@ -1,64 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
-
6
3
  module Metanorma
7
4
  module IhoDocument
8
- class Root < Metanorma::StandardDocument::Root
9
- attribute :version, :string
10
- attribute :type, :string
11
- attribute :schema_version, :string
12
- attribute :flavor, :string
5
+ class Root < Lutaml::Model::Serializable
6
+ include Metanorma::StandardDocument::RootAttributes
13
7
 
14
8
  attribute :bibdata, Metadata::IhoBibliographicItem
15
-
16
- attribute :term_sources,
17
- Metanorma::Document::Components::ReferenceElements::Citation,
9
+ attribute :preface,
10
+ Metanorma::StandardDocument::Sections::Preface
11
+ attribute :sections,
12
+ Metanorma::StandardDocument::Sections::Sections
13
+ attribute :annex,
14
+ Metanorma::StandardDocument::Sections::AnnexSection,
18
15
  collection: true
19
16
 
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
17
  xml do
41
18
  element "metanorma"
42
19
  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
20
+
21
+ Metanorma::StandardDocument::RootXmlMapping.apply(self)
62
22
  end
63
23
  end
64
24
  end
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metanorma/standard_document"
4
- require "metanorma/iso_document"
5
-
6
3
  module Metanorma
7
4
  module IhoDocument
8
5
  autoload :Metadata, "metanorma/iho_document/metadata"