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.
- checksums.yaml +7 -0
- data/.github/workflows/rake.yml +21 -0
- data/.github/workflows/release.yml +25 -0
- data/.github/workflows/roundtrip-samples.yml +132 -0
- data/.gitignore +19 -0
- data/.rspec +3 -0
- data/.rubocop.yml +22 -0
- data/.rubocop_todo.yml +166 -0
- data/CHANGELOG.md +21 -0
- data/Gemfile +26 -0
- data/LICENSE.txt +25 -0
- data/README.adoc +176 -0
- data/Rakefile +14 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/data/javascripts/components/mn-code-copy.js +36 -0
- data/data/javascripts/components/mn-glossary.js +103 -0
- data/data/javascripts/components/mn-index-panel.js +33 -0
- data/data/javascripts/components/mn-lightbox.js +18 -0
- data/data/javascripts/components/mn-search.js +212 -0
- data/data/javascripts/components/mn-shortcuts.js +83 -0
- data/data/javascripts/components/mn-stem-dropdown.js +42 -0
- data/data/javascripts/components/mn-toc.js +182 -0
- data/data/javascripts/core/mn-navigation.js +84 -0
- data/data/javascripts/core/mn-reader.js +38 -0
- data/data/javascripts/core/mn-reveal.js +36 -0
- data/data/javascripts/core/mn-scroll.js +87 -0
- data/data/javascripts/core/mn-theme.js +140 -0
- data/data/javascripts/search.js +203 -0
- data/data/logos/bipm-logo.svg +1 -0
- data/data/logos/iec-logo.svg +1 -0
- data/data/logos/iho-logo.svg +555 -0
- data/data/logos/iso-logo.svg +1 -0
- data/data/logos/itu-logo.svg +1 -0
- data/data/logos/metanorma-logo.svg +41 -0
- data/data/logos/ogc-logo.svg +1 -0
- data/data/logos/pdfa-logo.svg +95 -0
- data/data/stylesheets/base/_dark.css +193 -0
- data/data/stylesheets/base/_layout.css +112 -0
- data/data/stylesheets/base/_print.css +46 -0
- data/data/stylesheets/base/_reset.css +55 -0
- data/data/stylesheets/base/_transitions.css +77 -0
- data/data/stylesheets/base/_typography.css +89 -0
- data/data/stylesheets/components/admonition.css +19 -0
- data/data/stylesheets/components/bibliography.css +18 -0
- data/data/stylesheets/components/cover.css +205 -0
- data/data/stylesheets/components/example.css +20 -0
- data/data/stylesheets/components/figure.css +30 -0
- data/data/stylesheets/components/footer.css +24 -0
- data/data/stylesheets/components/footnote.css +41 -0
- data/data/stylesheets/components/formula.css +25 -0
- data/data/stylesheets/components/glossary.css +61 -0
- data/data/stylesheets/components/header.css +149 -0
- data/data/stylesheets/components/index.css +118 -0
- data/data/stylesheets/components/inline.css +88 -0
- data/data/stylesheets/components/note.css +24 -0
- data/data/stylesheets/components/progress.css +40 -0
- data/data/stylesheets/components/search.css +45 -0
- data/data/stylesheets/components/section.css +26 -0
- data/data/stylesheets/components/shortcuts.css +71 -0
- data/data/stylesheets/components/sourcecode.css +30 -0
- data/data/stylesheets/components/table.css +57 -0
- data/data/stylesheets/components/term.css +45 -0
- data/data/stylesheets/components/toc.css +162 -0
- data/lib/data/dist/iso_document/frontend/assets/index-mwzbzmnK.js +22 -0
- data/lib/data/dist/iso_document/frontend/assets/index-pGvKTNid.css +1 -0
- data/lib/data/dist/iso_document/frontend/assets/iso-red.svg +53 -0
- data/lib/data/dist/iso_document/frontend/index.html +13 -0
- data/lib/metanorma/basic_document/ancillary_blocks/example_block.rb +58 -0
- data/lib/metanorma/basic_document/ancillary_blocks/figure_block.rb +64 -0
- data/lib/metanorma/basic_document/ancillary_blocks/formula_block.rb +38 -0
- data/lib/metanorma/basic_document/ancillary_blocks/literal_block.rb +26 -0
- data/lib/metanorma/basic_document/ancillary_blocks/sourcecode_block.rb +57 -0
- data/lib/metanorma/basic_document/ancillary_blocks/subfigure.rb +18 -0
- data/lib/metanorma/basic_document/ancillary_blocks.rb +15 -0
- data/lib/metanorma/basic_document/bib_data/bib_data.rb +18 -0
- data/lib/metanorma/basic_document/bib_data/bib_data_extension_type.rb +17 -0
- data/lib/metanorma/basic_document/bib_data/bibliographic_item.rb +93 -0
- data/lib/metanorma/basic_document/bib_data/document_type.rb +21 -0
- data/lib/metanorma/basic_document/bib_data.rb +14 -0
- data/lib/metanorma/basic_document/blocks/basic_block.rb +13 -0
- data/lib/metanorma/basic_document/blocks/basic_block_no_notes.rb +21 -0
- data/lib/metanorma/basic_document/blocks/note_block.rb +13 -0
- data/lib/metanorma/basic_document/blocks.rb +32 -0
- data/lib/metanorma/basic_document/change/attribute_change_action.rb +19 -0
- data/lib/metanorma/basic_document/change/attribute_modify.rb +19 -0
- data/lib/metanorma/basic_document/change/change.rb +25 -0
- data/lib/metanorma/basic_document/change/change_set.rb +20 -0
- data/lib/metanorma/basic_document/change/content_action.rb +21 -0
- data/lib/metanorma/basic_document/change/content_change.rb +17 -0
- data/lib/metanorma/basic_document/change/content_change_action.rb +28 -0
- data/lib/metanorma/basic_document/change/content_modify.rb +18 -0
- data/lib/metanorma/basic_document/change/node_change.rb +16 -0
- data/lib/metanorma/basic_document/change/node_delete.rb +17 -0
- data/lib/metanorma/basic_document/change/node_insert.rb +18 -0
- data/lib/metanorma/basic_document/change/node_move.rb +20 -0
- data/lib/metanorma/basic_document/change/unique_identifier.rb +17 -0
- data/lib/metanorma/basic_document/change.rb +23 -0
- data/lib/metanorma/basic_document/contrib_metadata/contribution_element_metadata.rb +22 -0
- data/lib/metanorma/basic_document/contrib_metadata/hash.rb +19 -0
- data/lib/metanorma/basic_document/contrib_metadata/integrity_value.rb +15 -0
- data/lib/metanorma/basic_document/contrib_metadata/iso10118_oid.rb +17 -0
- data/lib/metanorma/basic_document/contrib_metadata/iso14888_oid.rb +17 -0
- data/lib/metanorma/basic_document/contrib_metadata/signature.rb +21 -0
- data/lib/metanorma/basic_document/contrib_metadata.rb +16 -0
- data/lib/metanorma/basic_document/data_types/formatted_string.rb +17 -0
- data/lib/metanorma/basic_document/data_types/iso15924_code.rb +17 -0
- data/lib/metanorma/basic_document/data_types/iso3166_code.rb +17 -0
- data/lib/metanorma/basic_document/data_types/iso639_code.rb +17 -0
- data/lib/metanorma/basic_document/data_types/iso8601_date_time.rb +17 -0
- data/lib/metanorma/basic_document/data_types/localized_string.rb +23 -0
- data/lib/metanorma/basic_document/data_types/string_format.rb +22 -0
- data/lib/metanorma/basic_document/data_types/uri.rb +17 -0
- data/lib/metanorma/basic_document/data_types.rb +16 -0
- data/lib/metanorma/basic_document/empty_elements/basic_element.rb +18 -0
- data/lib/metanorma/basic_document/empty_elements/horizontal_rule_element.rb +14 -0
- data/lib/metanorma/basic_document/empty_elements/index_element.rb +24 -0
- data/lib/metanorma/basic_document/empty_elements/line_break_element.rb +14 -0
- data/lib/metanorma/basic_document/empty_elements/page_break_element.rb +15 -0
- data/lib/metanorma/basic_document/empty_elements.rb +16 -0
- data/lib/metanorma/basic_document/id_elements/alt_source.rb +21 -0
- data/lib/metanorma/basic_document/id_elements/audio.rb +18 -0
- data/lib/metanorma/basic_document/id_elements/bookmark.rb +17 -0
- data/lib/metanorma/basic_document/id_elements/id_element.rb +19 -0
- data/lib/metanorma/basic_document/id_elements/image.rb +19 -0
- data/lib/metanorma/basic_document/id_elements/media.rb +39 -0
- data/lib/metanorma/basic_document/id_elements/media_type.rb +17 -0
- data/lib/metanorma/basic_document/id_elements/video.rb +22 -0
- data/lib/metanorma/basic_document/id_elements.rb +16 -0
- data/lib/metanorma/basic_document/lists/definition.rb +21 -0
- data/lib/metanorma/basic_document/lists/definition_list.rb +18 -0
- data/lib/metanorma/basic_document/lists/list.rb +17 -0
- data/lib/metanorma/basic_document/lists/ordered_list.rb +19 -0
- data/lib/metanorma/basic_document/lists/ordered_list_type.rb +21 -0
- data/lib/metanorma/basic_document/lists/unordered_list.rb +14 -0
- data/lib/metanorma/basic_document/lists.rb +14 -0
- data/lib/metanorma/basic_document/multi_paragraph/admonition_block.rb +36 -0
- data/lib/metanorma/basic_document/multi_paragraph/admonition_type.rb +21 -0
- data/lib/metanorma/basic_document/multi_paragraph/paragraphs_block.rb +19 -0
- data/lib/metanorma/basic_document/multi_paragraph/quote_block.rb +26 -0
- data/lib/metanorma/basic_document/multi_paragraph/review_block.rb +32 -0
- data/lib/metanorma/basic_document/multi_paragraph.rb +16 -0
- data/lib/metanorma/basic_document/paragraphs/paragraph_block.rb +26 -0
- data/lib/metanorma/basic_document/paragraphs/paragraph_with_footnote.rb +21 -0
- data/lib/metanorma/basic_document/paragraphs/text_alignment.rb +21 -0
- data/lib/metanorma/basic_document/paragraphs.rb +12 -0
- data/lib/metanorma/basic_document/reference_elements/callout.rb +21 -0
- data/lib/metanorma/basic_document/reference_elements/citation.rb +25 -0
- data/lib/metanorma/basic_document/reference_elements/footnote.rb +17 -0
- data/lib/metanorma/basic_document/reference_elements/index_xref_element.rb +25 -0
- data/lib/metanorma/basic_document/reference_elements/reference_element.rb +22 -0
- data/lib/metanorma/basic_document/reference_elements/reference_format.rb +21 -0
- data/lib/metanorma/basic_document/reference_elements/reference_to_citation_element.rb +20 -0
- data/lib/metanorma/basic_document/reference_elements/reference_to_id_element.rb +17 -0
- data/lib/metanorma/basic_document/reference_elements/reference_to_id_with_paragraph_element.rb +19 -0
- data/lib/metanorma/basic_document/reference_elements/reference_to_link_element.rb +17 -0
- data/lib/metanorma/basic_document/reference_elements.rb +25 -0
- data/lib/metanorma/basic_document/sections/basic_section.rb +38 -0
- data/lib/metanorma/basic_document/sections/content_section.rb +18 -0
- data/lib/metanorma/basic_document/sections/hierarchical_section.rb +18 -0
- data/lib/metanorma/basic_document/sections/references_section.rb +19 -0
- data/lib/metanorma/basic_document/sections.rb +14 -0
- data/lib/metanorma/basic_document/tables/paragraph_table_cell.rb +18 -0
- data/lib/metanorma/basic_document/tables/table_block.rb +37 -0
- data/lib/metanorma/basic_document/tables/table_cell.rb +23 -0
- data/lib/metanorma/basic_document/tables/text_alignment.rb +21 -0
- data/lib/metanorma/basic_document/tables/text_table_cell.rb +18 -0
- data/lib/metanorma/basic_document/tables/text_table_row.rb +21 -0
- data/lib/metanorma/basic_document/tables/vertical_alignment.rb +21 -0
- data/lib/metanorma/basic_document/tables.rb +16 -0
- data/lib/metanorma/basic_document/text_elements/asciiml.rb +17 -0
- data/lib/metanorma/basic_document/text_elements/emphasis_element.rb +14 -0
- data/lib/metanorma/basic_document/text_elements/keyword_element.rb +14 -0
- data/lib/metanorma/basic_document/text_elements/latex.rb +17 -0
- data/lib/metanorma/basic_document/text_elements/mathml.rb +17 -0
- data/lib/metanorma/basic_document/text_elements/monospace_element.rb +14 -0
- data/lib/metanorma/basic_document/text_elements/ruby_element.rb +21 -0
- data/lib/metanorma/basic_document/text_elements/small_caps_element.rb +14 -0
- data/lib/metanorma/basic_document/text_elements/stem_element.rb +19 -0
- data/lib/metanorma/basic_document/text_elements/stem_type.rb +17 -0
- data/lib/metanorma/basic_document/text_elements/stem_value.rb +17 -0
- data/lib/metanorma/basic_document/text_elements/strike_element.rb +14 -0
- data/lib/metanorma/basic_document/text_elements/strong_element.rb +14 -0
- data/lib/metanorma/basic_document/text_elements/subscript_element.rb +14 -0
- data/lib/metanorma/basic_document/text_elements/superscript_element.rb +14 -0
- data/lib/metanorma/basic_document/text_elements/text_element.rb +18 -0
- data/lib/metanorma/basic_document/text_elements/text_element_type.rb +20 -0
- data/lib/metanorma/basic_document/text_elements/underline_element.rb +13 -0
- data/lib/metanorma/basic_document/text_elements.rb +33 -0
- data/lib/metanorma/basic_document.rb +23 -0
- data/lib/metanorma/bipm_document/metadata/bipm_bib_data_extension_type.rb +20 -0
- data/lib/metanorma/bipm_document/metadata/bipm_bibliographic_item.rb +31 -0
- data/lib/metanorma/bipm_document/metadata/bipm_structured_identifier.rb +21 -0
- data/lib/metanorma/bipm_document/metadata.rb +15 -0
- data/lib/metanorma/bipm_document/root.rb +65 -0
- data/lib/metanorma/bipm_document.rb +10 -0
- data/lib/metanorma/cc_document/metadata/cc_bib_data_extension_type.rb +12 -0
- data/lib/metanorma/cc_document/metadata/cc_bibliographic_item.rb +17 -0
- data/lib/metanorma/cc_document/metadata.rb +11 -0
- data/lib/metanorma/cc_document/root.rb +65 -0
- data/lib/metanorma/cc_document.rb +10 -0
- data/lib/metanorma/collection/directive.rb +18 -0
- data/lib/metanorma/collection/doc_container.rb +18 -0
- data/lib/metanorma/collection/entry.rb +33 -0
- data/lib/metanorma/collection/root.rb +31 -0
- data/lib/metanorma/collection.rb +12 -0
- data/lib/metanorma/document/components/ancillary_blocks/example_block.rb +124 -0
- data/lib/metanorma/document/components/ancillary_blocks/figure_block.rb +113 -0
- data/lib/metanorma/document/components/ancillary_blocks/formula_block.rb +85 -0
- data/lib/metanorma/document/components/ancillary_blocks/key_element.rb +26 -0
- data/lib/metanorma/document/components/ancillary_blocks/literal_block.rb +32 -0
- data/lib/metanorma/document/components/ancillary_blocks/sourcecode_block.rb +123 -0
- data/lib/metanorma/document/components/ancillary_blocks/subfigure.rb +41 -0
- data/lib/metanorma/document/components/ancillary_blocks.rb +18 -0
- data/lib/metanorma/document/components/bib_data/bib_data.rb +67 -0
- data/lib/metanorma/document/components/bib_data/bib_data_extension_type.rb +19 -0
- data/lib/metanorma/document/components/bib_data/bibliographic_item.rb +107 -0
- data/lib/metanorma/document/components/bib_data/document_type.rb +23 -0
- data/lib/metanorma/document/components/bib_data.rb +15 -0
- data/lib/metanorma/document/components/blocks/basic_block.rb +19 -0
- data/lib/metanorma/document/components/blocks/basic_block_no_notes.rb +22 -0
- data/lib/metanorma/document/components/blocks/note_block.rb +79 -0
- data/lib/metanorma/document/components/blocks.rb +13 -0
- data/lib/metanorma/document/components/change/attribute_change_action.rb +21 -0
- data/lib/metanorma/document/components/change/attribute_modify.rb +20 -0
- data/lib/metanorma/document/components/change/change.rb +27 -0
- data/lib/metanorma/document/components/change/change_set.rb +21 -0
- data/lib/metanorma/document/components/change/content_action.rb +23 -0
- data/lib/metanorma/document/components/change/content_change.rb +19 -0
- data/lib/metanorma/document/components/change/content_change_action.rb +30 -0
- data/lib/metanorma/document/components/change/content_modify.rb +19 -0
- data/lib/metanorma/document/components/change/node_change.rb +18 -0
- data/lib/metanorma/document/components/change/node_delete.rb +19 -0
- data/lib/metanorma/document/components/change/node_insert.rb +20 -0
- data/lib/metanorma/document/components/change/node_move.rb +22 -0
- data/lib/metanorma/document/components/change/unique_identifier.rb +19 -0
- data/lib/metanorma/document/components/change.rb +24 -0
- data/lib/metanorma/document/components/contrib_metadata/contribution_element_metadata.rb +23 -0
- data/lib/metanorma/document/components/contrib_metadata/hash.rb +21 -0
- data/lib/metanorma/document/components/contrib_metadata/integrity_value.rb +17 -0
- data/lib/metanorma/document/components/contrib_metadata/iso10118_oid.rb +19 -0
- data/lib/metanorma/document/components/contrib_metadata/iso14888_oid.rb +19 -0
- data/lib/metanorma/document/components/contrib_metadata/signature.rb +23 -0
- data/lib/metanorma/document/components/contrib_metadata.rb +17 -0
- data/lib/metanorma/document/components/data_types/formatted_string.rb +95 -0
- data/lib/metanorma/document/components/data_types/iso15924_code.rb +19 -0
- data/lib/metanorma/document/components/data_types/iso3166_code.rb +19 -0
- data/lib/metanorma/document/components/data_types/iso639_code.rb +19 -0
- data/lib/metanorma/document/components/data_types/iso8601_date_time.rb +19 -0
- data/lib/metanorma/document/components/data_types/localized_string.rb +29 -0
- data/lib/metanorma/document/components/data_types/string_format.rb +24 -0
- data/lib/metanorma/document/components/data_types/uri.rb +19 -0
- data/lib/metanorma/document/components/data_types.rb +18 -0
- data/lib/metanorma/document/components/empty_elements/basic_element.rb +20 -0
- data/lib/metanorma/document/components/empty_elements/horizontal_rule_element.rb +16 -0
- data/lib/metanorma/document/components/empty_elements/index_element.rb +26 -0
- data/lib/metanorma/document/components/empty_elements/line_break_element.rb +16 -0
- data/lib/metanorma/document/components/empty_elements/page_break_element.rb +20 -0
- data/lib/metanorma/document/components/empty_elements.rb +18 -0
- data/lib/metanorma/document/components/id_elements/alt_source.rb +23 -0
- data/lib/metanorma/document/components/id_elements/audio.rb +19 -0
- data/lib/metanorma/document/components/id_elements/bookmark.rb +24 -0
- data/lib/metanorma/document/components/id_elements/id_element.rb +21 -0
- data/lib/metanorma/document/components/id_elements/image.rb +23 -0
- data/lib/metanorma/document/components/id_elements/media.rb +41 -0
- data/lib/metanorma/document/components/id_elements/media_type.rb +19 -0
- data/lib/metanorma/document/components/id_elements/video.rb +23 -0
- data/lib/metanorma/document/components/id_elements.rb +18 -0
- data/lib/metanorma/document/components/inline/asciimath_element.rb +16 -0
- data/lib/metanorma/document/components/inline/attribution_element.rb +17 -0
- data/lib/metanorma/document/components/inline/bcp14_element.rb +16 -0
- data/lib/metanorma/document/components/inline/biblio_tag_element.rb +23 -0
- data/lib/metanorma/document/components/inline/br_element.rb +13 -0
- data/lib/metanorma/document/components/inline/comma_element.rb +13 -0
- data/lib/metanorma/document/components/inline/concept_element.rb +22 -0
- data/lib/metanorma/document/components/inline/display_text_element.rb +37 -0
- data/lib/metanorma/document/components/inline/em_raw_element.rb +23 -0
- data/lib/metanorma/document/components/inline/enum_comma_element.rb +13 -0
- data/lib/metanorma/document/components/inline/eref_element.rb +35 -0
- data/lib/metanorma/document/components/inline/fmt_admitted_element.rb +17 -0
- data/lib/metanorma/document/components/inline/fmt_annotation_body_element.rb +38 -0
- data/lib/metanorma/document/components/inline/fmt_annotation_end_element.rb +26 -0
- data/lib/metanorma/document/components/inline/fmt_annotation_start_element.rb +26 -0
- data/lib/metanorma/document/components/inline/fmt_concept_element.rb +23 -0
- data/lib/metanorma/document/components/inline/fmt_definition_element.rb +18 -0
- data/lib/metanorma/document/components/inline/fmt_fn_body_element.rb +22 -0
- data/lib/metanorma/document/components/inline/fmt_fn_label_element.rb +23 -0
- data/lib/metanorma/document/components/inline/fmt_footnote_container_element.rb +16 -0
- data/lib/metanorma/document/components/inline/fmt_identifier_element.rb +16 -0
- data/lib/metanorma/document/components/inline/fmt_name_element.rb +23 -0
- data/lib/metanorma/document/components/inline/fmt_preferred_element.rb +17 -0
- data/lib/metanorma/document/components/inline/fmt_sourcecode_element.rb +29 -0
- data/lib/metanorma/document/components/inline/fmt_stem_element.rb +18 -0
- data/lib/metanorma/document/components/inline/fmt_termsource_element.rb +20 -0
- data/lib/metanorma/document/components/inline/fmt_title_element.rb +29 -0
- data/lib/metanorma/document/components/inline/fmt_xref_element.rb +25 -0
- data/lib/metanorma/document/components/inline/fmt_xref_label_element.rb +23 -0
- data/lib/metanorma/document/components/inline/fn_element.rb +31 -0
- data/lib/metanorma/document/components/inline/link_element.rb +27 -0
- data/lib/metanorma/document/components/inline/localized_string_element.rb +31 -0
- data/lib/metanorma/document/components/inline/localized_strings_element.rb +16 -0
- data/lib/metanorma/document/components/inline/math_element.rb +16 -0
- data/lib/metanorma/document/components/inline/name_with_id_element.rb +20 -0
- data/lib/metanorma/document/components/inline/semx_child_element.rb +25 -0
- data/lib/metanorma/document/components/inline/semx_element.rb +117 -0
- data/lib/metanorma/document/components/inline/small_cap_element.rb +16 -0
- data/lib/metanorma/document/components/inline/span_element.rb +37 -0
- data/lib/metanorma/document/components/inline/stem_inline_element.rb +24 -0
- data/lib/metanorma/document/components/inline/strong_raw_element.rb +25 -0
- data/lib/metanorma/document/components/inline/sub_element.rb +15 -0
- data/lib/metanorma/document/components/inline/sup_element.rb +26 -0
- data/lib/metanorma/document/components/inline/tab_element.rb +13 -0
- data/lib/metanorma/document/components/inline/title_with_annotation_element.rb +51 -0
- data/lib/metanorma/document/components/inline/tt_element.rb +20 -0
- data/lib/metanorma/document/components/inline/variant_title_element.rb +27 -0
- data/lib/metanorma/document/components/inline/xref_element.rb +24 -0
- data/lib/metanorma/document/components/inline.rb +100 -0
- data/lib/metanorma/document/components/lists/dd_element.rb +58 -0
- data/lib/metanorma/document/components/lists/definition.rb +32 -0
- data/lib/metanorma/document/components/lists/definition_list.rb +44 -0
- data/lib/metanorma/document/components/lists/dt_element.rb +71 -0
- data/lib/metanorma/document/components/lists/list.rb +25 -0
- data/lib/metanorma/document/components/lists/list_item.rb +102 -0
- data/lib/metanorma/document/components/lists/ordered_list.rb +42 -0
- data/lib/metanorma/document/components/lists/ordered_list_type.rb +23 -0
- data/lib/metanorma/document/components/lists/unordered_list.rb +34 -0
- data/lib/metanorma/document/components/lists.rb +19 -0
- data/lib/metanorma/document/components/multi_paragraph/admonition_block.rb +62 -0
- data/lib/metanorma/document/components/multi_paragraph/admonition_type.rb +23 -0
- data/lib/metanorma/document/components/multi_paragraph/paragraphs_block.rb +21 -0
- data/lib/metanorma/document/components/multi_paragraph/quote_block.rb +74 -0
- data/lib/metanorma/document/components/multi_paragraph/review_block.rb +34 -0
- data/lib/metanorma/document/components/multi_paragraph.rb +15 -0
- data/lib/metanorma/document/components/paragraphs/paragraph_block.rb +155 -0
- data/lib/metanorma/document/components/paragraphs/paragraph_with_footnote.rb +24 -0
- data/lib/metanorma/document/components/paragraphs/text_alignment.rb +23 -0
- data/lib/metanorma/document/components/paragraphs.rb +14 -0
- data/lib/metanorma/document/components/reference_elements/callout.rb +25 -0
- data/lib/metanorma/document/components/reference_elements/citation.rb +38 -0
- data/lib/metanorma/document/components/reference_elements/footnote.rb +19 -0
- data/lib/metanorma/document/components/reference_elements/index_xref_element.rb +27 -0
- data/lib/metanorma/document/components/reference_elements/reference_element.rb +24 -0
- data/lib/metanorma/document/components/reference_elements/reference_format.rb +23 -0
- data/lib/metanorma/document/components/reference_elements/reference_to_citation_element.rb +33 -0
- data/lib/metanorma/document/components/reference_elements/reference_to_id_element.rb +19 -0
- data/lib/metanorma/document/components/reference_elements/reference_to_id_with_paragraph_element.rb +21 -0
- data/lib/metanorma/document/components/reference_elements/reference_to_link_element.rb +19 -0
- data/lib/metanorma/document/components/reference_elements.rb +27 -0
- data/lib/metanorma/document/components/sections/basic_section.rb +37 -0
- data/lib/metanorma/document/components/sections/content_section.rb +20 -0
- data/lib/metanorma/document/components/sections/hierarchical_section.rb +19 -0
- data/lib/metanorma/document/components/sections/references_section.rb +25 -0
- data/lib/metanorma/document/components/sections.rb +15 -0
- data/lib/metanorma/document/components/tables/header_table_cell.rb +17 -0
- data/lib/metanorma/document/components/tables/paragraph_table_cell.rb +20 -0
- data/lib/metanorma/document/components/tables/table_block.rb +99 -0
- data/lib/metanorma/document/components/tables/table_cell.rb +139 -0
- data/lib/metanorma/document/components/tables/table_section.rb +42 -0
- data/lib/metanorma/document/components/tables/text_alignment.rb +23 -0
- data/lib/metanorma/document/components/tables/text_table_cell.rb +17 -0
- data/lib/metanorma/document/components/tables/text_table_row.rb +30 -0
- data/lib/metanorma/document/components/tables/vertical_alignment.rb +23 -0
- data/lib/metanorma/document/components/tables.rb +22 -0
- data/lib/metanorma/document/components/text_elements/asciiml.rb +19 -0
- data/lib/metanorma/document/components/text_elements/emphasis_element.rb +16 -0
- data/lib/metanorma/document/components/text_elements/keyword_element.rb +16 -0
- data/lib/metanorma/document/components/text_elements/latex.rb +19 -0
- data/lib/metanorma/document/components/text_elements/latexmath_element.rb +19 -0
- data/lib/metanorma/document/components/text_elements/monospace_element.rb +16 -0
- data/lib/metanorma/document/components/text_elements/ruby_element.rb +23 -0
- data/lib/metanorma/document/components/text_elements/small_caps_element.rb +16 -0
- data/lib/metanorma/document/components/text_elements/stem_element.rb +34 -0
- data/lib/metanorma/document/components/text_elements/stem_type.rb +23 -0
- data/lib/metanorma/document/components/text_elements/stem_value.rb +19 -0
- data/lib/metanorma/document/components/text_elements/strike_element.rb +33 -0
- data/lib/metanorma/document/components/text_elements/strong_element.rb +16 -0
- data/lib/metanorma/document/components/text_elements/subscript_element.rb +16 -0
- data/lib/metanorma/document/components/text_elements/superscript_element.rb +16 -0
- data/lib/metanorma/document/components/text_elements/text_element.rb +20 -0
- data/lib/metanorma/document/components/text_elements/text_element_type.rb +21 -0
- data/lib/metanorma/document/components/text_elements/underline_element.rb +33 -0
- data/lib/metanorma/document/components/text_elements.rb +31 -0
- data/lib/metanorma/document/components.rb +27 -0
- data/lib/metanorma/document/data_types.rb +11 -0
- data/lib/metanorma/document/relaton/address.rb +39 -0
- data/lib/metanorma/document/relaton/affiliation.rb +22 -0
- data/lib/metanorma/document/relaton/bib_item_locality.rb +21 -0
- data/lib/metanorma/document/relaton/bib_item_size.rb +19 -0
- data/lib/metanorma/document/relaton/bib_item_size_type.rb +21 -0
- data/lib/metanorma/document/relaton/bib_item_type.rb +25 -0
- data/lib/metanorma/document/relaton/bibliographic_date.rb +27 -0
- data/lib/metanorma/document/relaton/bibliographic_date_type.rb +22 -0
- data/lib/metanorma/document/relaton/contact_method.rb +22 -0
- data/lib/metanorma/document/relaton/contribution_info.rb +21 -0
- data/lib/metanorma/document/relaton/contributor.rb +15 -0
- data/lib/metanorma/document/relaton/contributor_role.rb +23 -0
- data/lib/metanorma/document/relaton/copyright_association.rb +32 -0
- data/lib/metanorma/document/relaton/date_time.rb +19 -0
- data/lib/metanorma/document/relaton/document_identifier.rb +25 -0
- data/lib/metanorma/document/relaton/document_relation.rb +26 -0
- data/lib/metanorma/document/relaton/document_relation_type.rb +31 -0
- data/lib/metanorma/document/relaton/document_status.rb +26 -0
- data/lib/metanorma/document/relaton/edition.rb +21 -0
- data/lib/metanorma/document/relaton/full_name.rb +34 -0
- data/lib/metanorma/document/relaton/iso4217_code.rb +17 -0
- data/lib/metanorma/document/relaton/iso8601_date.rb +17 -0
- data/lib/metanorma/document/relaton/keyword_type.rb +23 -0
- data/lib/metanorma/document/relaton/locality_stack.rb +19 -0
- data/lib/metanorma/document/relaton/localized_name.rb +22 -0
- data/lib/metanorma/document/relaton/medium_type.rb +26 -0
- data/lib/metanorma/document/relaton/org_identifier.rb +20 -0
- data/lib/metanorma/document/relaton/org_subdivision.rb +28 -0
- data/lib/metanorma/document/relaton/org_subdivision_identifier.rb +20 -0
- data/lib/metanorma/document/relaton/organization.rb +48 -0
- data/lib/metanorma/document/relaton/person.rb +28 -0
- data/lib/metanorma/document/relaton/person_identifier.rb +18 -0
- data/lib/metanorma/document/relaton/personal_identifier_type.rb +21 -0
- data/lib/metanorma/document/relaton/phone.rb +18 -0
- data/lib/metanorma/document/relaton/place_type.rb +36 -0
- data/lib/metanorma/document/relaton/price_type.rb +18 -0
- data/lib/metanorma/document/relaton/region_type.rb +20 -0
- data/lib/metanorma/document/relaton/relaton_collection.rb +25 -0
- data/lib/metanorma/document/relaton/series_type.rb +36 -0
- data/lib/metanorma/document/relaton/series_type_type.rb +21 -0
- data/lib/metanorma/document/relaton/specific_locality_type.rb +25 -0
- data/lib/metanorma/document/relaton/title_type.rb +21 -0
- data/lib/metanorma/document/relaton/typed_note.rb +25 -0
- data/lib/metanorma/document/relaton/typed_title_string.rb +50 -0
- data/lib/metanorma/document/relaton/typed_uri.rb +18 -0
- data/lib/metanorma/document/relaton/validity_type.rb +22 -0
- data/lib/metanorma/document/relaton/variant_full_name.rb +18 -0
- data/lib/metanorma/document/relaton/variant_org_name.rb +18 -0
- data/lib/metanorma/document/relaton/version_info.rb +19 -0
- data/lib/metanorma/document/relaton/vocab_id_type.rb +22 -0
- data/lib/metanorma/document/relaton.rb +64 -0
- data/lib/metanorma/document/root.rb +14 -0
- data/lib/metanorma/document/version.rb +8 -0
- data/lib/metanorma/document.rb +54 -0
- data/lib/metanorma/html/asset_pipeline.rb +100 -0
- data/lib/metanorma/html/base_renderer.rb +1610 -0
- data/lib/metanorma/html/bipm_renderer.rb +145 -0
- data/lib/metanorma/html/cc_renderer.rb +55 -0
- data/lib/metanorma/html/component/base.rb +63 -0
- data/lib/metanorma/html/component/footnote_collector.rb +57 -0
- data/lib/metanorma/html/component/index_section.rb +74 -0
- data/lib/metanorma/html/component/index_term_collector.rb +100 -0
- data/lib/metanorma/html/component.rb +12 -0
- data/lib/metanorma/html/component_registry.rb +37 -0
- data/lib/metanorma/html/drops/footnote_drop.rb +26 -0
- data/lib/metanorma/html/drops.rb +9 -0
- data/lib/metanorma/html/generator.rb +114 -0
- data/lib/metanorma/html/icc_renderer.rb +49 -0
- data/lib/metanorma/html/iec_renderer.rb +54 -0
- data/lib/metanorma/html/ieee_renderer.rb +55 -0
- data/lib/metanorma/html/ietf_renderer.rb +58 -0
- data/lib/metanorma/html/iho_renderer.rb +56 -0
- data/lib/metanorma/html/iso_renderer.rb +821 -0
- data/lib/metanorma/html/itu_renderer.rb +55 -0
- data/lib/metanorma/html/ogc_renderer.rb +86 -0
- data/lib/metanorma/html/oiml_renderer.rb +55 -0
- data/lib/metanorma/html/pdfa_renderer.rb +51 -0
- data/lib/metanorma/html/ribose_renderer.rb +55 -0
- data/lib/metanorma/html/standard_renderer.rb +535 -0
- data/lib/metanorma/html/templates/_cover.html.liquid +11 -0
- data/lib/metanorma/html/templates/_doc_title.html.liquid +3 -0
- data/lib/metanorma/html/templates/_footer.html.liquid +8 -0
- data/lib/metanorma/html/templates/_footnotes.html.liquid +11 -0
- data/lib/metanorma/html/templates/_header.html.liquid +65 -0
- data/lib/metanorma/html/templates/_iso_cover.html.liquid +31 -0
- data/lib/metanorma/html/templates/_iso_doc_title.html.liquid +3 -0
- data/lib/metanorma/html/templates/document.html.liquid +40 -0
- data/lib/metanorma/html/theme.rb +196 -0
- data/lib/metanorma/html/whitespace_patch.rb +47 -0
- data/lib/metanorma/html.rb +29 -0
- data/lib/metanorma/iec_document/root.rb +66 -0
- data/lib/metanorma/iec_document.rb +10 -0
- data/lib/metanorma/ieee_document/metadata/ieee_bib_data_extension_type.rb +18 -0
- data/lib/metanorma/ieee_document/metadata/ieee_bibliographic_item.rb +20 -0
- data/lib/metanorma/ieee_document/metadata/ieee_structured_identifier.rb +25 -0
- data/lib/metanorma/ieee_document/metadata.rb +14 -0
- data/lib/metanorma/ieee_document/root.rb +65 -0
- data/lib/metanorma/ieee_document.rb +11 -0
- data/lib/metanorma/ietf_document/metadata/ietf_bib_data_extension_type.rb +58 -0
- data/lib/metanorma/ietf_document/metadata/ietf_bibliographic_item.rb +53 -0
- data/lib/metanorma/ietf_document/metadata/ietf_editorial_group.rb +17 -0
- data/lib/metanorma/ietf_document/metadata.rb +14 -0
- data/lib/metanorma/ietf_document/root.rb +66 -0
- data/lib/metanorma/ietf_document/sections.rb +31 -0
- data/lib/metanorma/ietf_document.rb +10 -0
- data/lib/metanorma/iho_document/metadata/iho_bib_data_extension_type.rb +25 -0
- data/lib/metanorma/iho_document/metadata/iho_bibliographic_item.rb +20 -0
- data/lib/metanorma/iho_document/metadata/iho_editorial_group.rb +19 -0
- data/lib/metanorma/iho_document/metadata/iho_series.rb +22 -0
- data/lib/metanorma/iho_document/metadata/iho_sub_group.rb +18 -0
- data/lib/metanorma/iho_document/metadata.rb +15 -0
- data/lib/metanorma/iho_document/root.rb +65 -0
- data/lib/metanorma/iho_document.rb +11 -0
- data/lib/metanorma/iso_document/annotation_container.rb +16 -0
- data/lib/metanorma/iso_document/blocks/iso_admonition_block.rb +27 -0
- data/lib/metanorma/iso_document/blocks/iso_admonition_type.rb +25 -0
- data/lib/metanorma/iso_document/blocks.rb +12 -0
- data/lib/metanorma/iso_document/boilerplate.rb +17 -0
- data/lib/metanorma/iso_document/metadata/abstract_title.rb +36 -0
- data/lib/metanorma/iso_document/metadata/doc_identifier.rb +26 -0
- data/lib/metanorma/iso_document/metadata/ics.rb +19 -0
- data/lib/metanorma/iso_document/metadata/iec_document_category.rb +23 -0
- data/lib/metanorma/iso_document/metadata/iso_bib_data_extension_type.rb +86 -0
- data/lib/metanorma/iso_document/metadata/iso_bibliographic_item.rb +175 -0
- data/lib/metanorma/iso_document/metadata/iso_document_id.rb +46 -0
- data/lib/metanorma/iso_document/metadata/iso_document_stage_codes.rb +26 -0
- data/lib/metanorma/iso_document/metadata/iso_document_status.rb +56 -0
- data/lib/metanorma/iso_document/metadata/iso_document_substage_codes.rb +26 -0
- data/lib/metanorma/iso_document/metadata/iso_document_type.rb +25 -0
- data/lib/metanorma/iso_document/metadata/iso_localized_title.rb +57 -0
- data/lib/metanorma/iso_document/metadata/iso_project_group.rb +32 -0
- data/lib/metanorma/iso_document/metadata/iso_sub_group.rb +38 -0
- data/lib/metanorma/iso_document/metadata/metanorma_extension.rb +20 -0
- data/lib/metanorma/iso_document/metadata/structured_identifier.rb +33 -0
- data/lib/metanorma/iso_document/metadata/title_amd.rb +12 -0
- data/lib/metanorma/iso_document/metadata/title_amendment_prefix.rb +12 -0
- data/lib/metanorma/iso_document/metadata/title_collection.rb +46 -0
- data/lib/metanorma/iso_document/metadata/title_full.rb +12 -0
- data/lib/metanorma/iso_document/metadata/title_intro.rb +12 -0
- data/lib/metanorma/iso_document/metadata/title_main.rb +12 -0
- data/lib/metanorma/iso_document/metadata/title_part.rb +12 -0
- data/lib/metanorma/iso_document/metadata/title_part_prefix.rb +12 -0
- data/lib/metanorma/iso_document/metadata.rb +39 -0
- data/lib/metanorma/iso_document/raw_paragraph.rb +23 -0
- data/lib/metanorma/iso_document/root.rb +92 -0
- data/lib/metanorma/iso_document/sections/colophon.rb +18 -0
- data/lib/metanorma/iso_document/sections/iso_abstract_section.rb +15 -0
- data/lib/metanorma/iso_document/sections/iso_amendment_clause.rb +24 -0
- data/lib/metanorma/iso_document/sections/iso_annex_section.rb +172 -0
- data/lib/metanorma/iso_document/sections/iso_clause_section.rb +206 -0
- data/lib/metanorma/iso_document/sections/iso_foreword_section.rb +118 -0
- data/lib/metanorma/iso_document/sections/iso_preface.rb +43 -0
- data/lib/metanorma/iso_document/sections/iso_sections.rb +61 -0
- data/lib/metanorma/iso_document/sections/iso_terms_section.rb +88 -0
- data/lib/metanorma/iso_document/sections.rb +17 -0
- data/lib/metanorma/iso_document/terms/iso_term.rb +84 -0
- data/lib/metanorma/iso_document/terms/iso_term_collection.rb +20 -0
- data/lib/metanorma/iso_document/terms/term_definition.rb +30 -0
- data/lib/metanorma/iso_document/terms/term_designation.rb +44 -0
- data/lib/metanorma/iso_document/terms/term_example.rb +39 -0
- data/lib/metanorma/iso_document/terms/term_expression.rb +55 -0
- data/lib/metanorma/iso_document/terms/term_note.rb +41 -0
- data/lib/metanorma/iso_document/terms/term_origin.rb +26 -0
- data/lib/metanorma/iso_document/terms/term_source.rb +49 -0
- data/lib/metanorma/iso_document/terms/verbal_definition.rb +41 -0
- data/lib/metanorma/iso_document/terms.rb +20 -0
- data/lib/metanorma/iso_document.rb +16 -0
- data/lib/metanorma/itu_document/metadata/itu_bib_data_extension_type.rb +63 -0
- data/lib/metanorma/itu_document/metadata/itu_bibliographic_item.rb +21 -0
- data/lib/metanorma/itu_document/metadata/itu_series.rb +22 -0
- data/lib/metanorma/itu_document/metadata/itu_structured_identifier.rb +23 -0
- data/lib/metanorma/itu_document/metadata.rb +19 -0
- data/lib/metanorma/itu_document/root.rb +65 -0
- data/lib/metanorma/itu_document.rb +10 -0
- data/lib/metanorma/ogc_document/metadata/ogc_bib_data_extension_type.rb +12 -0
- data/lib/metanorma/ogc_document/metadata/ogc_bibliographic_item.rb +19 -0
- data/lib/metanorma/ogc_document/metadata.rb +12 -0
- data/lib/metanorma/ogc_document/root.rb +65 -0
- data/lib/metanorma/ogc_document.rb +10 -0
- data/lib/metanorma/oiml_document/root.rb +66 -0
- data/lib/metanorma/oiml_document.rb +10 -0
- data/lib/metanorma/ribose_document/metadata/ribose_bib_data_extension_type.rb +20 -0
- data/lib/metanorma/ribose_document/metadata/ribose_bibliographic_item.rb +18 -0
- data/lib/metanorma/ribose_document/metadata.rb +12 -0
- data/lib/metanorma/ribose_document/root.rb +68 -0
- data/lib/metanorma/ribose_document.rb +10 -0
- data/lib/metanorma/standard_document/blocks/amend_block.rb +50 -0
- data/lib/metanorma/standard_document/blocks/amend_content_block.rb +17 -0
- data/lib/metanorma/standard_document/blocks/auto_number.rb +20 -0
- data/lib/metanorma/standard_document/blocks/block_source.rb +45 -0
- data/lib/metanorma/standard_document/blocks/change_type.rb +21 -0
- data/lib/metanorma/standard_document/blocks/element_name.rb +22 -0
- data/lib/metanorma/standard_document/blocks/form.rb +38 -0
- data/lib/metanorma/standard_document/blocks/image_map_area_type.rb +24 -0
- data/lib/metanorma/standard_document/blocks/image_map_area_type_type.rb +21 -0
- data/lib/metanorma/standard_document/blocks/image_map_block.rb +32 -0
- data/lib/metanorma/standard_document/blocks/image_map_coords.rb +19 -0
- data/lib/metanorma/standard_document/blocks/image_map_radius.rb +19 -0
- data/lib/metanorma/standard_document/blocks/multilingual_rendering_type.rb +21 -0
- data/lib/metanorma/standard_document/blocks/passthrough.rb +20 -0
- data/lib/metanorma/standard_document/blocks/requirement_model.rb +165 -0
- data/lib/metanorma/standard_document/blocks/standard_admonition_block.rb +32 -0
- data/lib/metanorma/standard_document/blocks/standard_block.rb +28 -0
- data/lib/metanorma/standard_document/blocks/standard_block_no_notes.rb +34 -0
- data/lib/metanorma/standard_document/blocks/standard_example_block.rb +30 -0
- data/lib/metanorma/standard_document/blocks/standard_figure_block.rb +32 -0
- data/lib/metanorma/standard_document/blocks/standard_formula_block.rb +30 -0
- data/lib/metanorma/standard_document/blocks/standard_note_block.rb +64 -0
- data/lib/metanorma/standard_document/blocks/standard_paragraph_block.rb +25 -0
- data/lib/metanorma/standard_document/blocks/standard_quote_block.rb +29 -0
- data/lib/metanorma/standard_document/blocks/standard_sourcecode_block.rb +32 -0
- data/lib/metanorma/standard_document/blocks/standard_table_block.rb +39 -0
- data/lib/metanorma/standard_document/blocks/svg_map_block.rb +23 -0
- data/lib/metanorma/standard_document/blocks/svg_target_type.rb +20 -0
- data/lib/metanorma/standard_document/blocks/table_col.rb +16 -0
- data/lib/metanorma/standard_document/blocks/to_c.rb +17 -0
- data/lib/metanorma/standard_document/blocks.rb +60 -0
- data/lib/metanorma/standard_document/elements/add.rb +19 -0
- data/lib/metanorma/standard_document/elements/del.rb +19 -0
- data/lib/metanorma/standard_document/elements/form_input.rb +27 -0
- data/lib/metanorma/standard_document/elements/input.rb +33 -0
- data/lib/metanorma/standard_document/elements/input_type.rb +27 -0
- data/lib/metanorma/standard_document/elements/label.rb +19 -0
- data/lib/metanorma/standard_document/elements/option.rb +27 -0
- data/lib/metanorma/standard_document/elements/orientation_type.rb +27 -0
- data/lib/metanorma/standard_document/elements/select.rb +32 -0
- data/lib/metanorma/standard_document/elements/standard_page_break_element.rb +22 -0
- data/lib/metanorma/standard_document/elements/textarea.rb +25 -0
- data/lib/metanorma/standard_document/elements.rb +20 -0
- data/lib/metanorma/standard_document/lists/standard_definition.rb +24 -0
- data/lib/metanorma/standard_document/lists/standard_definition_list.rb +30 -0
- data/lib/metanorma/standard_document/lists/standard_definition_term.rb +27 -0
- data/lib/metanorma/standard_document/lists/standard_unordered_list.rb +28 -0
- data/lib/metanorma/standard_document/lists/unordered_checkable_list_item.rb +26 -0
- data/lib/metanorma/standard_document/lists.rb +17 -0
- data/lib/metanorma/standard_document/metadata/editorial_group_type.rb +25 -0
- data/lib/metanorma/standard_document/metadata/ics_type.rb +26 -0
- data/lib/metanorma/standard_document/metadata/standard_bib_data.rb +25 -0
- data/lib/metanorma/standard_document/metadata/standard_bib_data_extension_type.rb +37 -0
- data/lib/metanorma/standard_document/metadata/structured_identifier_type.rb +48 -0
- data/lib/metanorma/standard_document/metadata/technical_committee_type.rb +27 -0
- data/lib/metanorma/standard_document/metadata.rb +17 -0
- data/lib/metanorma/standard_document/namespace.rb +11 -0
- data/lib/metanorma/standard_document/refs/reference_to_term.rb +25 -0
- data/lib/metanorma/standard_document/refs/reference_to_termbase.rb +27 -0
- data/lib/metanorma/standard_document/refs/standoc_locality_stack.rb +24 -0
- data/lib/metanorma/standard_document/refs/standoc_reference_to_citation_element.rb +27 -0
- data/lib/metanorma/standard_document/refs/standoc_reference_to_id_element.rb +36 -0
- data/lib/metanorma/standard_document/refs/xref_case_type.rb +27 -0
- data/lib/metanorma/standard_document/refs/xref_connective_type.rb +27 -0
- data/lib/metanorma/standard_document/refs/xref_target_type.rb +25 -0
- data/lib/metanorma/standard_document/refs.rb +18 -0
- data/lib/metanorma/standard_document/root.rb +10 -0
- data/lib/metanorma/standard_document/sections/abstract.rb +21 -0
- data/lib/metanorma/standard_document/sections/acknowledgements.rb +21 -0
- data/lib/metanorma/standard_document/sections/annex_section.rb +32 -0
- data/lib/metanorma/standard_document/sections/bibliography_section.rb +21 -0
- data/lib/metanorma/standard_document/sections/boilerplate_type.rb +32 -0
- data/lib/metanorma/standard_document/sections/clause_hierarchical_section.rb +32 -0
- data/lib/metanorma/standard_document/sections/clause_section.rb +29 -0
- data/lib/metanorma/standard_document/sections/definition_section.rb +75 -0
- data/lib/metanorma/standard_document/sections/floating_title.rb +27 -0
- data/lib/metanorma/standard_document/sections/foreword.rb +21 -0
- data/lib/metanorma/standard_document/sections/introduction.rb +23 -0
- data/lib/metanorma/standard_document/sections/misc_container.rb +26 -0
- data/lib/metanorma/standard_document/sections/normative_type.rb +29 -0
- data/lib/metanorma/standard_document/sections/standard_content_section.rb +27 -0
- data/lib/metanorma/standard_document/sections/standard_hierarchical_section.rb +30 -0
- data/lib/metanorma/standard_document/sections/standard_references_section.rb +74 -0
- data/lib/metanorma/standard_document/sections/standard_section.rb +39 -0
- data/lib/metanorma/standard_document/sections/terms_section.rb +29 -0
- data/lib/metanorma/standard_document/sections.rb +30 -0
- data/lib/metanorma/standard_document/standard_document_type.rb +15 -0
- data/lib/metanorma/standard_document/terms/abbreviation_type.rb +27 -0
- data/lib/metanorma/standard_document/terms/concept.rb +42 -0
- data/lib/metanorma/standard_document/terms/definition_collection.rb +24 -0
- data/lib/metanorma/standard_document/terms/designation.rb +31 -0
- data/lib/metanorma/standard_document/terms/expression_designation.rb +38 -0
- data/lib/metanorma/standard_document/terms/expression_type.rb +27 -0
- data/lib/metanorma/standard_document/terms/grammar_gender.rb +27 -0
- data/lib/metanorma/standard_document/terms/grammar_info.rb +36 -0
- data/lib/metanorma/standard_document/terms/graphical_symbol_designation.rb +25 -0
- data/lib/metanorma/standard_document/terms/letter_symbol_designation.rb +27 -0
- data/lib/metanorma/standard_document/terms/non_verbal_representation.rb +33 -0
- data/lib/metanorma/standard_document/terms/related_term.rb +31 -0
- data/lib/metanorma/standard_document/terms/related_term_type.rb +28 -0
- data/lib/metanorma/standard_document/terms/term.rb +66 -0
- data/lib/metanorma/standard_document/terms/term_collection.rb +24 -0
- data/lib/metanorma/standard_document/terms/term_definition.rb +29 -0
- data/lib/metanorma/standard_document/terms/term_source.rb +29 -0
- data/lib/metanorma/standard_document/terms/term_source_status.rb +29 -0
- data/lib/metanorma/standard_document/terms/term_source_type.rb +21 -0
- data/lib/metanorma/standard_document/terms/verbal_expression.rb +35 -0
- data/lib/metanorma/standard_document/terms.rb +31 -0
- data/lib/metanorma/standard_document.rb +19 -0
- data/metanorma-document.gemspec +35 -0
- data/tasks/roundtrip_samples.rake +535 -0
- metadata +743 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: fc7125fd4984bbedebb8d471fc29d0d34d5b56b7de1ec518570bc27f8e0671d5
|
|
4
|
+
data.tar.gz: bc63e4f58ba6053d66df6a2671737c0ce051057ef4e0b14fc51154d050ca0c67
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 45e13915f1b88579d06b94968c5a7f469fdbf77b6980cf3cb68d6747bb9fd1a87d111c8388d2f0f337ba5ccde71aa96c7f755ca6d0080f8ccafa154a15ed7075
|
|
7
|
+
data.tar.gz: 1a6ab72e96afe880682ffb9646273e794dec60ce1a2e208d794054fe99ea38c6adf09672678a8234ebf805b800ab491bfa01332efcd663b65c403e8cd617712c
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
|
2
|
+
# See https://github.com/metanorma/cimas
|
|
3
|
+
name: rake
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches: [ master, main ]
|
|
8
|
+
tags: [ v* ]
|
|
9
|
+
pull_request:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
rake:
|
|
16
|
+
uses: metanorma/ci/.github/workflows/generic-rake.yml@main
|
|
17
|
+
with:
|
|
18
|
+
setup-tools: libreoffice
|
|
19
|
+
submodules: false
|
|
20
|
+
secrets:
|
|
21
|
+
pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
|
2
|
+
# See https://github.com/metanorma/cimas
|
|
3
|
+
name: release
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
next_version:
|
|
9
|
+
description: |
|
|
10
|
+
Next release version. Possible values: x.y.z, major, minor, patch (or pre|rc|etc).
|
|
11
|
+
Also, you can pass 'skip' to skip 'git tag' and do 'gem push' for the current version
|
|
12
|
+
required: true
|
|
13
|
+
default: 'skip'
|
|
14
|
+
repository_dispatch:
|
|
15
|
+
types: [ do-release ]
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
release:
|
|
19
|
+
uses: metanorma/ci/.github/workflows/rubygems-release.yml@main
|
|
20
|
+
with:
|
|
21
|
+
next_version: ${{ github.event.inputs.next_version }}
|
|
22
|
+
secrets:
|
|
23
|
+
rubygems-api-key: ${{ secrets.METANORMA_CI_RUBYGEMS_API_KEY }}
|
|
24
|
+
pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
|
|
25
|
+
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
name: Roundtrip Samples
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: '0 6 * * 1' # Monday 6am UTC
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
# --- Discover which mn-samples-* GitHub Pages sites exist ---
|
|
10
|
+
discover:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
outputs:
|
|
13
|
+
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
14
|
+
steps:
|
|
15
|
+
- name: Discover mn-samples GitHub Pages sites
|
|
16
|
+
id: set-matrix
|
|
17
|
+
env:
|
|
18
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
|
+
run: |
|
|
20
|
+
set -e
|
|
21
|
+
# List all public metanorma/mn-samples-* repos
|
|
22
|
+
REPOS=$(gh repo list metanorma --limit 1000 --json name \
|
|
23
|
+
--jq '.[].name | select(startswith("mn-samples-")) | sub("^mn-samples-"; "")' \
|
|
24
|
+
2>/dev/null | sort || true)
|
|
25
|
+
|
|
26
|
+
if [ -z "$REPOS" ]; then
|
|
27
|
+
echo "::warning::Failed to discover repos via API, using fallback list"
|
|
28
|
+
REPOS="bipm
|
|
29
|
+
cc
|
|
30
|
+
csa
|
|
31
|
+
iec
|
|
32
|
+
ieee
|
|
33
|
+
ietf
|
|
34
|
+
iho
|
|
35
|
+
iso
|
|
36
|
+
itu
|
|
37
|
+
m3aawg
|
|
38
|
+
ogc
|
|
39
|
+
oiml
|
|
40
|
+
ribose
|
|
41
|
+
standoc
|
|
42
|
+
un"
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
# Exclude deprecated flavors
|
|
46
|
+
EXCLUDED="mpfa"
|
|
47
|
+
|
|
48
|
+
# Verify each site is reachable (GitHub Pages)
|
|
49
|
+
VALID=""
|
|
50
|
+
for repo in $REPOS; do
|
|
51
|
+
if echo "$EXCLUDED" | grep -qw "$repo"; then
|
|
52
|
+
echo " EXCLUDED: $repo (deprecated)"
|
|
53
|
+
continue
|
|
54
|
+
fi
|
|
55
|
+
url="https://metanorma.github.io/mn-samples-${repo}/"
|
|
56
|
+
code=$(curl -sL -o /dev/null -w '%{http_code}' "$url" --max-time 15)
|
|
57
|
+
if [ "$code" = "200" ]; then
|
|
58
|
+
VALID="${VALID}${repo}
|
|
59
|
+
"
|
|
60
|
+
echo " OK: $repo ($code)"
|
|
61
|
+
else
|
|
62
|
+
echo " SKIP: $repo ($code)"
|
|
63
|
+
fi
|
|
64
|
+
done
|
|
65
|
+
|
|
66
|
+
MATRIX=$(echo "$VALID" | jq -R -s -c \
|
|
67
|
+
'split("\n") | map(select(length > 0)) | map({repo: .})')
|
|
68
|
+
echo "matrix={\"include\":$MATRIX}" >> "$GITHUB_OUTPUT"
|
|
69
|
+
echo "Valid sites: $MATRIX"
|
|
70
|
+
|
|
71
|
+
# --- Round-trip each site in parallel ---
|
|
72
|
+
roundtrip:
|
|
73
|
+
needs: discover
|
|
74
|
+
runs-on: ubuntu-latest
|
|
75
|
+
strategy:
|
|
76
|
+
matrix: ${{ fromJson(needs.discover.outputs.matrix) }}
|
|
77
|
+
fail-fast: false
|
|
78
|
+
steps:
|
|
79
|
+
- uses: actions/checkout@v4
|
|
80
|
+
|
|
81
|
+
- name: Set up Ruby
|
|
82
|
+
uses: ruby/setup-ruby@v1
|
|
83
|
+
with:
|
|
84
|
+
ruby-version: '3.4'
|
|
85
|
+
bundler-cache: true
|
|
86
|
+
|
|
87
|
+
- name: Run roundtrip for ${{ matrix.repo }}
|
|
88
|
+
run: |
|
|
89
|
+
mkdir -p tmp/roundtrip_reports
|
|
90
|
+
bundle exec rake "roundtrip:site[https://metanorma.github.io/mn-samples-${{ matrix.repo }},${{ matrix.repo }}]"
|
|
91
|
+
continue-on-error: true
|
|
92
|
+
|
|
93
|
+
- name: Upload report
|
|
94
|
+
uses: actions/upload-artifact@v4
|
|
95
|
+
if: always()
|
|
96
|
+
with:
|
|
97
|
+
name: report-${{ matrix.repo }}
|
|
98
|
+
path: tmp/roundtrip_reports/${{ matrix.repo }}.yml
|
|
99
|
+
retention-days: 14
|
|
100
|
+
|
|
101
|
+
# --- Consolidate all reports ---
|
|
102
|
+
consolidate:
|
|
103
|
+
needs: roundtrip
|
|
104
|
+
runs-on: ubuntu-latest
|
|
105
|
+
if: always()
|
|
106
|
+
steps:
|
|
107
|
+
- uses: actions/checkout@v4
|
|
108
|
+
|
|
109
|
+
- name: Download all reports
|
|
110
|
+
uses: actions/download-artifact@v4
|
|
111
|
+
with:
|
|
112
|
+
path: tmp/roundtrip_reports
|
|
113
|
+
pattern: report-*
|
|
114
|
+
merge-multiple: true
|
|
115
|
+
|
|
116
|
+
- name: Set up Ruby
|
|
117
|
+
uses: ruby/setup-ruby@v1
|
|
118
|
+
with:
|
|
119
|
+
ruby-version: '3.4'
|
|
120
|
+
bundler-cache: true
|
|
121
|
+
|
|
122
|
+
- name: Consolidate reports
|
|
123
|
+
run: bundle exec rake "roundtrip:consolidate[tmp/roundtrip_reports]"
|
|
124
|
+
continue-on-error: true
|
|
125
|
+
|
|
126
|
+
- name: Upload consolidated report
|
|
127
|
+
uses: actions/upload-artifact@v4
|
|
128
|
+
if: always()
|
|
129
|
+
with:
|
|
130
|
+
name: roundtrip-consolidated-report
|
|
131
|
+
path: tmp/roundtrip_consolidated.yml
|
|
132
|
+
retention-days: 30
|
data/.gitignore
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/.bundle/
|
|
2
|
+
/.yardoc
|
|
3
|
+
/_yardoc/
|
|
4
|
+
/coverage/
|
|
5
|
+
/doc/
|
|
6
|
+
/pkg/
|
|
7
|
+
/spec/reports/
|
|
8
|
+
/tmp/
|
|
9
|
+
|
|
10
|
+
# rspec failure tracking
|
|
11
|
+
.rspec_status
|
|
12
|
+
|
|
13
|
+
/Gemfile.lock
|
|
14
|
+
TODO*
|
|
15
|
+
/data/dist/
|
|
16
|
+
**/output/
|
|
17
|
+
output.html
|
|
18
|
+
output-*.html
|
|
19
|
+
/private-do-not-commit/
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
inherit_from:
|
|
2
|
+
- https://raw.githubusercontent.com/riboseinc/oss-guides/main/ci/rubocop.yml
|
|
3
|
+
- .rubocop_todo.yml
|
|
4
|
+
|
|
5
|
+
inherit_mode:
|
|
6
|
+
merge:
|
|
7
|
+
- Exclude
|
|
8
|
+
|
|
9
|
+
# local repo-specific modifications
|
|
10
|
+
# ...
|
|
11
|
+
|
|
12
|
+
plugins:
|
|
13
|
+
- rubocop-rspec
|
|
14
|
+
- rubocop-performance
|
|
15
|
+
- rubocop-rake
|
|
16
|
+
|
|
17
|
+
AllCops:
|
|
18
|
+
TargetRubyVersion: 3.4
|
|
19
|
+
NewCops: enable
|
|
20
|
+
Exclude:
|
|
21
|
+
- 'vendor/**/*'
|
|
22
|
+
- 'data/**/*'
|
data/.rubocop_todo.yml
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# This configuration was generated by
|
|
2
|
+
# `rubocop --auto-gen-config`
|
|
3
|
+
# on 2026-04-22 12:28:09 UTC using RuboCop version 1.86.1.
|
|
4
|
+
# The point is for the user to remove these configuration records
|
|
5
|
+
# one by one as the offenses are removed from the code base.
|
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
|
8
|
+
|
|
9
|
+
# Offense count: 1
|
|
10
|
+
Gemspec/RequiredRubyVersion:
|
|
11
|
+
Exclude:
|
|
12
|
+
- 'metanorma-document.gemspec'
|
|
13
|
+
|
|
14
|
+
# Offense count: 1
|
|
15
|
+
# This cop supports safe autocorrection (--autocorrect).
|
|
16
|
+
Layout/ClosingParenthesisIndentation:
|
|
17
|
+
Exclude:
|
|
18
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
19
|
+
|
|
20
|
+
# Offense count: 1
|
|
21
|
+
# This cop supports safe autocorrection (--autocorrect).
|
|
22
|
+
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
|
23
|
+
# SupportedStyles: consistent, consistent_relative_to_receiver, special_for_inner_method_call, special_for_inner_method_call_in_parentheses
|
|
24
|
+
Layout/FirstArgumentIndentation:
|
|
25
|
+
Exclude:
|
|
26
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
27
|
+
|
|
28
|
+
# Offense count: 580
|
|
29
|
+
# This cop supports safe autocorrection (--autocorrect).
|
|
30
|
+
# Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
|
|
31
|
+
# URISchemes: http, https
|
|
32
|
+
Layout/LineLength:
|
|
33
|
+
Enabled: false
|
|
34
|
+
|
|
35
|
+
# Offense count: 1
|
|
36
|
+
# This cop supports safe autocorrection (--autocorrect).
|
|
37
|
+
# Configuration parameters: EnforcedStyle.
|
|
38
|
+
# SupportedStyles: symmetrical, new_line, same_line
|
|
39
|
+
Layout/MultilineMethodCallBraceLayout:
|
|
40
|
+
Exclude:
|
|
41
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
42
|
+
|
|
43
|
+
# Offense count: 2
|
|
44
|
+
# Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
|
|
45
|
+
Lint/DuplicateBranch:
|
|
46
|
+
Exclude:
|
|
47
|
+
- 'lib/metanorma/html/index_generator.rb'
|
|
48
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
49
|
+
|
|
50
|
+
# Offense count: 2
|
|
51
|
+
# Configuration parameters: AllowComments, AllowEmptyLambdas.
|
|
52
|
+
Lint/EmptyBlock:
|
|
53
|
+
Exclude:
|
|
54
|
+
- 'spec/metanorma/iso_document/metadata/title_roundtrip_spec.rb'
|
|
55
|
+
|
|
56
|
+
# Offense count: 1
|
|
57
|
+
# Configuration parameters: AllowedPatterns.
|
|
58
|
+
# AllowedPatterns: (?-mix:(exactly|at_least|at_most)\(\d+\)\.times)
|
|
59
|
+
Lint/UnreachableLoop:
|
|
60
|
+
Exclude:
|
|
61
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
62
|
+
|
|
63
|
+
# Offense count: 1
|
|
64
|
+
Lint/UselessConstantScoping:
|
|
65
|
+
Exclude:
|
|
66
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
67
|
+
|
|
68
|
+
# Offense count: 26
|
|
69
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
|
|
70
|
+
Metrics/AbcSize:
|
|
71
|
+
Exclude:
|
|
72
|
+
- 'lib/metanorma/document/components/lists/list_item.rb'
|
|
73
|
+
- 'lib/metanorma/html/index_generator.rb'
|
|
74
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
75
|
+
- 'lib/metanorma/html/transformer.rb'
|
|
76
|
+
|
|
77
|
+
# Offense count: 11
|
|
78
|
+
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
|
|
79
|
+
# AllowedMethods: refine
|
|
80
|
+
Metrics/BlockLength:
|
|
81
|
+
Max: 139
|
|
82
|
+
|
|
83
|
+
# Offense count: 2
|
|
84
|
+
# Configuration parameters: CountBlocks, CountModifierForms.
|
|
85
|
+
Metrics/BlockNesting:
|
|
86
|
+
Max: 4
|
|
87
|
+
|
|
88
|
+
# Offense count: 31
|
|
89
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns, Max.
|
|
90
|
+
Metrics/CyclomaticComplexity:
|
|
91
|
+
Exclude:
|
|
92
|
+
- 'lib/metanorma/document/components/lists/list_item.rb'
|
|
93
|
+
- 'lib/metanorma/html/index_generator.rb'
|
|
94
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
95
|
+
- 'lib/metanorma/html/transformer.rb'
|
|
96
|
+
- 'lib/metanorma/iso_document/metadata/iso_localized_title.rb'
|
|
97
|
+
|
|
98
|
+
# Offense count: 33
|
|
99
|
+
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
|
|
100
|
+
Metrics/MethodLength:
|
|
101
|
+
Max: 141
|
|
102
|
+
|
|
103
|
+
# Offense count: 24
|
|
104
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns, Max.
|
|
105
|
+
Metrics/PerceivedComplexity:
|
|
106
|
+
Exclude:
|
|
107
|
+
- 'lib/metanorma/document/components/lists/list_item.rb'
|
|
108
|
+
- 'lib/metanorma/html/index_generator.rb'
|
|
109
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
110
|
+
- 'lib/metanorma/html/transformer.rb'
|
|
111
|
+
|
|
112
|
+
# Offense count: 1
|
|
113
|
+
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
|
114
|
+
# AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
|
|
115
|
+
Naming/MethodParameterName:
|
|
116
|
+
Exclude:
|
|
117
|
+
- 'lib/metanorma/html/renderer.rb'
|
|
118
|
+
|
|
119
|
+
# Offense count: 10
|
|
120
|
+
# Configuration parameters: IgnoredMetadata.
|
|
121
|
+
RSpec/DescribeClass:
|
|
122
|
+
Exclude:
|
|
123
|
+
- 'spec/metanorma/document_spec.rb'
|
|
124
|
+
- 'spec/metanorma/iso_document/metadata/title_roundtrip_spec.rb'
|
|
125
|
+
- 'spec/metanorma/iso_document/roundtrip/bipm_roundtrip_spec.rb'
|
|
126
|
+
- 'spec/metanorma/iso_document/roundtrip/cc_roundtrip_spec.rb'
|
|
127
|
+
- 'spec/metanorma/iso_document/roundtrip/iso_amd_roundtrip_spec.rb'
|
|
128
|
+
- 'spec/metanorma/iso_document/roundtrip/iso_is_roundtrip_spec.rb'
|
|
129
|
+
- 'spec/metanorma/iso_document/roundtrip/itu_roundtrip_spec.rb'
|
|
130
|
+
- 'spec/metanorma/iso_document/roundtrip/ogc_roundtrip_spec.rb'
|
|
131
|
+
- 'spec/metanorma/iso_document/roundtrip/oiml_collection_roundtrip_spec.rb'
|
|
132
|
+
- 'spec/metanorma/iso_document/roundtrip/oiml_roundtrip_spec.rb'
|
|
133
|
+
|
|
134
|
+
# Offense count: 1
|
|
135
|
+
# Configuration parameters: CountAsOne.
|
|
136
|
+
RSpec/ExampleLength:
|
|
137
|
+
Max: 6
|
|
138
|
+
|
|
139
|
+
# Offense count: 1
|
|
140
|
+
RSpec/MultipleDescribes:
|
|
141
|
+
Exclude:
|
|
142
|
+
- 'spec/metanorma/document_spec.rb'
|
|
143
|
+
|
|
144
|
+
# Offense count: 279
|
|
145
|
+
# Configuration parameters: AllowedPatterns.
|
|
146
|
+
# AllowedPatterns: ^expect_, ^assert_
|
|
147
|
+
RSpec/NoExpectationExample:
|
|
148
|
+
Enabled: false
|
|
149
|
+
|
|
150
|
+
# Offense count: 16
|
|
151
|
+
# Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector.
|
|
152
|
+
# SupportedInflectors: default, active_support
|
|
153
|
+
RSpec/SpecFilePathFormat:
|
|
154
|
+
Enabled: false
|
|
155
|
+
|
|
156
|
+
# Offense count: 2
|
|
157
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
|
158
|
+
Style/IdenticalConditionalBranches:
|
|
159
|
+
Exclude:
|
|
160
|
+
- 'lib/metanorma/html/index_generator.rb'
|
|
161
|
+
|
|
162
|
+
# Offense count: 1
|
|
163
|
+
# Configuration parameters: Max.
|
|
164
|
+
Style/SafeNavigationChainLength:
|
|
165
|
+
Exclude:
|
|
166
|
+
- 'lib/metanorma/html/renderer.rb'
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
## [Unreleased]
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
|
|
5
|
+
- Full document model for all Metanorma XML flavors: ISO, IEC, IEEE, IETF, IHO, OIML, BIPM, ITU, OGC, CC, Ribose, and Standoc
|
|
6
|
+
- Autoload-based lazy loading across all modules — replaces eager `require_relative` chains
|
|
7
|
+
- Roundtrip test suite verifying XML parse → serialize fidelity for ISO, BIPM, CC, ITU, OGC, OIML, and collections
|
|
8
|
+
- GHA workflow (`roundtrip-samples.yml`) for automated roundtrip testing against live mn-samples sites
|
|
9
|
+
- `tasks/roundtrip_samples.rake` with flavor-to-model mapping and consolidated reporting
|
|
10
|
+
- Inline element models: LaTeX math, strike, underline, localized strings, formatted footnotes
|
|
11
|
+
- Missing XML attribute mappings: `ol@start`, `subdivision name@language`, `docidentifier@language`
|
|
12
|
+
- Mixed content and nested link support in inline elements
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Roundtrip fidelity: missing attributes, model corrections, and Canon config alignment
|
|
17
|
+
- Stale `Semantic::Root` reference in rake task
|
|
18
|
+
|
|
19
|
+
## [0.1.0] - 2022-03-11
|
|
20
|
+
|
|
21
|
+
- Initial release
|
data/Gemfile
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
# Specify your gem's dependencies in metanorma-standoc-document.gemspec
|
|
6
|
+
gemspec
|
|
7
|
+
|
|
8
|
+
if ENV["CI"]
|
|
9
|
+
gem "canon", github: "lutaml/canon", branch: "main"
|
|
10
|
+
gem "lutaml-model", github: "lutaml/lutaml-model", branch: "main"
|
|
11
|
+
gem "mml", github: "plurimath/mml", branch: "main"
|
|
12
|
+
gem "moxml", github: "lutaml/moxml", branch: "main"
|
|
13
|
+
else
|
|
14
|
+
gem "canon", path: "../../lutaml/canon"
|
|
15
|
+
gem "lutaml-model", path: "../../lutaml/lutaml-model"
|
|
16
|
+
gem "mml", path: "../../plurimath/mml"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
gem "nokogiri"
|
|
20
|
+
gem "rake", "~> 13.0"
|
|
21
|
+
gem "rdoc"
|
|
22
|
+
gem "rspec", "~> 3.0"
|
|
23
|
+
gem "rubocop"
|
|
24
|
+
gem "rubocop-performance"
|
|
25
|
+
gem "rubocop-rake"
|
|
26
|
+
gem "rubocop-rspec"
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
BSD 2-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026, Ribose Inc.
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
10
|
+
list of conditions and the following disclaimer.
|
|
11
|
+
|
|
12
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
and/or other materials provided with the distribution.
|
|
15
|
+
|
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
19
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
20
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
21
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
22
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
23
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
24
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
25
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.adoc
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
= metanorma-document
|
|
2
|
+
|
|
3
|
+
Ruby library for working with Metanorma document XML.
|
|
4
|
+
|
|
5
|
+
== Installation
|
|
6
|
+
|
|
7
|
+
gem install metanorma-document
|
|
8
|
+
|
|
9
|
+
== Usage
|
|
10
|
+
|
|
11
|
+
require 'metanorma/document'
|
|
12
|
+
|
|
13
|
+
doc = IO.read('spec/fixtures/rice-amd-en.final.xml')
|
|
14
|
+
standard = Metanorma::IsoDocument::Root.from_xml(doc)
|
|
15
|
+
puts standard.to_xml(pretty: true)
|
|
16
|
+
|
|
17
|
+
=== HTML Generation
|
|
18
|
+
|
|
19
|
+
The `Metanorma::Html::Generator` produces a complete, self-contained HTML document from a presentation XML document model. It handles body content rendering, table of contents, CSS theming, JavaScript interactivity, and responsive layout.
|
|
20
|
+
|
|
21
|
+
==== Quick Start
|
|
22
|
+
|
|
23
|
+
[source,ruby]
|
|
24
|
+
require "metanorma/document"
|
|
25
|
+
require "metanorma/html/generator"
|
|
26
|
+
|
|
27
|
+
# Parse presentation XML into a document model
|
|
28
|
+
xml = File.read("spec/fixtures/iso/is/document-en.presentation.xml")
|
|
29
|
+
doc = Metanorma::IsoDocument::Root.from_xml(xml)
|
|
30
|
+
|
|
31
|
+
# Generate a complete HTML document
|
|
32
|
+
html = Metanorma::Html::Generator.generate(doc)
|
|
33
|
+
File.write("output.html", html)
|
|
34
|
+
|
|
35
|
+
==== Renderer Selection
|
|
36
|
+
|
|
37
|
+
The `Generator` automatically selects the correct renderer based on the document model class:
|
|
38
|
+
|
|
39
|
+
[horizontal]
|
|
40
|
+
`Metanorma::Document::Root` :: `BaseRenderer` (generic documents)
|
|
41
|
+
`Metanorma::StandardDocument::Root` :: `StandardRenderer` (standards with terms, annexes)
|
|
42
|
+
`Metanorma::IsoDocument::Root` :: `IsoRenderer` (ISO-specific formatting)
|
|
43
|
+
|
|
44
|
+
For publisher-based dispatch within the same model (e.g., ICC documents published through ISO), use _taste_ registration:
|
|
45
|
+
|
|
46
|
+
[source,ruby]
|
|
47
|
+
# ICC documents are IsoDocument::Root but use IccRenderer
|
|
48
|
+
Metanorma::Html::Generator.register_taste(
|
|
49
|
+
Metanorma::IsoDocument::Root,
|
|
50
|
+
"ICC",
|
|
51
|
+
Metanorma::Html::IccRenderer
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
The lookup order is: taste match (publisher) → model class (most specific last) → `BaseRenderer`.
|
|
55
|
+
|
|
56
|
+
==== Renderer Architecture
|
|
57
|
+
|
|
58
|
+
The renderer hierarchy follows the open/closed principle:
|
|
59
|
+
|
|
60
|
+
....
|
|
61
|
+
BaseRenderer # Core HTML rendering, document assembly, CSS/JS pipeline
|
|
62
|
+
└── StandardRenderer # Terms, definitions, annexes, bibliography
|
|
63
|
+
├── IsoRenderer # ISO cover page, copyright, title formatting
|
|
64
|
+
│ ├── IccRenderer # ICC publisher styling
|
|
65
|
+
│ └── PdfaRenderer # PDF Association publisher styling
|
|
66
|
+
├── IecRenderer # IEC-specific formatting
|
|
67
|
+
├── IeeeRenderer # IEEE-specific formatting
|
|
68
|
+
├── IetfRenderer # IETF-specific formatting
|
|
69
|
+
├── IhoRenderer # IHO-specific formatting
|
|
70
|
+
├── ItuRenderer # ITU-specific formatting
|
|
71
|
+
├── OgcRenderer # OGC-specific formatting
|
|
72
|
+
├── OimlRenderer # OIML-specific formatting
|
|
73
|
+
├── BipmRenderer # BIPM-specific formatting
|
|
74
|
+
├── CcRenderer # CC-specific formatting
|
|
75
|
+
└── RiboseRenderer # Ribose-specific formatting
|
|
76
|
+
....
|
|
77
|
+
|
|
78
|
+
==== Presentation XML
|
|
79
|
+
|
|
80
|
+
The HTML renderer expects **presentation XML** (not source XML). Presentation XML contains `fmt-*` display elements (`fmt-title`, `fmt-xref`, `fmt-link`, `fmt-concept`, `fmt-definition`, `fmt-preferred`, etc.) alongside semantic elements. The renderer prioritizes `fmt-*` elements for rendering, falling back to semantic elements when display elements are absent.
|
|
81
|
+
|
|
82
|
+
==== Theming
|
|
83
|
+
|
|
84
|
+
Each renderer has a `Theme` object controlling colors, typography, and layout. Override theme properties in subclasses:
|
|
85
|
+
|
|
86
|
+
[source,ruby]
|
|
87
|
+
class MyRenderer < Metanorma::Html::StandardRenderer
|
|
88
|
+
def theme
|
|
89
|
+
@theme ||= begin
|
|
90
|
+
t = Theme.new
|
|
91
|
+
t.primary = "#1a5276"
|
|
92
|
+
t.accent = "#2e86c1"
|
|
93
|
+
t.font_body = '"Charter", serif'
|
|
94
|
+
t
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
Theme properties are emitted as CSS custom properties (`--mn-primary`, `--font-body`, etc.) for runtime customization.
|
|
100
|
+
|
|
101
|
+
==== Liquid Templates
|
|
102
|
+
|
|
103
|
+
HTML structure is defined in `.liquid` templates under `lib/metanorma/html/templates/`:
|
|
104
|
+
|
|
105
|
+
[horizontal]
|
|
106
|
+
`document.html.liquid` :: Full document shell (`<html>`, `<head>`, `<body>`)
|
|
107
|
+
`_header.html.liquid` :: Sticky header with publisher logos
|
|
108
|
+
`_footer.html.liquid` :: Footer with copyright
|
|
109
|
+
`_cover.html.liquid` :: Cover page layout
|
|
110
|
+
`_footnotes.html.liquid` :: Footnotes section
|
|
111
|
+
`_doc_title.html.liquid` :: Document title rendering
|
|
112
|
+
|
|
113
|
+
Templates use `Liquid::LocalFileSystem` for partials (prefixed with `_`). The `render_liquid` method handles template caching via `TEMPLATE_CACHE`.
|
|
114
|
+
|
|
115
|
+
==== Asset Pipeline
|
|
116
|
+
|
|
117
|
+
The `AssetPipeline` compiles CSS and JavaScript from modular source files:
|
|
118
|
+
|
|
119
|
+
[horizontal]
|
|
120
|
+
CSS :: `data/stylesheets/base/` (reset, typography, layout, dark mode, print) + `data/stylesheets/components/` (21 component stylesheets)
|
|
121
|
+
JS :: `data/javascripts/core/` (reader, theme, scroll, navigation, reveal) + `data/javascripts/components/` (ToC, search, lightbox, code copy, glossary, etc.)
|
|
122
|
+
|
|
123
|
+
All assets are compiled into inline `<style>` and `<script>` blocks for self-contained output.
|
|
124
|
+
|
|
125
|
+
==== CLI Usage
|
|
126
|
+
|
|
127
|
+
From the command line:
|
|
128
|
+
|
|
129
|
+
[source,bash]
|
|
130
|
+
# Generate HTML from presentation XML
|
|
131
|
+
bundle exec ruby -e '
|
|
132
|
+
require "metanorma/document"
|
|
133
|
+
require "metanorma/html/generator"
|
|
134
|
+
doc = Metanorma::IsoDocument::Root.from_xml(ARGF.read)
|
|
135
|
+
puts Metanorma::Html::Generator.generate(doc)
|
|
136
|
+
' < document.presentation.xml > output.html
|
|
137
|
+
|
|
138
|
+
==== API Reference
|
|
139
|
+
|
|
140
|
+
[horizontal]
|
|
141
|
+
`Generator.generate(document, **options)` :: Returns a complete HTML string. Auto-selects the renderer.
|
|
142
|
+
`Generator.register(model_class, renderer_class)` :: Register a model-to-renderer mapping.
|
|
143
|
+
`Generator.register_taste(model_class, publisher_abbrev, renderer_class)` :: Register a publisher-based override.
|
|
144
|
+
`Generator.renderer_for(document)` :: Returns the renderer class that would be used.
|
|
145
|
+
|
|
146
|
+
Renderer instance methods:
|
|
147
|
+
|
|
148
|
+
[horizontal]
|
|
149
|
+
`generate_full_document(document)` :: Full HTML document (body + assembly).
|
|
150
|
+
`to_html` :: Returns the rendered body content after `generate_full_document`.
|
|
151
|
+
`theme` :: Returns the `Theme` instance (override in subclasses).
|
|
152
|
+
`render_liquid(template_name, assigns)` :: Renders a Liquid template with caching.
|
|
153
|
+
|
|
154
|
+
== Document Flavors
|
|
155
|
+
|
|
156
|
+
The gem provides a hierarchy of document flavors:
|
|
157
|
+
|
|
158
|
+
* BasicDocument - Basic document model
|
|
159
|
+
* StandardDocument - Standard document model (extends BasicDocument)
|
|
160
|
+
* IsoDocument - ISO standard document model (extends StandardDocument)
|
|
161
|
+
* IecDocument - IEC standard document model
|
|
162
|
+
* IeeeDocument - IEEE standard document model
|
|
163
|
+
* IetfDocument - IETF standard document model
|
|
164
|
+
* IhoDocument - IHO standard document model
|
|
165
|
+
* OimlDocument - OIML standard document model
|
|
166
|
+
* BipmDocument - BIPM standard document model
|
|
167
|
+
* ItuDocument - ITU standard document model
|
|
168
|
+
* OgcDocument - OGC standard document model
|
|
169
|
+
* CcDocument - CC standard document model
|
|
170
|
+
* RiboseDocument - Ribose standard document model
|
|
171
|
+
|
|
172
|
+
== Supported XML Formats
|
|
173
|
+
|
|
174
|
+
This library targets the modern Metanorma XML format which uses `<metanorma>` as the root element.
|
|
175
|
+
|
|
176
|
+
Legacy XML formats that use flavor-specific root elements (e.g. `<iso-standard>`, `<m3d-standard>`, `<csa-standard>`, `<un-standard>`) are *not supported*.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "bundler/gem_tasks"
|
|
4
|
+
require "rspec/core/rake_task"
|
|
5
|
+
|
|
6
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
7
|
+
|
|
8
|
+
require "rubocop/rake_task"
|
|
9
|
+
|
|
10
|
+
RuboCop::RakeTask.new
|
|
11
|
+
|
|
12
|
+
task default: %i[spec rubocop]
|
|
13
|
+
|
|
14
|
+
Dir[File.join(__dir__, "tasks", "*.rake")].each { |f| import f }
|
data/bin/console
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require "bundler/setup"
|
|
5
|
+
require_relative "../lib/metanorma/document"
|
|
6
|
+
|
|
7
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
8
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
9
|
+
|
|
10
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
11
|
+
# require "pry"
|
|
12
|
+
# Pry.start
|
|
13
|
+
|
|
14
|
+
require "irb"
|
|
15
|
+
IRB.start(__FILE__)
|