metanorma-iec 0.0.3 → 0.0.4
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 +4 -4
- data/README.adoc +87 -0
- data/lib/asciidoctor/iec/converter.rb +97 -0
- data/lib/isodoc/iec/base_convert.rb +4 -0
- data/lib/isodoc/iec/html/isodoc.scss +4 -0
- data/lib/isodoc/iec/metadata.rb +56 -10
- data/lib/isodoc/iec/word_convert.rb +3 -3
- data/lib/metanorma/iec/version.rb +1 -1
- data/spec/asciidoctor-iec/base_spec.rb +19 -10
- data/spec/asciidoctor-iec/blocks_spec.rb +8 -0
- data/spec/asciidoctor-iec/cleanup_spec.rb +18 -0
- data/spec/asciidoctor-iec/inline_spec.rb +1 -0
- data/spec/asciidoctor-iec/section_spec.rb +6 -28
- data/spec/isodoc/i18n_spec.rb +10 -50
- data/spec/isodoc/inline_spec.rb +0 -2
- data/spec/isodoc/iso_spec.rb +0 -1
- data/spec/isodoc/metadata_spec.rb +7 -7
- data/spec/isodoc/postproc_spec.rb +3 -12
- data/spec/isodoc/section_spec.rb +4 -179
- data/spec/isodoc/terms_spec.rb +2 -22
- data/spec/metanorma/processor_spec.rb +1 -11
- data/spec/spec_helper.rb +13 -1
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 489e431cdb476cb3d5526c645e6a41b7f163ae0abc8c903f48a0a99a36b7b6b4
         | 
| 4 | 
            +
              data.tar.gz: fd8b9c6b5c2aa79f1c1453027532d211ac2308f85d0b1d0e30f03d3f641ee7d6
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0011dbc5a6261195f51f58766adc0635d71f4981be53024770ba8ecbfca1367949fc69db7b84a02492bd1dd4718adad44cdcfe5c385781a0143d09e9b0df16e6
         | 
| 7 | 
            +
              data.tar.gz: f7703c90cb73b42240b236267c00b0e27b0ecf1f1c5dbffeaf980fb33cf068db73c269dc05bafe9ba07148677dd4518e8ecdc9b472bb6d73c323072ecd07fa17
         | 
    
        data/README.adoc
    ADDED
    
    | @@ -0,0 +1,87 @@ | |
| 1 | 
            +
            = metanorma-iec: Metanorma processor for the International Electrotechnical Commission
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            image:https://img.shields.io/gem/v/metanorma-iec.svg["Gem Version", link="https://rubygems.org/gems/metanorma-iec"]
         | 
| 4 | 
            +
            image:https://img.shields.io/travis/metanorma/metanorma-iec/master.svg["Build Status", link="https://travis-ci.com/metanorma/metanorma-iec"]
         | 
| 5 | 
            +
            image:https://ci.appveyor.com/api/projects/status/odgc3ltblokvd6e7?svg=true["Appveyor Build Status", link="https://ci.appveyor.com/project/ribose/metanorma-iec"]
         | 
| 6 | 
            +
            image:https://codeclimate.com/github/metanorma/metanorma-iec/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-iec"]
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            WARNING: This gem is still under development.
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            == Functionality
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            This gem processes Metanorma documents into the IEC document class.
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            The gem is basically the https://github.com/metanorma/metanorma-iso gem, with some tweaking of rendering to meet the particular requirements of the IEC.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            It provides the following functions:
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            . Compiles Metanorma input into the Metanorma-IEC XML format (which is identical to Metanorma-ISO, since the two standards share the same document model)
         | 
| 19 | 
            +
            . Validates XML output against the Metanorma-IEC document model
         | 
| 20 | 
            +
            ** Errors are reported to console against the XML, and are intended for users to
         | 
| 21 | 
            +
            check that they have provided all necessary components of the
         | 
| 22 | 
            +
            document.
         | 
| 23 | 
            +
            . Metanorma-IEC XML is then converted into desired output formats.
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            The following outputs are supported:
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            * Primary: the canonical Metanorma-IEC XML representation (`.xml`).
         | 
| 28 | 
            +
            * Secondary: the Metanorma-IEC XML representation is processed to generate the following outputs
         | 
| 29 | 
            +
            as end deliverable IEC documents.
         | 
| 30 | 
            +
            ** HTML (`.html`)
         | 
| 31 | 
            +
            ** Word (`.doc`)
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            == Structure
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            This gem inherits from the https://github.com/metanorma/metanorma-iso
         | 
| 36 | 
            +
            gem, and aligns closely to it.
         | 
| 37 | 
            +
             | 
| 38 | 
            +
             | 
| 39 | 
            +
            === Quickstart
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            Please see https://www.metanorma.com for instructions to get started.
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            If you are using a Mac, the https://github.com/metanorma/metanorma-macos-setup
         | 
| 44 | 
            +
            repository has instructions on setting up your machine to run Metanorma
         | 
| 45 | 
            +
            scripts such as this one. You need only run the following in a Terminal console:
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            [source,console]
         | 
| 48 | 
            +
            ----
         | 
| 49 | 
            +
            $ bash <(curl -s https://raw.githubusercontent.com/metanorma/metanorma-macos-setup/master/metanorma-setup)
         | 
| 50 | 
            +
            $ gem install metanorma-cli
         | 
| 51 | 
            +
            $ gem install metanorma-iec
         | 
| 52 | 
            +
            ----
         | 
| 53 | 
            +
             | 
| 54 | 
            +
             | 
| 55 | 
            +
            == Usage
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            Using the `metanorma` CLI:
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            [source,console]
         | 
| 60 | 
            +
            ----
         | 
| 61 | 
            +
            $ metanorma --type iec a.adoc                   # output HTML
         | 
| 62 | 
            +
            $ metanorma --type iec --extensions html a.adoc # output just HTML
         | 
| 63 | 
            +
            $ metanorma --type iec --extensions xml a.adoc  # output Metanorma XML
         | 
| 64 | 
            +
            ----
         | 
| 65 | 
            +
             | 
| 66 | 
            +
             | 
| 67 | 
            +
            == Authoring
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            Please refer to the Metanorma-ISO documentation for general documentation.
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            * Metanorma-ISO general documentation: https://www.metanorma.com/software/metanorma-iso/
         | 
| 72 | 
            +
             | 
| 73 | 
            +
            * Metanorma-ISO guidance: https://www.metanorma.com/software/metanorma-iso/docs/guidance/
         | 
| 74 | 
            +
             | 
| 75 | 
            +
             | 
| 76 | 
            +
            == Documentation
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            See https://www.metanorma.com/author/iso/[Write ISO documents with Metanorma]
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            ////
         | 
| 81 | 
            +
            == Examples
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            * link:spec/examples/rfc6350.adoc[] is an Metanorma AsciiDoc version of https://tools.ietf.org/html/rfc6350[RFC 6350].
         | 
| 84 | 
            +
            * link:spec/examples/rfc6350.html[] is an HTML file generated from the Asciidoctor.
         | 
| 85 | 
            +
            * link:spec/examples/rfc6350.doc[] is a Word document generated from the Asciidoctor.
         | 
| 86 | 
            +
            ////
         | 
| 87 | 
            +
             | 
| @@ -54,6 +54,103 @@ module Asciidoctor | |
| 54 54 | 
             
                    File.read(file, encoding: "UTF-8")
         | 
| 55 55 | 
             
                  end
         | 
| 56 56 |  | 
| 57 | 
            +
                  def relaton_relations
         | 
| 58 | 
            +
                    super + %w(translated-from)
         | 
| 59 | 
            +
                  end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                  def doctype_validate(xmldoc)
         | 
| 62 | 
            +
                    doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
         | 
| 63 | 
            +
                    %w(international-standard technical-specification technical-report 
         | 
| 64 | 
            +
                    publicly-available-specification international-workshop-agreement 
         | 
| 65 | 
            +
                    guide interpretation-sheet).include? doctype or
         | 
| 66 | 
            +
                    warn "IEC Document Attributes: #{doctype} is not a recognised document type"
         | 
| 67 | 
            +
                  end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                  STAGE_CODES = {
         | 
| 70 | 
            +
                    "PNW" => "1000",
         | 
| 71 | 
            +
                    "ANW" => "2000",
         | 
| 72 | 
            +
                    "CAN" => "2098",
         | 
| 73 | 
            +
                    "ACD" => "2099",
         | 
| 74 | 
            +
                    "CD" => "3020",
         | 
| 75 | 
            +
                    "BWG" => "3092",
         | 
| 76 | 
            +
                    "A2CD" => "3099",
         | 
| 77 | 
            +
                    "2CD" => "3520",
         | 
| 78 | 
            +
                    "3CD" => "3520",
         | 
| 79 | 
            +
                    "4CD" => "3520",
         | 
| 80 | 
            +
                    "5CD" => "3520",
         | 
| 81 | 
            +
                    "6CD" => "3520",
         | 
| 82 | 
            +
                    "7CD" => "3520",
         | 
| 83 | 
            +
                    "8CD" => "3520",
         | 
| 84 | 
            +
                    "9CD" => "3520",
         | 
| 85 | 
            +
                    "CDM" => "3591",
         | 
| 86 | 
            +
                    "A3CD" => "3592",
         | 
| 87 | 
            +
                    "A4CD" => "3592",
         | 
| 88 | 
            +
                    "A5CD" => "3592",
         | 
| 89 | 
            +
                    "A6CD" => "3592",
         | 
| 90 | 
            +
                    "A7CD" => "3592",
         | 
| 91 | 
            +
                    "A8CD" => "3592",
         | 
| 92 | 
            +
                    "A9CD" => "3592",
         | 
| 93 | 
            +
                    "ACDV" => "3599",
         | 
| 94 | 
            +
                    "CCDV" => "4020",
         | 
| 95 | 
            +
                    "CDVM" => "4091",
         | 
| 96 | 
            +
                    "NCDV" => "4092",
         | 
| 97 | 
            +
                    "NADIS" => "4093",
         | 
| 98 | 
            +
                    "ADIS" => "4099",
         | 
| 99 | 
            +
                    "ADTR" => "4099",
         | 
| 100 | 
            +
                    "ADTS" => "4099",
         | 
| 101 | 
            +
                    "RDISH" => "5000",
         | 
| 102 | 
            +
                    "RFDIS" => "5000",
         | 
| 103 | 
            +
                    "CDISH" => "5020",
         | 
| 104 | 
            +
                    "CDPAS" => "5020",
         | 
| 105 | 
            +
                    "CDTR" => "5020",
         | 
| 106 | 
            +
                    "CDTS" => "5020",
         | 
| 107 | 
            +
                    "CFDIS" => "5020",
         | 
| 108 | 
            +
                    "DTRM" => "5092",
         | 
| 109 | 
            +
                    "DTSM" => "5092",
         | 
| 110 | 
            +
                    "NDTR" => "5092",
         | 
| 111 | 
            +
                    "NDTS" => "5092",
         | 
| 112 | 
            +
                    "NFDIS" => "5092",
         | 
| 113 | 
            +
                    "APUB" => "5099",
         | 
| 114 | 
            +
                    "BPUB" => "6000",
         | 
| 115 | 
            +
                    "PPUB" => "6060",
         | 
| 116 | 
            +
                    "RR" => "9092",
         | 
| 117 | 
            +
                    "AMW" => "9220",
         | 
| 118 | 
            +
                    "WPUB" => "9599",
         | 
| 119 | 
            +
                    "DELPUB" => "9960",
         | 
| 120 | 
            +
                  }.freeze
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                  DOC_STAGE = {
         | 
| 123 | 
            +
                    "00": "PWI",
         | 
| 124 | 
            +
                    "10": "NWIP",
         | 
| 125 | 
            +
                    "20": "WD",
         | 
| 126 | 
            +
                    "30": "CD",
         | 
| 127 | 
            +
                    "40": "CDV",
         | 
| 128 | 
            +
                    "50": "FDIS",
         | 
| 129 | 
            +
                  }.freeze
         | 
| 130 | 
            +
             | 
| 131 | 
            +
                  def get_stage(node)
         | 
| 132 | 
            +
                    stage = node.attr("status") || node.attr("docstage") || "60"
         | 
| 133 | 
            +
                    m = /([0-9])CD$/.match(stage) and
         | 
| 134 | 
            +
                      node.set_attr("iteration", m[1])
         | 
| 135 | 
            +
                    STAGE_CODES[stage] and stage = STAGE_CODES[stage][0..1]
         | 
| 136 | 
            +
                    stage
         | 
| 137 | 
            +
                  end
         | 
| 138 | 
            +
             | 
| 139 | 
            +
                  def get_substage(node)
         | 
| 140 | 
            +
                    st = node.attr("status") || node.attr("docstage")
         | 
| 141 | 
            +
                    stage = get_stage(node)
         | 
| 142 | 
            +
                    node.attr("docsubstage") || 
         | 
| 143 | 
            +
                      ( stage == "60" ? "60" : 
         | 
| 144 | 
            +
                       STAGE_CODES[st] ? STAGE_CODES[st][2..3] :
         | 
| 145 | 
            +
                       "00" )
         | 
| 146 | 
            +
                  end
         | 
| 147 | 
            +
             | 
| 148 | 
            +
                  def id_stage_abbr(stage, substage, node)
         | 
| 149 | 
            +
                    abbr = DOC_STAGE[stage.to_sym] || ""
         | 
| 150 | 
            +
                    abbr = node.attr("iteration") + abbr if node.attr("iteration")
         | 
| 151 | 
            +
                    abbr
         | 
| 152 | 
            +
                  end
         | 
| 153 | 
            +
             | 
| 57 154 | 
             
                  def html_converter(node)
         | 
| 58 155 | 
             
                    node.nil? ? IsoDoc::Iec::HtmlConvert.new({}) :
         | 
| 59 156 | 
             
                      IsoDoc::Iec::HtmlConvert.new(html_extract_attributes(node))
         | 
| @@ -4,6 +4,10 @@ require "metanorma-iso" | |
| 4 4 | 
             
            module IsoDoc
         | 
| 5 5 | 
             
              module Iec
         | 
| 6 6 | 
             
                module BaseConvert
         | 
| 7 | 
            +
                   def metadata_init(lang, script, labels)
         | 
| 8 | 
            +
                    @meta = Metadata.new(lang, script, labels)
         | 
| 9 | 
            +
                  end
         | 
| 10 | 
            +
             | 
| 7 11 | 
             
                  def foreword(isoxml, out)
         | 
| 8 12 | 
             
                    f = isoxml.at(ns("//foreword"))
         | 
| 9 13 | 
             
                    b = isoxml.at(ns("//boilerplate/legal-statement"))
         | 
    
        data/lib/isodoc/iec/metadata.rb
    CHANGED
    
    | @@ -1,20 +1,66 @@ | |
| 1 1 | 
             
            require "isodoc"
         | 
| 2 2 | 
             
            require "metanorma-iso"
         | 
| 3 | 
            -
             | 
| 3 | 
            +
             | 
| 4 4 | 
             
            module IsoDoc
         | 
| 5 5 | 
             
              module Iec
         | 
| 6 6 | 
             
                class  Metadata < IsoDoc::Iso::Metadata
         | 
| 7 7 | 
             
                  STAGE_ABBRS = {
         | 
| 8 | 
            -
                    "00" | 
| 9 | 
            -
                    "10" | 
| 10 | 
            -
                    "20" | 
| 11 | 
            -
                    "30" | 
| 12 | 
            -
                    " | 
| 13 | 
            -
                    " | 
| 14 | 
            -
                    " | 
| 15 | 
            -
                    " | 
| 16 | 
            -
                    " | 
| 8 | 
            +
                    "00" => {"00" => "PWI"},
         | 
| 9 | 
            +
                    "10" => {"00" => "PNW"},
         | 
| 10 | 
            +
                    "20" => {"00" => "ANW", "98" => "CAN", "99" => "ACD"},
         | 
| 11 | 
            +
                    "30" => {"00" => "CD", "20" => "CD", "92" => "BWG", "97" => "MERGED", "98" => "DREJ", "99" => "A2CD"},
         | 
| 12 | 
            +
                    "35" => {"00" => "CD", "20" => "CD", "91" => "CDM", "92" => "ACD", "99" => "ACDV"},
         | 
| 13 | 
            +
                    "40" => {"00" => "CCDV", "20" => "CCDV", "91" => "CDVM", "92" => "NCDV", "93" => "NADIS", "95" => "ADISSB", "99" => "ADIS"},
         | 
| 14 | 
            +
                    "50" => {"00" => "RFDIS", "20" => "CFDIS", "92" => "NFDIS", "95" => "APUBSB", "99" => "APUB"},
         | 
| 15 | 
            +
                    "60" => {"00" => "BPUB", "60" => "PPUB"},
         | 
| 16 | 
            +
                    "90" => {"00" => "RR", "92" => "RR"},
         | 
| 17 | 
            +
                    "92" => {"00" => "AMW", "20" => "AMW"},
         | 
| 18 | 
            +
                    "95" => {"00" => "WPUB", "99" => "WPUB"},
         | 
| 19 | 
            +
                    "99" => {"00" => "DELPUB", "60" => "DELPUB"},
         | 
| 17 20 | 
             
                  }.freeze
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  def stage_abbrev1(stage, substage, iter, doctype, draft)
         | 
| 23 | 
            +
                    return "" unless stage
         | 
| 24 | 
            +
                    abbr = STAGE_ABBRS.dig(stage, substage) || "??"
         | 
| 25 | 
            +
                    if stage == "35" && substage == "92"
         | 
| 26 | 
            +
                      iter = (iter.to_i + 1) % "02"
         | 
| 27 | 
            +
                    end
         | 
| 28 | 
            +
                    case doctype
         | 
| 29 | 
            +
                    when "technical-report"
         | 
| 30 | 
            +
                      stage = "ADTR" if stage == "40" && substage == "99"
         | 
| 31 | 
            +
                      stage = "CDTR" if stage == "50" && substage == "20"
         | 
| 32 | 
            +
                      stage = "DTRM" if stage == "50" && substage == "92"
         | 
| 33 | 
            +
                    when "technical-specification"
         | 
| 34 | 
            +
                      stage = "ADTS" if stage == "40" && substage == "99"
         | 
| 35 | 
            +
                      stage = "CDTS" if stage == "50" && substage == "20"
         | 
| 36 | 
            +
                      stage = "DTSM" if stage == "50" && substage == "92"
         | 
| 37 | 
            +
                    when "interpretation-sheet"
         | 
| 38 | 
            +
                      stage = "RDISH" if stage == "50" && substage == "00"
         | 
| 39 | 
            +
                      stage = "CDISH" if stage == "50" && substage == "20"
         | 
| 40 | 
            +
                    when "publicly-available-specification"
         | 
| 41 | 
            +
                      stage = "CDPAS" if stage == "50" && substage == "20"
         | 
| 42 | 
            +
                    end
         | 
| 43 | 
            +
                    abbr = abbr.sub(/CD$/, "#{iter}CD") if iter
         | 
| 44 | 
            +
                    abbr
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  def docstatus(isoxml, _out)
         | 
| 48 | 
            +
                    docstatus = isoxml.at(ns("//bibdata/status/stage"))
         | 
| 49 | 
            +
                    set(:unpublished, false)
         | 
| 50 | 
            +
                    if docstatus
         | 
| 51 | 
            +
                      set(:stage, docstatus.text)
         | 
| 52 | 
            +
                      set(:stage_int, docstatus.text.to_i)
         | 
| 53 | 
            +
                      set(:unpublished, docstatus.text.to_i > 0 && docstatus.text.to_i < 60)
         | 
| 54 | 
            +
                      abbr = stage_abbrev1(docstatus.text,
         | 
| 55 | 
            +
                                           isoxml&.at(ns("//bibdata/status/substage"))&.text,
         | 
| 56 | 
            +
                                           isoxml&.at(ns("//bibdata/status/iteration"))&.text,
         | 
| 57 | 
            +
                                           isoxml&.at(ns("//bibdata/ext/doctype"))&.text,
         | 
| 58 | 
            +
                                           isoxml&.at(ns("//version/draft"))&.text)
         | 
| 59 | 
            +
                      set(:stageabbr, abbr)
         | 
| 60 | 
            +
                    end
         | 
| 61 | 
            +
                    revdate = isoxml.at(ns("//version/revision-date"))
         | 
| 62 | 
            +
                    set(:revdate, revdate&.text)
         | 
| 63 | 
            +
                  end
         | 
| 18 64 | 
             
                end
         | 
| 19 65 | 
             
              end
         | 
| 20 66 | 
             
            end
         | 
| @@ -90,16 +90,16 @@ module IsoDoc | |
| 90 90 | 
             
                    super
         | 
| 91 91 | 
             
                  end
         | 
| 92 92 |  | 
| 93 | 
            -
                  def make_tr_attr(td, row, totalrows)
         | 
| 93 | 
            +
                  def make_tr_attr(td, row, totalrows, header)
         | 
| 94 94 | 
             
                    ret = super
         | 
| 95 | 
            -
                    css_class = td.name == "th" ? "TABLE-col-heading" : "TABLE-cell"
         | 
| 95 | 
            +
                    css_class = (td.name == "th" || header) ? "TABLE-col-heading" : "TABLE-cell"
         | 
| 96 96 | 
             
                    ret.merge( "class": css_class )
         | 
| 97 97 | 
             
                  end
         | 
| 98 98 |  | 
| 99 99 | 
             
                  def tr_parse(node, out, ord, totalrows, header)
         | 
| 100 100 | 
             
                    out.tr do |r|
         | 
| 101 101 | 
             
                      node.elements.each do |td|
         | 
| 102 | 
            -
                        attrs = make_tr_attr(td, ord, totalrows - 1)
         | 
| 102 | 
            +
                        attrs = make_tr_attr(td, ord, totalrows - 1, header)
         | 
| 103 103 | 
             
                        attrs[:class] = "TABLE-col-heading" if header
         | 
| 104 104 | 
             
                        r.send td.name, **attr_code(attrs) do |entry|
         | 
| 105 105 | 
             
                          td.children.each { |n| parse(n, entry) }
         | 
| @@ -87,6 +87,7 @@ RSpec.describe Asciidoctor::Iec do | |
| 87 87 | 
             
                  :title-main-fr: Titre Principal
         | 
| 88 88 | 
             
                  :title-part-fr: Part du Titre
         | 
| 89 89 | 
             
                  :library-ics: 1,2,3
         | 
| 90 | 
            +
                  :translated-from: ABC 123
         | 
| 90 91 | 
             
                INPUT
         | 
| 91 92 | 
             
                       <?xml version="1.0" encoding="UTF-8"?>
         | 
| 92 93 | 
             
                   <iso-standard xmlns="http://riboseinc.com/isoxml">
         | 
| @@ -99,13 +100,8 @@ RSpec.describe Asciidoctor::Iec do | |
| 99 100 | 
             
               <title language="fr" format="text/plain" type="title-intro">Introduction Française</title>
         | 
| 100 101 | 
             
               <title language="fr" format="text/plain" type="title-main">Titre Principal</title>
         | 
| 101 102 | 
             
               <title language="fr" format="text/plain" type="title-part">Part du Titre</title>
         | 
| 102 | 
            -
                     <docidentifier type="iso">IEC/ | 
| 103 | 
            +
                     <docidentifier type="iso">IEC/3NWIP 1000-1</docidentifier>
         | 
| 103 104 | 
             
            <docnumber>1000</docnumber>
         | 
| 104 | 
            -
                     <edition>2</edition>
         | 
| 105 | 
            -
            <version>
         | 
| 106 | 
            -
                     <revision-date>2000-01-01</revision-date>
         | 
| 107 | 
            -
                     <draft>0.3.4</draft>
         | 
| 108 | 
            -
                   </version>
         | 
| 109 105 | 
             
                     <contributor>
         | 
| 110 106 | 
             
                       <role type="author"/>
         | 
| 111 107 | 
             
                       <organization>
         | 
| @@ -120,6 +116,11 @@ RSpec.describe Asciidoctor::Iec do | |
| 120 116 | 
             
                         <abbreviation>IEC</abbreviation>
         | 
| 121 117 | 
             
                       </organization>
         | 
| 122 118 | 
             
                     </contributor>
         | 
| 119 | 
            +
                     <edition>2</edition>
         | 
| 120 | 
            +
            <version>
         | 
| 121 | 
            +
                     <revision-date>2000-01-01</revision-date>
         | 
| 122 | 
            +
                     <draft>0.3.4</draft>
         | 
| 123 | 
            +
                   </version>
         | 
| 123 124 | 
             
                     <language>en</language>
         | 
| 124 125 | 
             
                     <script>Latn</script>
         | 
| 125 126 | 
             
                     <status>
         | 
| @@ -136,6 +137,12 @@ RSpec.describe Asciidoctor::Iec do | |
| 136 137 | 
             
                         </organization>
         | 
| 137 138 | 
             
                       </owner>
         | 
| 138 139 | 
             
                     </copyright>
         | 
| 140 | 
            +
                     <relation type="translatedFrom">
         | 
| 141 | 
            +
            <bibitem>
         | 
| 142 | 
            +
            <title>--</title>
         | 
| 143 | 
            +
            <docidentifier>ABC 123</docidentifier>
         | 
| 144 | 
            +
            </bibitem>
         | 
| 145 | 
            +
            </relation>
         | 
| 139 146 | 
             
                     <ext>
         | 
| 140 147 | 
             
                     <doctype>article</doctype>
         | 
| 141 148 | 
             
                     <editorialgroup>
         | 
| @@ -183,11 +190,12 @@ RSpec.describe Asciidoctor::Iec do | |
| 183 190 | 
             
                  :script: Grek
         | 
| 184 191 | 
             
                  :publisher: IEC,IETF,ISO
         | 
| 185 192 | 
             
                  :copyright-year: 2001
         | 
| 193 | 
            +
                  :docstage: A2CD
         | 
| 186 194 | 
             
                INPUT
         | 
| 187 195 | 
             
                       <?xml version="1.0" encoding="UTF-8"?>
         | 
| 188 196 | 
             
                   <iso-standard xmlns="http://riboseinc.com/isoxml">
         | 
| 189 197 | 
             
                   <bibdata type="standard">
         | 
| 190 | 
            -
                     <docidentifier type="iso">ISO/IEC/IETF 1000-1-1 | 
| 198 | 
            +
                     <docidentifier type="iso">ISO/IEC/IETF/2CD 1000-1-1</docidentifier>
         | 
| 191 199 | 
             
                     <docidentifier type="iso-tc">2000</docidentifier>
         | 
| 192 200 | 
             
                     <docnumber>1000</docnumber>
         | 
| 193 201 | 
             
                     <contributor>
         | 
| @@ -233,8 +241,9 @@ RSpec.describe Asciidoctor::Iec do | |
| 233 241 | 
             
                     <language>el</language>
         | 
| 234 242 | 
             
                     <script>Grek</script>
         | 
| 235 243 | 
             
                     <status>
         | 
| 236 | 
            -
                       <stage> | 
| 237 | 
            -
                       <substage> | 
| 244 | 
            +
                       <stage>30</stage>
         | 
| 245 | 
            +
                       <substage>99</substage>
         | 
| 246 | 
            +
                       <iteration>2</iteration>
         | 
| 238 247 | 
             
                     </status>
         | 
| 239 248 | 
             
                     <copyright>
         | 
| 240 249 | 
             
                       <from>2001</from>
         | 
| @@ -460,7 +469,7 @@ OUTPUT | |
| 460 469 | 
             
                INPUT
         | 
| 461 470 | 
             
            <iso-standard xmlns="http://riboseinc.com/isoxml">
         | 
| 462 471 | 
             
            <bibdata type="standard">
         | 
| 463 | 
            -
              <docidentifier type="iso">IEC | 
| 472 | 
            +
              <docidentifier type="iso">IEC 1000</docidentifier>
         | 
| 464 473 | 
             
              <docnumber>1000</docnumber>
         | 
| 465 474 | 
             
              <contributor>
         | 
| 466 475 | 
             
                <role type="author"/>
         | 
| @@ -113,6 +113,8 @@ RSpec.describe Asciidoctor::Iec do | |
| 113 113 | 
             
                   <sections>
         | 
| 114 114 | 
             
                     <terms id="_" obligation="normative">
         | 
| 115 115 | 
             
                     <title>Terms and definitions</title>
         | 
| 116 | 
            +
                     <p>For the purposes of this document, the following terms and definitions apply.</p>
         | 
| 117 | 
            +
                     #{TERMS_BOILERPLATE}
         | 
| 116 118 | 
             
                     <term id="_">
         | 
| 117 119 | 
             
                     <preferred>Term1</preferred>
         | 
| 118 120 | 
             
                     <termnote id="_">
         | 
| @@ -222,6 +224,8 @@ RSpec.describe Asciidoctor::Iec do | |
| 222 224 | 
             
                          <sections>
         | 
| 223 225 | 
             
                     <terms id="_" obligation="normative">
         | 
| 224 226 | 
             
                     <title>Terms and definitions</title>
         | 
| 227 | 
            +
                     <p>For the purposes of this document, the following terms and definitions apply.</p>
         | 
| 228 | 
            +
                     #{TERMS_BOILERPLATE}
         | 
| 225 229 | 
             
                     <term id="_">
         | 
| 226 230 | 
             
                     <preferred>Term1</preferred>
         | 
| 227 231 | 
             
                     <termexample id="_">
         | 
| @@ -422,6 +426,8 @@ RSpec.describe Asciidoctor::Iec do | |
| 422 426 | 
             
                   <sections>
         | 
| 423 427 | 
             
                     <terms id="_" obligation="normative">
         | 
| 424 428 | 
             
                     <title>Terms and definitions</title>
         | 
| 429 | 
            +
                     <p>For the purposes of this document, the following terms and definitions apply.</p>
         | 
| 430 | 
            +
                     #{TERMS_BOILERPLATE}
         | 
| 425 431 | 
             
                     <term id="_">
         | 
| 426 432 | 
             
                     <preferred>Term1</preferred>
         | 
| 427 433 | 
             
                     <termsource status="identical">
         | 
| @@ -448,6 +454,8 @@ RSpec.describe Asciidoctor::Iec do | |
| 448 454 | 
             
                        <sections>
         | 
| 449 455 | 
             
                     <terms id="_" obligation="normative">
         | 
| 450 456 | 
             
                     <title>Terms and definitions</title>
         | 
| 457 | 
            +
                     <p>For the purposes of this document, the following terms and definitions apply.</p>
         | 
| 458 | 
            +
                     #{TERMS_BOILERPLATE}
         | 
| 451 459 | 
             
                     <term id="_">
         | 
| 452 460 | 
             
                     <preferred>Term1</preferred>
         | 
| 453 461 | 
             
                     <termsource status="modified">
         | 
| @@ -31,6 +31,9 @@ RSpec.describe Asciidoctor::Iec do | |
| 31 31 | 
             
                          <sections>
         | 
| 32 32 | 
             
                     <terms id="_" obligation="normative">
         | 
| 33 33 | 
             
                     <title>Terms and definitions</title>
         | 
| 34 | 
            +
                     <p>For the purposes of this document, 
         | 
| 35 | 
            +
                   the following terms and definitions apply.</p>
         | 
| 36 | 
            +
                    #{TERMS_BOILERPLATE}
         | 
| 34 37 | 
             
                     <term id="_"><preferred><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>t</mi><mn>90</mn></msub></math></stem></preferred><admitted><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>t</mi><mn>91</mn></msub></math></stem></admitted>
         | 
| 35 38 | 
             
                   <definition><p id="_">Time</p></definition></term>
         | 
| 36 39 | 
             
                   </terms>
         | 
| @@ -52,6 +55,9 @@ RSpec.describe Asciidoctor::Iec do | |
| 52 55 | 
             
                          <sections>
         | 
| 53 56 | 
             
                     <terms id="_" obligation="normative">
         | 
| 54 57 | 
             
                     <title>Terms and definitions</title>
         | 
| 58 | 
            +
                     <p>For the purposes of this document, 
         | 
| 59 | 
            +
                   the following terms and definitions apply.</p>
         | 
| 60 | 
            +
                    #{TERMS_BOILERPLATE}
         | 
| 55 61 | 
             
                     <term id="_">
         | 
| 56 62 | 
             
                     <preferred>Tempus</preferred>
         | 
| 57 63 | 
             
                     <domain>relativity</domain><definition><p id="_"> Time</p></definition>
         | 
| @@ -87,6 +93,9 @@ RSpec.describe Asciidoctor::Iec do | |
| 87 93 | 
             
                          <sections>
         | 
| 88 94 | 
             
                     <terms id="_" obligation="normative">
         | 
| 89 95 | 
             
                     <title>Terms and definitions</title>
         | 
| 96 | 
            +
                     <p>For the purposes of this document, 
         | 
| 97 | 
            +
                   the following terms and definitions apply.</p>
         | 
| 98 | 
            +
                    #{TERMS_BOILERPLATE}
         | 
| 90 99 | 
             
                     <term id="_"><preferred><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>t</mi><mn>90</mn></msub></math></stem></preferred><definition><formula id="_">
         | 
| 91 100 | 
             
                     <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>t</mi><mi>A</mi></msub></math></stem>
         | 
| 92 101 | 
             
                   </formula><p id="_">This paragraph is extraneous</p></definition>
         | 
| @@ -113,6 +122,9 @@ RSpec.describe Asciidoctor::Iec do | |
| 113 122 | 
             
                   #{BLANK_HDR}
         | 
| 114 123 | 
             
                          <sections>
         | 
| 115 124 | 
             
                     <terms id="_" obligation="normative"><title>Terms and definitions</title>
         | 
| 125 | 
            +
                     <p>For the purposes of this document, 
         | 
| 126 | 
            +
                   the following terms and definitions apply.</p>
         | 
| 127 | 
            +
                    #{TERMS_BOILERPLATE}
         | 
| 116 128 |  | 
| 117 129 | 
             
                   <term id="_">
         | 
| 118 130 | 
             
                   <preferred>Time</preferred>
         | 
| @@ -188,6 +200,7 @@ r = 1 %</stem> | |
| 188 200 | 
             
                  </foreword></preface><sections>
         | 
| 189 201 | 
             
                  </sections><bibliography><references id="_" obligation="informative">
         | 
| 190 202 | 
             
                    <title>Normative References</title>
         | 
| 203 | 
            +
                    <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 191 204 | 
             
                    <bibitem id="iso216" type="standard">
         | 
| 192 205 | 
             
                     <title format="text/plain">Reference</title>
         | 
| 193 206 | 
             
                     <docidentifier>ISO 216:2001</docidentifier>
         | 
| @@ -226,6 +239,7 @@ r = 1 %</stem> | |
| 226 239 | 
             
                  </foreword></preface><sections>
         | 
| 227 240 | 
             
                  </sections><bibliography><references id="_" obligation="informative">
         | 
| 228 241 | 
             
                    <title>Normative References</title>
         | 
| 242 | 
            +
                    <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 229 243 | 
             
                    <bibitem id="iso216" type="standard">
         | 
| 230 244 | 
             
                     <title format="text/plain">Reference</title>
         | 
| 231 245 | 
             
                     <docidentifier>ISO 216</docidentifier>
         | 
| @@ -293,6 +307,8 @@ r = 1 %</stem> | |
| 293 307 | 
             
                   <sections>
         | 
| 294 308 | 
             
                     <terms id="_" obligation="normative">
         | 
| 295 309 | 
             
                     <title>Terms and definitions</title>
         | 
| 310 | 
            +
                     <p>For the purposes of this document, the following terms and definitions apply.</p>
         | 
| 311 | 
            +
                     #{TERMS_BOILERPLATE}
         | 
| 296 312 | 
             
                     <term id="_">
         | 
| 297 313 | 
             
                     <preferred>Term1</preferred>
         | 
| 298 314 | 
             
                     <termsource status="identical">
         | 
| @@ -318,6 +334,7 @@ r = 1 %</stem> | |
| 318 334 | 
             
                  #{BLANK_HDR}
         | 
| 319 335 | 
             
                  <sections></sections>
         | 
| 320 336 | 
             
                  <bibliography><references id="_" obligation="informative"><title>Normative References</title>
         | 
| 337 | 
            +
                  <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 321 338 | 
             
                         <bibitem id="iso216" type="standard">
         | 
| 322 339 | 
             
                     <title format="text/plain">Reference</title>
         | 
| 323 340 | 
             
                     <docidentifier>ISO 216</docidentifier>
         | 
| @@ -655,6 +672,7 @@ r = 1 %</stem> | |
| 655 672 | 
             
                  </p>
         | 
| 656 673 | 
             
                  </clause></sections><bibliography><references id="_" obligation="informative">
         | 
| 657 674 | 
             
                    <title>Normative References</title>
         | 
| 675 | 
            +
                    <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 658 676 | 
             
                    <bibitem id="iso123" type="standard">
         | 
| 659 677 | 
             
                     <title format="text/plain">Standard</title>
         | 
| 660 678 | 
             
                     <docidentifier>ISO 123:—</docidentifier>
         | 
| @@ -129,6 +129,7 @@ RSpec.describe Asciidoctor::Iec do | |
| 129 129 |  | 
| 130 130 | 
             
                   </sections><bibliography><references id="_" obligation="informative">
         | 
| 131 131 | 
             
                     <title>Normative References</title>
         | 
| 132 | 
            +
                     <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 132 133 | 
             
                     <bibitem id="ISO712">
         | 
| 133 134 | 
             
                     <formattedref format="application/x-isodoc+xml">Reference</formattedref>
         | 
| 134 135 | 
             
                     <docidentifier>x</docidentifier>
         | 
| @@ -67,6 +67,8 @@ RSpec.describe Asciidoctor::Iec do | |
| 67 67 |  | 
| 68 68 | 
             
                   <terms id="_" obligation="normative">
         | 
| 69 69 | 
             
                     <title>Terms and definitions</title>
         | 
| 70 | 
            +
                     <p>For the purposes of this document, the following terms and definitions apply.</p>
         | 
| 71 | 
            +
                     #{TERMS_BOILERPLATE}
         | 
| 70 72 | 
             
                     <term id="_">
         | 
| 71 73 | 
             
                     <preferred>Term1</preferred>
         | 
| 72 74 | 
             
                   </term>
         | 
| @@ -98,7 +100,7 @@ RSpec.describe Asciidoctor::Iec do | |
| 98 100 | 
             
                   <appendix id="_" inline-header="false" obligation="normative">
         | 
| 99 101 | 
             
                      <title>Appendix 1</title>
         | 
| 100 102 | 
             
                   </appendix></annex><bibliography><references id="_" obligation="informative">
         | 
| 101 | 
            -
                     <title>Normative References</title>
         | 
| 103 | 
            +
                     <title>Normative References</title><p>There are no normative references in this document.</p>
         | 
| 102 104 | 
             
                   </references><clause id="_" obligation="informative">
         | 
| 103 105 | 
             
                     <title>Bibliography</title>
         | 
| 104 106 | 
             
                     <references id="_" obligation="informative">
         | 
| @@ -186,6 +188,8 @@ RSpec.describe Asciidoctor::Iec do | |
| 186 188 |  | 
| 187 189 | 
             
                   <terms id="_" obligation="normative">
         | 
| 188 190 | 
             
                     <title>Terms and definitions</title>
         | 
| 191 | 
            +
                     <p>For the purposes of this document, the following terms and definitions apply.</p>
         | 
| 192 | 
            +
                     #{TERMS_BOILERPLATE}
         | 
| 189 193 | 
             
                     <term id="_">
         | 
| 190 194 | 
             
                     <preferred>Term1</preferred>
         | 
| 191 195 | 
             
                   </term>
         | 
| @@ -218,7 +222,7 @@ RSpec.describe Asciidoctor::Iec do | |
| 218 222 | 
             
                   <appendix id="_" inline-header="false" obligation="normative">
         | 
| 219 223 | 
             
                     <title>Appendx 1</title>
         | 
| 220 224 | 
             
                   </appendix></annex><bibliography><references id="_" obligation="informative">
         | 
| 221 | 
            -
                     <title>Normative References</title>
         | 
| 225 | 
            +
                     <title>Normative References</title><p>There are no normative references in this document.</p>
         | 
| 222 226 | 
             
                   </references><clause id="_" obligation="informative">
         | 
| 223 227 | 
             
                     <title>Bibliography</title>
         | 
| 224 228 | 
             
                     <references id="_" obligation="informative">
         | 
| @@ -312,30 +316,4 @@ RSpec.describe Asciidoctor::Iec do | |
| 312 316 | 
             
                 OUTPUT
         | 
| 313 317 | 
             
              end
         | 
| 314 318 |  | 
| 315 | 
            -
                it "processes term document sources" do
         | 
| 316 | 
            -
                 expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
         | 
| 317 | 
            -
                  #{ASCIIDOC_BLANK_HDR}
         | 
| 318 | 
            -
             | 
| 319 | 
            -
                  Foreword
         | 
| 320 | 
            -
             | 
| 321 | 
            -
                  [source="iso1234,iso5678"]
         | 
| 322 | 
            -
                  == Terms and Definitions
         | 
| 323 | 
            -
             | 
| 324 | 
            -
                 INPUT
         | 
| 325 | 
            -
                         #{BLANK_HDR}
         | 
| 326 | 
            -
                         <termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/>
         | 
| 327 | 
            -
                    <preface><foreword obligation="informative">
         | 
| 328 | 
            -
                     <title>Foreword</title>
         | 
| 329 | 
            -
                     <p id="_">Foreword</p>
         | 
| 330 | 
            -
                   </foreword></preface><sections>
         | 
| 331 | 
            -
                   <terms id="_" obligation="normative">
         | 
| 332 | 
            -
                     <title>Terms and definitions</title>
         | 
| 333 | 
            -
             | 
| 334 | 
            -
             | 
| 335 | 
            -
                   </terms></sections>
         | 
| 336 | 
            -
                   </iso-standard>
         | 
| 337 | 
            -
             | 
| 338 | 
            -
                 OUTPUT
         | 
| 339 | 
            -
                end
         | 
| 340 | 
            -
             | 
| 341 319 | 
             
            end
         | 
    
        data/spec/isodoc/i18n_spec.rb
    CHANGED
    
    | @@ -93,19 +93,8 @@ RSpec.describe IsoDoc do | |
| 93 93 | 
             
                         </div>
         | 
| 94 94 | 
             
                         <div>
         | 
| 95 95 | 
             
                           <h1>2  Normative references</h1>
         | 
| 96 | 
            -
             | 
| 97 | 
            -
                          | 
| 98 | 
            -
                         <div id="H"><h1>3  Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
         | 
| 99 | 
            -
                       the following terms and definitions apply.</p>
         | 
| 100 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 101 | 
            -
                   standardization at the following addresses:</p>
         | 
| 102 | 
            -
             | 
| 103 | 
            -
                   <ul>
         | 
| 104 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 105 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 106 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 107 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 108 | 
            -
                   </p> </li> </ul>
         | 
| 96 | 
            +
                         </div>
         | 
| 97 | 
            +
                         <div id="H"><h1>3  Terms, definitions, symbols and abbreviated terms</h1>
         | 
| 109 98 | 
             
                   <div id="I"><h2>3.1 Normal Terms</h2>
         | 
| 110 99 |  | 
| 111 100 | 
             
                      <p class="TermNum" id="J">3.1.1</p>
         | 
| @@ -229,7 +218,7 @@ RSpec.describe IsoDoc do | |
| 229 218 | 
             
                   </bibliography>
         | 
| 230 219 | 
             
                   </iso-standard>
         | 
| 231 220 | 
             
                    INPUT
         | 
| 232 | 
            -
                #{HTML_HDR. | 
| 221 | 
            +
                #{HTML_HDR.gsub(/"en"/, '"tlh"')}
         | 
| 233 222 | 
             
                         <div>
         | 
| 234 223 | 
             
                           <h1 class="ForewordTitle">FOREWORD</h1>
         | 
| 235 224 | 
             
                           <div class="boilerplate_legal"/>
         | 
| @@ -250,19 +239,8 @@ RSpec.describe IsoDoc do | |
| 250 239 | 
             
                         </div>
         | 
| 251 240 | 
             
                         <div>
         | 
| 252 241 | 
             
                           <h1>2  Normative references</h1>
         | 
| 253 | 
            -
             | 
| 254 | 
            -
                          | 
| 255 | 
            -
                         <div id="H"><h1>3  Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
         | 
| 256 | 
            -
                       the following terms and definitions apply.</p>
         | 
| 257 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 258 | 
            -
                   standardization at the following addresses:</p>
         | 
| 259 | 
            -
             | 
| 260 | 
            -
                   <ul>
         | 
| 261 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 262 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 263 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 264 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 265 | 
            -
                   </p> </li> </ul>
         | 
| 242 | 
            +
                         </div>
         | 
| 243 | 
            +
                         <div id="H"><h1>3  Terms, definitions, symbols and abbreviated terms</h1>
         | 
| 266 244 | 
             
                   <div id="I"><h2>3.1 Normal Terms</h2>
         | 
| 267 245 |  | 
| 268 246 | 
             
                      <p class="TermNum" id="J">3.1.1</p>
         | 
| @@ -387,7 +365,7 @@ RSpec.describe IsoDoc do | |
| 387 365 | 
             
                   </iso-standard>
         | 
| 388 366 | 
             
                    INPUT
         | 
| 389 367 | 
             
                #{HTML_HDR.sub(/INTERNATIONAL ELECTROTECHNICAL COMMISSION/, "COMMISSION ELECTROTECHNIQUE INTERNATIONALE").
         | 
| 390 | 
            -
                 | 
| 368 | 
            +
                gsub(/"en"/, '"fr"')}
         | 
| 391 369 | 
             
                         <div>
         | 
| 392 370 | 
             
                           <h1 class="ForewordTitle">AVANT-PROPOS</h1>
         | 
| 393 371 | 
             
                           <div class="boilerplate_legal"/>
         | 
| @@ -408,18 +386,8 @@ RSpec.describe IsoDoc do | |
| 408 386 | 
             
                         </div>
         | 
| 409 387 | 
             
                         <div>
         | 
| 410 388 | 
             
                           <h1>2  Références normatives</h1>
         | 
| 411 | 
            -
             | 
| 412 | 
            -
                          | 
| 413 | 
            -
                         <div id="H"><h1>3  Terms, définitions, symboles et termes abrégés</h1><p>Pour les besoins du présent document, les termes et définitions suivants s'appliquent.</p>
         | 
| 414 | 
            -
                   <p>L'ISO et l'IEC tiennent à jour des bases de données terminologiques
         | 
| 415 | 
            -
                   destinées à être utilisées en normalisation, consultables aux adresses
         | 
| 416 | 
            -
                   suivantes:</p>
         | 
| 417 | 
            -
                   <ul>
         | 
| 418 | 
            -
                   <li> <p>ISO Online browsing platform: disponible à l'adresse
         | 
| 419 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 420 | 
            -
                   <li> <p>IEC Electropedia: disponible à l'adresse
         | 
| 421 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 422 | 
            -
                   </p> </li> </ul>
         | 
| 389 | 
            +
                         </div>
         | 
| 390 | 
            +
                         <div id="H"><h1>3  Terms, définitions, symboles et termes abrégés</h1>
         | 
| 423 391 | 
             
                   <div id="I"><h2>3.1 Normal Terms</h2>
         | 
| 424 392 |  | 
| 425 393 | 
             
                      <p class="TermNum" id="J">3.1.1</p>
         | 
| @@ -554,7 +522,7 @@ RSpec.describe IsoDoc do | |
| 554 522 | 
             
                   </bibliography>
         | 
| 555 523 | 
             
                   </iso-standard>
         | 
| 556 524 | 
             
                    INPUT
         | 
| 557 | 
            -
                #{HTML_HDR. | 
| 525 | 
            +
                #{HTML_HDR.gsub(/"en"/, '"zh"').sub(/INTERNATIONAL ELECTROTECHNICAL COMMISSION/, "国际电工委员会")}
         | 
| 558 526 | 
             
                         <div>
         | 
| 559 527 | 
             
                           <h1 class="ForewordTitle">前言</h1>
         | 
| 560 528 | 
             
                           <div class="boilerplate_legal"/>
         | 
| @@ -577,17 +545,9 @@ RSpec.describe IsoDoc do | |
| 577 545 | 
             
                         </div>
         | 
| 578 546 | 
             
                         <div>
         | 
| 579 547 | 
             
                           <h1>2  规范性引用文件</h1>
         | 
| 580 | 
            -
                           <p>下列文件对于本文件的应用是必不可少的。 凡是注日期的引用文件,仅注日期的版本适用于本文件。 凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。</p>
         | 
| 581 548 | 
             
                           <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
         | 
| 582 549 | 
             
                         </div>
         | 
| 583 | 
            -
                         <div id="H"><h1>3  术语、定义、符号、代号和缩略语</h1 | 
| 584 | 
            -
                   <p>ISO和IEC用于标准化的术语数据库地址如下:</p>
         | 
| 585 | 
            -
                   <ul>
         | 
| 586 | 
            -
                   <li> <p>ISO在线浏览平台:
         | 
| 587 | 
            -
                     位于<a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 588 | 
            -
                   <li> <p>IEC Electropedia:
         | 
| 589 | 
            -
                     位于<a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 590 | 
            -
                   </p> </li> </ul>
         | 
| 550 | 
            +
                         <div id="H"><h1>3  术语、定义、符号、代号和缩略语</h1>
         | 
| 591 551 | 
             
                   <div id="I"><h2>3.1 Normal Terms</h2>
         | 
| 592 552 |  | 
| 593 553 | 
             
                            <p class="TermNum" id="J">3.1.1</p>
         | 
    
        data/spec/isodoc/inline_spec.rb
    CHANGED
    
    | @@ -185,7 +185,6 @@ RSpec.describe IsoDoc do | |
| 185 185 | 
             
                           #{IEC_TITLE}
         | 
| 186 186 | 
             
                           <div>
         | 
| 187 187 | 
             
                             <h1>1  Normative references</h1>
         | 
| 188 | 
            -
                             <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 189 188 | 
             
                             <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
         | 
| 190 189 | 
             
                           </div>
         | 
| 191 190 | 
             
                         </div>
         | 
| @@ -252,7 +251,6 @@ RSpec.describe IsoDoc do | |
| 252 251 | 
             
                           #{IEC_TITLE}
         | 
| 253 252 | 
             
                           <div>
         | 
| 254 253 | 
             
                             <h1>1  Normative references</h1>
         | 
| 255 | 
            -
                             <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 256 254 | 
             
                             <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
         | 
| 257 255 | 
             
                           </div>
         | 
| 258 256 | 
             
                         </div>
         | 
    
        data/spec/isodoc/iso_spec.rb
    CHANGED
    
    | @@ -154,7 +154,6 @@ RSpec.describe IsoDoc::Iec do | |
| 154 154 | 
             
                         #{IEC_TITLE}
         | 
| 155 155 | 
             
                         <div>
         | 
| 156 156 | 
             
                           <h1>1  Normative references</h1>
         | 
| 157 | 
            -
                           <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 158 157 | 
             
                           <p id="ISO20483" class="NormRef">ISO 20483, <i> Cereals and pulses</i></p>
         | 
| 159 158 | 
             
                         </div>
         | 
| 160 159 | 
             
                       </div>
         | 
| @@ -43,8 +43,8 @@ RSpec.describe IsoDoc::Iec::Metadata do | |
| 43 43 | 
             
              <language>en</language>
         | 
| 44 44 | 
             
              <script>Latn</script>
         | 
| 45 45 | 
             
              <status>
         | 
| 46 | 
            -
                <stage> | 
| 47 | 
            -
                <substage> | 
| 46 | 
            +
                <stage>35</stage>
         | 
| 47 | 
            +
                <substage>20</substage>
         | 
| 48 48 | 
             
                <iteration>3</iteration>
         | 
| 49 49 | 
             
              </status>
         | 
| 50 50 | 
             
              <copyright>
         | 
| @@ -70,7 +70,7 @@ RSpec.describe IsoDoc::Iec::Metadata do | |
| 70 70 | 
             
            </bibdata>
         | 
| 71 71 | 
             
            </iso-standard>
         | 
| 72 72 | 
             
            INPUT
         | 
| 73 | 
            -
            {:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :authors=>[], :authors_affiliations=>{}, :createddate=>"2010–2011", :docnumber=>"ISO/PreCD3 17301-1", :docsubtitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1: Riz", :docsubtitleintro=>"Céréales et légumineuses", :docsubtitlemain=>"Spécification et méthodes d'essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie 1", :doctitle=>"Cereals and pulses — Specifications and test methods — Part 1: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part 1", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :edition=>"2", :editorialgroup=>["TC 34", "SC 4", "WG 3"], :ics=>"XXX", :obsoleteddate=>"2014", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"2011", :revdate=>"2016-05-01", :sc=>"SC 4", :secretariat=>"GB", :stage=>" | 
| 73 | 
            +
            {:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :authors=>[], :authors_affiliations=>{}, :createddate=>"2010–2011", :docnumber=>"ISO/PreCD3 17301-1", :docsubtitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1: Riz", :docsubtitleintro=>"Céréales et légumineuses", :docsubtitlemain=>"Spécification et méthodes d'essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie 1", :doctitle=>"Cereals and pulses — Specifications and test methods — Part 1: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part 1", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :edition=>"2", :editorialgroup=>["TC 34", "SC 4", "WG 3"], :ics=>"XXX", :obsoleteddate=>"2014", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"2011", :revdate=>"2016-05-01", :sc=>"SC 4", :secretariat=>"GB", :stage=>"35", :stage_int=>35, :stageabbr=>"3CD", :tc=>"TC 34", :tc_docnumber=>["17301"], :unpublished=>true, :wg=>"WG 3"}
         | 
| 74 74 | 
             
            OUTPUT
         | 
| 75 75 | 
             
              end
         | 
| 76 76 |  | 
| @@ -115,8 +115,8 @@ OUTPUT | |
| 115 115 | 
             
              <language>en</language>
         | 
| 116 116 | 
             
              <script>Latn</script>
         | 
| 117 117 | 
             
              <status>
         | 
| 118 | 
            -
                <stage> | 
| 119 | 
            -
                <substage> | 
| 118 | 
            +
                <stage>50</stage>
         | 
| 119 | 
            +
                <substage>20</substage>
         | 
| 120 120 | 
             
              </status>
         | 
| 121 121 | 
             
              <copyright>
         | 
| 122 122 | 
             
                <from>2016</from>
         | 
| @@ -131,7 +131,7 @@ OUTPUT | |
| 131 131 | 
             
                <docidentifier>IEC 8121</docidentifier>
         | 
| 132 132 | 
             
              </relation>
         | 
| 133 133 | 
             
              <ext>
         | 
| 134 | 
            -
              <doctype> | 
| 134 | 
            +
              <doctype>technical-report</doctype>
         | 
| 135 135 | 
             
              <editorialgroup>
         | 
| 136 136 | 
             
                <technical-committee number="34" type="ABC">Food products</technical-committee>
         | 
| 137 137 | 
             
                <subcommittee number="4" type="DEF">Cereals and pulses</subcommittee>
         | 
| @@ -146,7 +146,7 @@ OUTPUT | |
| 146 146 | 
             
            </bibdata>
         | 
| 147 147 | 
             
            </iso-standard>
         | 
| 148 148 | 
             
            INPUT
         | 
| 149 | 
            -
            {:agency=>"ISO/IEC", :authors=>[], :authors_affiliations=>{}, :docnumber=>"ISO/IEC/CD 17301-1-3", :docsubtitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1–3: Riz", :docsubtitleintro=>"Céréales et légumineuses", :docsubtitlemain=>"Spécification et méthodes d'essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie 1–3", :doctitle=>"Cereals and pulses — Specifications and test methods — Part 1–3: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part 1–3", :doctype=>" | 
| 149 | 
            +
            {:agency=>"ISO/IEC", :authors=>[], :authors_affiliations=>{}, :docnumber=>"ISO/IEC/CD 17301-1-3", :docsubtitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1–3: Riz", :docsubtitleintro=>"Céréales et légumineuses", :docsubtitlemain=>"Spécification et méthodes d'essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie 1–3", :doctitle=>"Cereals and pulses — Specifications and test methods — Part 1–3: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part 1–3", :doctype=>"Technical Report", :docyear=>"2016", :draft=>nil, :draftinfo=>"", :edition=>nil, :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"], :ics=>"1.2.3, 1.2.3", :obsoletes=>"IEC 8121", :obsoletes_part=>"3.1", :revdate=>nil, :sc=>"DEF 4", :secretariat=>"XXXX", :stage=>"50", :stage_int=>50, :stageabbr=>"CFDIS", :tc=>"ABC 34", :tc_docnumber=>["17301"], :unpublished=>true, :wg=>"GHI 3"}
         | 
| 150 150 | 
             
            OUTPUT
         | 
| 151 151 | 
             
              end
         | 
| 152 152 |  | 
| @@ -155,16 +155,7 @@ RSpec.describe IsoDoc do | |
| 155 155 | 
             
                expect(word).to be_equivalent_to <<~"OUTPUT"
         | 
| 156 156 | 
             
                       <div class="WordSection3">
         | 
| 157 157 | 
             
                           #{IEC_TITLE}
         | 
| 158 | 
            -
                           <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1 class="main">1<span style="mso-tab-count:1">  </span>Terms and definitions</h1 | 
| 159 | 
            -
                       the following terms and definitions apply.</p>
         | 
| 160 | 
            -
                   <p class="MsoNormal">ISO and IEC maintain terminological databases for use in
         | 
| 161 | 
            -
                   standardization at the following addresses:</p>
         | 
| 162 | 
            -
             | 
| 163 | 
            -
                   <p style="mso-list:l22 level1 lfo1;" class="MsoListParagraphCxSpFirst"> ISO Online browsing platform: available at
         | 
| 164 | 
            -
                      <a href="http://www.iso.org/obp">http://www.iso.org/obp</a> </p>
         | 
| 165 | 
            -
                    <p style="mso-list:l22 level1 lfo1;" class="MsoListParagraphCxSpLast"> IEC Electropedia: available at
         | 
| 166 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 167 | 
            -
                   </p> 
         | 
| 158 | 
            +
                           <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1 class="main">1<span style="mso-tab-count:1">  </span>Terms and definitions</h1>
         | 
| 168 159 | 
             
                   <p class="TermNum"><a name="paddy1" id="paddy1"></a>1.1</p><p class="Terms" style="text-align:left;">paddy</p>
         | 
| 169 160 | 
             
                   <p class="MsoNormal"><a name="_eb29b35e-123e-4d1c-b50b-2714d41e747f" id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"></a>rice retaining its husk after threshing</p>
         | 
| 170 161 | 
             
                   <p class="MsoNormal">[SOURCE: <a href="#ISO7301">ISO 7301:2011, 3.1</a>, modified — The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here]</p></div>
         | 
| @@ -331,12 +322,12 @@ RSpec.describe IsoDoc do | |
| 331 322 | 
             
                          </div>
         | 
| 332 323 | 
             
                         </div>
         | 
| 333 324 | 
             
                         <aside id="fn:3" class="footnote">
         | 
| 334 | 
            -
                     <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:3" epub:type="footnote" | 
| 325 | 
            +
                     <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:3" epub:type="footnote">
         | 
| 335 326 | 
             
                             <sup>1</sup>
         | 
| 336 327 | 
             
                           </a>This is a footnote.</p>
         | 
| 337 328 | 
             
                   <a href="#fnref:1">↩</a></aside>
         | 
| 338 329 | 
             
                         <aside id="fn:2" class="footnote">
         | 
| 339 | 
            -
                     <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:2" epub:type="footnote" | 
| 330 | 
            +
                     <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:2" epub:type="footnote"><sup>2</sup></a>Formerly denoted as 15 % (m/m).</p>
         | 
| 340 331 | 
             
                   <a href="#fnref:2">↩</a></aside>
         | 
| 341 332 |  | 
| 342 333 | 
             
                       </main>
         | 
    
        data/spec/isodoc/section_spec.rb
    CHANGED
    
    | @@ -69,7 +69,7 @@ RSpec.describe IsoDoc do | |
| 69 69 | 
             
                   </bibliography>
         | 
| 70 70 | 
             
                   </iso-standard>
         | 
| 71 71 | 
             
                INPUT
         | 
| 72 | 
            -
                <html xmlns:epub="http://www.idpf.org/2007/ops">
         | 
| 72 | 
            +
                <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
         | 
| 73 73 | 
             
                     <head/>
         | 
| 74 74 | 
             
                     <body lang="en">
         | 
| 75 75 | 
             
                       <div class="title-section">
         | 
| @@ -103,19 +103,8 @@ RSpec.describe IsoDoc do | |
| 103 103 | 
             
                            </div>
         | 
| 104 104 | 
             
                            <div>
         | 
| 105 105 | 
             
                              <h1>2  Normative references</h1>
         | 
| 106 | 
            -
                              <p>There are no normative references in this document.</p>
         | 
| 107 106 | 
             
                            </div>
         | 
| 108 | 
            -
                            <div id="H"><h1>3  Terms, definitions, symbols and abbreviated terms</h1 | 
| 109 | 
            -
                        the following terms and definitions apply.</p>
         | 
| 110 | 
            -
                    <p>ISO and IEC maintain terminological databases for use in
         | 
| 111 | 
            -
                    standardization at the following addresses:</p>
         | 
| 112 | 
            -
                  
         | 
| 113 | 
            -
                    <ul>
         | 
| 114 | 
            -
                    <li> <p>ISO Online browsing platform: available at
         | 
| 115 | 
            -
                      <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 116 | 
            -
                    <li> <p>IEC Electropedia: available at
         | 
| 117 | 
            -
                      <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 118 | 
            -
                    </p> </li> </ul>
         | 
| 107 | 
            +
                            <div id="H"><h1>3  Terms, definitions, symbols and abbreviated terms</h1>
         | 
| 119 108 | 
             
                    <div id="I">
         | 
| 120 109 | 
             
                       <h2>3.1 Normal Terms</h2>
         | 
| 121 110 | 
             
                       <p class="TermNum" id="J">3.1.1</p>
         | 
| @@ -269,19 +258,8 @@ OUTPUT | |
| 269 258 | 
             
                           </div>
         | 
| 270 259 | 
             
                           <div>
         | 
| 271 260 | 
             
                             <h1>2<span style="mso-tab-count:1">  </span>Normative references</h1>
         | 
| 272 | 
            -
                             <p>There are no normative references in this document.</p>
         | 
| 273 261 | 
             
                           </div>
         | 
| 274 | 
            -
                           <div id="H"><h1>3<span style="mso-tab-count:1">  </span>Terms, definitions, symbols and abbreviated terms</h1 | 
| 275 | 
            -
                       the following terms and definitions apply.</p>
         | 
| 276 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 277 | 
            -
                   standardization at the following addresses:</p>
         | 
| 278 | 
            -
             | 
| 279 | 
            -
                   <ul>
         | 
| 280 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 281 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 282 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 283 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 284 | 
            -
                   </p> </li> </ul>
         | 
| 262 | 
            +
                           <div id="H"><h1>3<span style="mso-tab-count:1">  </span>Terms, definitions, symbols and abbreviated terms</h1>
         | 
| 285 263 | 
             
                   <div id="I">
         | 
| 286 264 | 
             
                      <h2>3.1 Normal Terms</h2>
         | 
| 287 265 | 
             
                      <p class="TermNum" id="J">3.1.1</p>
         | 
| @@ -356,17 +334,7 @@ OUTPUT | |
| 356 334 | 
             
               <div class="boilerplate_legal"/>
         | 
| 357 335 | 
             
             </div>
         | 
| 358 336 | 
             
            #{IEC_TITLE}
         | 
| 359 | 
            -
                           <div id="H"><h1>1  Terms and definitions</h1 | 
| 360 | 
            -
                       the following terms and definitions apply.</p>
         | 
| 361 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 362 | 
            -
                   standardization at the following addresses:</p>
         | 
| 363 | 
            -
             | 
| 364 | 
            -
                   <ul>
         | 
| 365 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 366 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 367 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 368 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 369 | 
            -
                   </p> </li> </ul>
         | 
| 337 | 
            +
                           <div id="H"><h1>1  Terms and definitions</h1>
         | 
| 370 338 | 
             
                   <p class="TermNum" id="J">1.1</p>
         | 
| 371 339 | 
             
                     <p class="Terms" style="text-align:left;">Term2</p>
         | 
| 372 340 | 
             
                   </div>
         | 
| @@ -376,149 +344,6 @@ OUTPUT | |
| 376 344 | 
             
                OUTPUT
         | 
| 377 345 | 
             
              end
         | 
| 378 346 |  | 
| 379 | 
            -
              it "processes terms & definitions with external source" do
         | 
| 380 | 
            -
                    expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
         | 
| 381 | 
            -
                           <iso-standard xmlns="http://riboseinc.com/isoxml">
         | 
| 382 | 
            -
                     <termdocsource type="inline" bibitemid="ISO712"/>
         | 
| 383 | 
            -
                   <sections>
         | 
| 384 | 
            -
                   <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
         | 
| 385 | 
            -
                     <term id="J">
         | 
| 386 | 
            -
                     <preferred>Term2</preferred>
         | 
| 387 | 
            -
                   </term>
         | 
| 388 | 
            -
                   </terms>
         | 
| 389 | 
            -
                    </sections>
         | 
| 390 | 
            -
                    <bibliography>
         | 
| 391 | 
            -
                    <references id="_normative_references" obligation="informative"><title>Normative References</title>
         | 
| 392 | 
            -
            <bibitem id="ISO712" type="standard">
         | 
| 393 | 
            -
              <title format="text/plain">Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</title>
         | 
| 394 | 
            -
              <docidentifier>ISO 712</docidentifier>
         | 
| 395 | 
            -
              <contributor>
         | 
| 396 | 
            -
                <role type="publisher"/>
         | 
| 397 | 
            -
                <organization>
         | 
| 398 | 
            -
                  <name>International Organization for Standardization</name>
         | 
| 399 | 
            -
                </organization>
         | 
| 400 | 
            -
              </contributor>
         | 
| 401 | 
            -
            </bibitem></references>
         | 
| 402 | 
            -
            </bibliography>
         | 
| 403 | 
            -
                    </iso-standard>
         | 
| 404 | 
            -
                INPUT
         | 
| 405 | 
            -
                #{HTML_HDR}
         | 
| 406 | 
            -
                 <div id="">
         | 
| 407 | 
            -
               <h1 class="ForewordTitle">FOREWORD</h1>
         | 
| 408 | 
            -
               <div class="boilerplate_legal"/>
         | 
| 409 | 
            -
             </div>
         | 
| 410 | 
            -
                           #{IEC_TITLE}
         | 
| 411 | 
            -
                           <div>
         | 
| 412 | 
            -
                             <h1>1  Normative references</h1>
         | 
| 413 | 
            -
                             <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 414 | 
            -
                             <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</i></p>
         | 
| 415 | 
            -
                           </div>
         | 
| 416 | 
            -
                           <div id="H"><h1>2  Terms and definitions</h1><p>For the purposes of this document, the terms and definitions
         | 
| 417 | 
            -
                     given in <a href="#ISO712">ISO 712</a> and the following apply.</p>
         | 
| 418 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 419 | 
            -
                   standardization at the following addresses:</p>
         | 
| 420 | 
            -
             | 
| 421 | 
            -
                   <ul>
         | 
| 422 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 423 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 424 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 425 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 426 | 
            -
                   </p> </li> </ul>
         | 
| 427 | 
            -
                   <p class="TermNum" id="J">2.1</p>
         | 
| 428 | 
            -
                            <p class="Terms" style="text-align:left;">Term2</p>
         | 
| 429 | 
            -
                          </div>
         | 
| 430 | 
            -
                         </div>
         | 
| 431 | 
            -
                       </body>
         | 
| 432 | 
            -
                   </html>
         | 
| 433 | 
            -
                OUTPUT
         | 
| 434 | 
            -
              end
         | 
| 435 | 
            -
             | 
| 436 | 
            -
              it "processes empty terms & definitions with external source" do
         | 
| 437 | 
            -
                    expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
         | 
| 438 | 
            -
                           <iso-standard xmlns="http://riboseinc.com/isoxml">
         | 
| 439 | 
            -
                     <termdocsource type="inline" bibitemid="ISO712"/>
         | 
| 440 | 
            -
                     <termdocsource type="inline" bibitemid="ISO712"/>
         | 
| 441 | 
            -
                     <termdocsource type="inline" bibitemid="ISO712"/>
         | 
| 442 | 
            -
                   <sections>
         | 
| 443 | 
            -
                   <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
         | 
| 444 | 
            -
                   </terms>
         | 
| 445 | 
            -
                    </sections>
         | 
| 446 | 
            -
                    <bibliography>
         | 
| 447 | 
            -
                    <references id="_normative_references" obligation="informative"><title>Normative References</title>
         | 
| 448 | 
            -
            <bibitem id="ISO712" type="standard">
         | 
| 449 | 
            -
              <title format="text/plain">Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</title>
         | 
| 450 | 
            -
              <docidentifier>ISO 712</docidentifier>
         | 
| 451 | 
            -
              <contributor>
         | 
| 452 | 
            -
                <role type="publisher"/>
         | 
| 453 | 
            -
                <organization>
         | 
| 454 | 
            -
                  <abbreviation>ISO</abbreviation>
         | 
| 455 | 
            -
                </organization>
         | 
| 456 | 
            -
              </contributor>
         | 
| 457 | 
            -
            </bibitem></references>
         | 
| 458 | 
            -
            </bibliography>
         | 
| 459 | 
            -
                    </iso-standard>
         | 
| 460 | 
            -
                INPUT
         | 
| 461 | 
            -
                #{HTML_HDR}
         | 
| 462 | 
            -
                <div id="">
         | 
| 463 | 
            -
               <h1 class="ForewordTitle">FOREWORD</h1>
         | 
| 464 | 
            -
               <div class="boilerplate_legal"/>
         | 
| 465 | 
            -
             </div>
         | 
| 466 | 
            -
                           #{IEC_TITLE}
         | 
| 467 | 
            -
                           <div>
         | 
| 468 | 
            -
                             <h1>1  Normative references</h1>
         | 
| 469 | 
            -
                             <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
         | 
| 470 | 
            -
                             <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</i></p>
         | 
| 471 | 
            -
                           </div>
         | 
| 472 | 
            -
                           <div id="H"><h1>2  Terms and definitions</h1><p>For the purposes of this document,
         | 
| 473 | 
            -
                     the terms and definitions given in <a href="#ISO712">ISO 712</a>, <a href="#ISO712">ISO 712</a> and <a href="#ISO712">ISO 712</a> apply.</p>
         | 
| 474 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 475 | 
            -
                   standardization at the following addresses:</p>
         | 
| 476 | 
            -
             | 
| 477 | 
            -
                   <ul>
         | 
| 478 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 479 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 480 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 481 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 482 | 
            -
                   </p> </li> </ul>
         | 
| 483 | 
            -
                   </div>
         | 
| 484 | 
            -
                         </div>
         | 
| 485 | 
            -
                       </body>
         | 
| 486 | 
            -
                   </html>
         | 
| 487 | 
            -
                OUTPUT
         | 
| 488 | 
            -
              end
         | 
| 489 | 
            -
             | 
| 490 | 
            -
              it "processes empty terms & definitions" do
         | 
| 491 | 
            -
                    expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
         | 
| 492 | 
            -
                           <iso-standard xmlns="http://riboseinc.com/isoxml">
         | 
| 493 | 
            -
                   <sections>
         | 
| 494 | 
            -
                   <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
         | 
| 495 | 
            -
                   </terms>
         | 
| 496 | 
            -
                    </sections>
         | 
| 497 | 
            -
                    </iso-standard>
         | 
| 498 | 
            -
                INPUT
         | 
| 499 | 
            -
                #{HTML_HDR}
         | 
| 500 | 
            -
                 <div id="">
         | 
| 501 | 
            -
               <h1 class="ForewordTitle">FOREWORD</h1>
         | 
| 502 | 
            -
               <div class="boilerplate_legal"/>
         | 
| 503 | 
            -
             </div>
         | 
| 504 | 
            -
            #{IEC_TITLE}
         | 
| 505 | 
            -
                           <div id="H"><h1>1  Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
         | 
| 506 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 507 | 
            -
                   standardization at the following addresses:</p>
         | 
| 508 | 
            -
             | 
| 509 | 
            -
                   <ul>
         | 
| 510 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 511 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 512 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 513 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 514 | 
            -
                   </p> </li> </ul>
         | 
| 515 | 
            -
                   </div>
         | 
| 516 | 
            -
                         </div>
         | 
| 517 | 
            -
                       </body>
         | 
| 518 | 
            -
                   </html>
         | 
| 519 | 
            -
                OUTPUT
         | 
| 520 | 
            -
              end
         | 
| 521 | 
            -
             | 
| 522 347 | 
             
                it "processes inline section headers" do
         | 
| 523 348 | 
             
                expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
         | 
| 524 349 | 
             
                  <iso-standard xmlns="http://riboseinc.com/isoxml">
         | 
    
        data/spec/isodoc/terms_spec.rb
    CHANGED
    
    | @@ -58,17 +58,7 @@ RSpec.describe IsoDoc do | |
| 58 58 | 
             
                    <div class="boilerplate_legal"/>
         | 
| 59 59 | 
             
                    </div>
         | 
| 60 60 | 
             
                    #{IEC_TITLE}
         | 
| 61 | 
            -
                         <div id="_terms_and_definitions"><h1>1  Terms and definitions</h1 | 
| 62 | 
            -
                       the following terms and definitions apply.</p>
         | 
| 63 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 64 | 
            -
                   standardization at the following addresses:</p>
         | 
| 65 | 
            -
             | 
| 66 | 
            -
                   <ul>
         | 
| 67 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 68 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 69 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 70 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 71 | 
            -
                   </p> </li> </ul>
         | 
| 61 | 
            +
                         <div id="_terms_and_definitions"><h1>1  Terms and definitions</h1>
         | 
| 72 62 | 
             
                   <p class="TermNum" id="paddy1">1.1</p><p class="Terms" style="text-align:left;">paddy</p>
         | 
| 73 63 |  | 
| 74 64 | 
             
                   <p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"><rice> rice retaining its husk after threshing</p>
         | 
| @@ -155,17 +145,7 @@ OUTPUT | |
| 155 145 | 
             
            </sections>
         | 
| 156 146 | 
             
            </iso-standard>
         | 
| 157 147 | 
             
                INPUT
         | 
| 158 | 
            -
                             <div id="_terms_and_definitions"><h1>1<span style="mso-tab-count:1">  </span>Terms and definitions</h1 | 
| 159 | 
            -
                       the following terms and definitions apply.</p>
         | 
| 160 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 161 | 
            -
                   standardization at the following addresses:</p>
         | 
| 162 | 
            -
             | 
| 163 | 
            -
                   <ul>
         | 
| 164 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 165 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 166 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 167 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 168 | 
            -
                   </p> </li> </ul>
         | 
| 148 | 
            +
                             <div id="_terms_and_definitions"><h1>1<span style="mso-tab-count:1">  </span>Terms and definitions</h1>
         | 
| 169 149 | 
             
                   <p class="TermNum" id="paddy1">1.1</p><p class="Terms" style="text-align:left;">paddy</p>
         | 
| 170 150 |  | 
| 171 151 | 
             
                   <p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"><rice> rice retaining its husk after threshing</p>
         | 
| @@ -67,17 +67,7 @@ RSpec.describe Metanorma::Iec::Processor do | |
| 67 67 | 
             
               <b></b>
         | 
| 68 68 | 
             
             </p>
         | 
| 69 69 | 
             
             <p class="zzSTDTitle1"> </p>
         | 
| 70 | 
            -
                         <div id="H"><h1>1  Terms and definitions</h1 | 
| 71 | 
            -
                       the following terms and definitions apply.</p>
         | 
| 72 | 
            -
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 73 | 
            -
                   standardization at the following addresses:</p>
         | 
| 74 | 
            -
             | 
| 75 | 
            -
                   <ul>
         | 
| 76 | 
            -
                   <li> <p>ISO Online browsing platform: available at
         | 
| 77 | 
            -
                     <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
         | 
| 78 | 
            -
                   <li> <p>IEC Electropedia: available at
         | 
| 79 | 
            -
                     <a href="http://www.electropedia.org">http://www.electropedia.org</a>
         | 
| 80 | 
            -
                   </p> </li> </ul>
         | 
| 70 | 
            +
                         <div id="H"><h1>1  Terms and definitions</h1>
         | 
| 81 71 | 
             
                   <h2 class="TermNum" id="J">1.1</h2>
         | 
| 82 72 | 
             
                     <p class="Terms" style="text-align:left;">Term2</p>
         | 
| 83 73 | 
             
                   </div>
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -86,6 +86,18 @@ VALIDATING_BLANK_HDR = <<~"HDR" | |
| 86 86 |  | 
| 87 87 | 
             
            HDR
         | 
| 88 88 |  | 
| 89 | 
            +
            TERMS_BOILERPLATE = <<~"BOILERPLATE"
         | 
| 90 | 
            +
                   <p>ISO and IEC maintain terminological databases for use in
         | 
| 91 | 
            +
                   standardization at the following addresses:</p>
         | 
| 92 | 
            +
                   
         | 
| 93 | 
            +
                    <ul>
         | 
| 94 | 
            +
                    <li> <p>ISO Online browsing platform: available at
         | 
| 95 | 
            +
                      <link target="http://www.iso.org/obp"/></p> </li>
         | 
| 96 | 
            +
                    <li> <p>IEC Electropedia: available at
         | 
| 97 | 
            +
                    <link target="http://www.electropedia.org"/>
         | 
| 98 | 
            +
                    </p> </li> </ul>
         | 
| 99 | 
            +
            BOILERPLATE
         | 
| 100 | 
            +
             | 
| 89 101 | 
             
            BOILERPLATE = <<~"BOILERPLATE"
         | 
| 90 102 | 
             
                     <boilerplate>
         | 
| 91 103 | 
             
                       <legal-statement>
         | 
| @@ -160,7 +172,7 @@ IEC_TITLE = <<~END | |
| 160 172 | 
             
            END
         | 
| 161 173 |  | 
| 162 174 | 
             
            HTML_HDR = <<~END
         | 
| 163 | 
            -
                    <html xmlns:epub="http://www.idpf.org/2007/ops">
         | 
| 175 | 
            +
                    <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
         | 
| 164 176 | 
             
                      <head/>
         | 
| 165 177 | 
             
                      <body lang="en">
         | 
| 166 178 | 
             
                        <div class="title-section">
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: metanorma-iec
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ribose Inc.
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-09-01 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: asciidoctor
         | 
| @@ -245,6 +245,7 @@ extensions: [] | |
| 245 245 | 
             
            extra_rdoc_files: []
         | 
| 246 246 | 
             
            files:
         | 
| 247 247 | 
             
            - Gemfile
         | 
| 248 | 
            +
            - README.adoc
         | 
| 248 249 | 
             
            - bin/rspec
         | 
| 249 250 | 
             
            - lib/asciidoctor/iec/basicdoc.rng
         | 
| 250 251 | 
             
            - lib/asciidoctor/iec/biblio.rng
         |