isodoc 2.1.1 → 2.1.2
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/isodoc.gemspec +4 -1
 - data/lib/isodoc/base_style/blocks.scss +7 -0
 - data/lib/isodoc/function/inline.rb +2 -0
 - data/lib/isodoc/function/lists.rb +24 -9
 - data/lib/isodoc/function/to_word_html.rb +1 -0
 - data/lib/isodoc/function/utils.rb +17 -7
 - data/lib/isodoc/gem_tasks.rb +19 -10
 - data/lib/isodoc/i18n.rb +19 -0
 - data/lib/isodoc/metadata.rb +2 -2
 - data/lib/isodoc/presentation_function/inline.rb +11 -4
 - data/lib/isodoc/presentation_function/xrefs.rb +22 -6
 - data/lib/isodoc/presentation_xml_convert.rb +1 -0
 - data/lib/isodoc/version.rb +1 -1
 - data/lib/isodoc/word_function/body.rb +6 -3
 - data/lib/isodoc/xref/xref_gen.rb +4 -4
 - metadata +3 -50
 - data/.github/workflows/rake.yml +0 -15
 - data/.github/workflows/release.yml +0 -24
 - data/.hound.yml +0 -5
 - data/.oss-guides.rubocop.yml +0 -1077
 - data/.rubocop.yml +0 -10
 - data/Rakefile +0 -8
 - data/bin/rspec +0 -17
 - data/spec/assets/header.html +0 -7
 - data/spec/assets/html.scss +0 -20
 - data/spec/assets/html_override.css +0 -1
 - data/spec/assets/htmlcover.html +0 -4
 - data/spec/assets/htmlintro.html +0 -5
 - data/spec/assets/i18n.yaml +0 -41
 - data/spec/assets/iso.xml +0 -8
 - data/spec/assets/odf.emf +0 -0
 - data/spec/assets/odf.svg +0 -1
 - data/spec/assets/odf1.svg +0 -4
 - data/spec/assets/outputtest/a.xml +0 -66
 - data/spec/assets/outputtest/iso.international-standard.xsl +0 -3011
 - data/spec/assets/rice_image1 +0 -0
 - data/spec/assets/rice_image1.png +0 -0
 - data/spec/assets/scripts.html +0 -3
 - data/spec/assets/scripts_override.html +0 -3
 - data/spec/assets/std.css +0 -2
 - data/spec/assets/word.css +0 -2
 - data/spec/assets/word_override.css +0 -1
 - data/spec/assets/wordcover.html +0 -3
 - data/spec/assets/wordintro.html +0 -4
 - data/spec/isodoc/blocks_spec.rb +0 -2934
 - data/spec/isodoc/cleanup_spec.rb +0 -1056
 - data/spec/isodoc/footnotes_spec.rb +0 -264
 - data/spec/isodoc/form_spec.rb +0 -160
 - data/spec/isodoc/i18n_spec.rb +0 -1201
 - data/spec/isodoc/inline_spec.rb +0 -2301
 - data/spec/isodoc/lists_spec.rb +0 -469
 - data/spec/isodoc/metadata_spec.rb +0 -401
 - data/spec/isodoc/postproc_spec.rb +0 -2938
 - data/spec/isodoc/presentation_xml_spec.rb +0 -1476
 - data/spec/isodoc/ref_spec.rb +0 -955
 - data/spec/isodoc/section_spec.rb +0 -2123
 - data/spec/isodoc/table_spec.rb +0 -588
 - data/spec/isodoc/terms_spec.rb +0 -712
 - data/spec/isodoc/utils_spec.rb +0 -57
 - data/spec/isodoc/xref_numbering_spec.rb +0 -378
 - data/spec/isodoc/xref_spec.rb +0 -1837
 - data/spec/isodoc/xslfo_convert_spec.rb +0 -103
 - data/spec/spec_helper.rb +0 -88
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 28ac8ba37e46dab584c5c8b31b651a3c35554c48a286edbe27380837d8cf2bcb
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b8aa34af74f5ea34f01a8e80e5c9d3d9d1c8f04623e490efcd4ef405fa3d9d89
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 48b4097c940f272ce85bb6ccce887df0640525d90176246b00772f2b858daf1a8a3710ccd06766048a2c57030abbed6a72f122dddd084717604e30d08290b01d
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 21cc6a5137d95431098706c1f0a71f2ce759da10fdd892bb8cf7fcbc7a74dbc671a5d8bb90d7e1ec072d7eb3a3aa618112dade4dda0a3944a4a9e95455bd1748
         
     | 
    
        data/isodoc.gemspec
    CHANGED
    
    | 
         @@ -24,7 +24,10 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
              spec.bindir        = "bin"
         
     | 
| 
       26 
26 
     | 
    
         
             
              spec.require_paths = ["lib"]
         
     | 
| 
       27 
     | 
    
         
            -
              spec.files         = `git ls-files`.split("\ 
     | 
| 
      
 27 
     | 
    
         
            +
              spec.files         = `git ls-files -z`.split("\x0").reject do |f|
         
     | 
| 
      
 28 
     | 
    
         
            +
                f.match(%r{^(test|spec|features|.github)/}) \
         
     | 
| 
      
 29 
     | 
    
         
            +
                || f.match(%r{\.[a-zA-Z0-9_-]+\.yml|Rakefile|bin/rspec})
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
       28 
31 
     | 
    
         
             
              spec.test_files    = `git ls-files -- {spec}/*`.split("\n")
         
     | 
| 
       29 
32 
     | 
    
         
             
              spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
         
     | 
| 
       30 
33 
     | 
    
         | 
| 
         @@ -1,13 +1,21 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module IsoDoc
         
     | 
| 
       2 
2 
     | 
    
         
             
              module Function
         
     | 
| 
       3 
3 
     | 
    
         
             
                module Lists
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def list_title_parse(node, out)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    name = node.at(ns("./name")) or return
         
     | 
| 
      
 6 
     | 
    
         
            +
                    out.p **{ class: "ListTitle" } do |p|
         
     | 
| 
      
 7 
     | 
    
         
            +
                      name&.children&.each { |n| parse(n, p) }
         
     | 
| 
      
 8 
     | 
    
         
            +
                    end
         
     | 
| 
      
 9 
     | 
    
         
            +
                  end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       4 
11 
     | 
    
         
             
                  def ul_attrs(node)
         
     | 
| 
       5 
12 
     | 
    
         
             
                    { id: node["id"], style: keep_style(node) }
         
     | 
| 
       6 
13 
     | 
    
         
             
                  end
         
     | 
| 
       7 
14 
     | 
    
         | 
| 
       8 
15 
     | 
    
         
             
                  def ul_parse(node, out)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    list_title_parse(node, out)
         
     | 
| 
       9 
17 
     | 
    
         
             
                    out.ul **attr_code(ul_attrs(node)) do |ul|
         
     | 
| 
       10 
     | 
    
         
            -
                      node.children.each { |n| parse(n, ul) }
         
     | 
| 
      
 18 
     | 
    
         
            +
                      node.children.each { |n| n.name == "name" or parse(n, ul) }
         
     | 
| 
       11 
19 
     | 
    
         
             
                    end
         
     | 
| 
       12 
20 
     | 
    
         
             
                  end
         
     | 
| 
       13 
21 
     | 
    
         | 
| 
         @@ -44,8 +52,9 @@ module IsoDoc 
     | 
|
| 
       44 
52 
     | 
    
         
             
                  end
         
     | 
| 
       45 
53 
     | 
    
         | 
| 
       46 
54 
     | 
    
         
             
                  def ol_parse(node, out)
         
     | 
| 
      
 55 
     | 
    
         
            +
                    list_title_parse(node, out)
         
     | 
| 
       47 
56 
     | 
    
         
             
                    out.ol **attr_code(ol_attrs(node)) do |ol|
         
     | 
| 
       48 
     | 
    
         
            -
                      node.children.each { |n| parse(n, ol) }
         
     | 
| 
      
 57 
     | 
    
         
            +
                      node.children.each { |n| n.name == "name" or parse(n, ol) }
         
     | 
| 
       49 
58 
     | 
    
         
             
                    end
         
     | 
| 
       50 
59 
     | 
    
         
             
                  end
         
     | 
| 
       51 
60 
     | 
    
         | 
| 
         @@ -82,17 +91,23 @@ module IsoDoc 
     | 
|
| 
       82 
91 
     | 
    
         
             
                  end
         
     | 
| 
       83 
92 
     | 
    
         | 
| 
       84 
93 
     | 
    
         
             
                  def dl_parse(node, out)
         
     | 
| 
      
 94 
     | 
    
         
            +
                    list_title_parse(node, out)
         
     | 
| 
       85 
95 
     | 
    
         
             
                    out.dl **dl_attrs(node) do |v|
         
     | 
| 
       86 
96 
     | 
    
         
             
                      node.elements.select { |n| dt_dd? n }.each_slice(2) do |dt, dd|
         
     | 
| 
       87 
     | 
    
         
            -
                        v 
     | 
| 
       88 
     | 
    
         
            -
                          dt_parse(dt, term)
         
     | 
| 
       89 
     | 
    
         
            -
                        end
         
     | 
| 
       90 
     | 
    
         
            -
                        v.dd **attr_code(id: dd["id"]) do |listitem|
         
     | 
| 
       91 
     | 
    
         
            -
                          dd.children.each { |n| parse(n, listitem) }
         
     | 
| 
       92 
     | 
    
         
            -
                        end
         
     | 
| 
      
 97 
     | 
    
         
            +
                        dl_parse1(v, dt, dd)
         
     | 
| 
       93 
98 
     | 
    
         
             
                      end
         
     | 
| 
       94 
99 
     | 
    
         
             
                    end
         
     | 
| 
       95 
     | 
    
         
            -
                    node.elements.reject { |n| dt_dd? 
     | 
| 
      
 100 
     | 
    
         
            +
                    node.elements.reject { |n| dt_dd?(n) || n.name == "name" }
         
     | 
| 
      
 101 
     | 
    
         
            +
                      .each { |n| parse(n, out) }
         
     | 
| 
      
 102 
     | 
    
         
            +
                  end
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
                  def dl_parse1(dlist, dterm, ddef)
         
     | 
| 
      
 105 
     | 
    
         
            +
                    dlist.dt **attr_code(id: dterm["id"]) do |term|
         
     | 
| 
      
 106 
     | 
    
         
            +
                      dt_parse(dterm, term)
         
     | 
| 
      
 107 
     | 
    
         
            +
                    end
         
     | 
| 
      
 108 
     | 
    
         
            +
                    dlist.dd **attr_code(id: ddef["id"]) do |listitem|
         
     | 
| 
      
 109 
     | 
    
         
            +
                      ddef.children.each { |n| parse(n, listitem) }
         
     | 
| 
      
 110 
     | 
    
         
            +
                    end
         
     | 
| 
       96 
111 
     | 
    
         
             
                  end
         
     | 
| 
       97 
112 
     | 
    
         
             
                end
         
     | 
| 
       98 
113 
     | 
    
         
             
              end
         
     | 
| 
         @@ -58,24 +58,30 @@ module IsoDoc 
     | 
|
| 
       58 
58 
     | 
    
         
             
                    end
         
     | 
| 
       59 
59 
     | 
    
         
             
                  end
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
                  def  
     | 
| 
       62 
     | 
    
         
            -
                     
     | 
| 
       63 
     | 
    
         
            -
                    /<!DOCTYPE /.match(xml) || (xml = DOCTYPE_HDR + xml)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  def numeric_escapes(xml)
         
     | 
| 
      
 62 
     | 
    
         
            +
                    c = HTMLEntities.new
         
     | 
| 
       64 
63 
     | 
    
         
             
                    xml.split(/(&[^ \r\n\t#;]+;)/).map do |t|
         
     | 
| 
       65 
64 
     | 
    
         
             
                      if /^(&[^ \t\r\n#;]+;)/.match?(t)
         
     | 
| 
       66 
     | 
    
         
            -
                         
     | 
| 
      
 65 
     | 
    
         
            +
                        c.encode(c.decode(t), :hexadecimal)
         
     | 
| 
       67 
66 
     | 
    
         
             
                      else t
         
     | 
| 
       68 
67 
     | 
    
         
             
                      end
         
     | 
| 
       69 
68 
     | 
    
         
             
                    end.join
         
     | 
| 
       70 
69 
     | 
    
         
             
                  end
         
     | 
| 
       71 
70 
     | 
    
         | 
| 
      
 71 
     | 
    
         
            +
                  def to_xhtml_prep(xml)
         
     | 
| 
      
 72 
     | 
    
         
            +
                    xml.gsub!(/<\?xml[^>]*>/, "")
         
     | 
| 
      
 73 
     | 
    
         
            +
                    /<!DOCTYPE /.match(xml) || (xml = DOCTYPE_HDR + xml)
         
     | 
| 
      
 74 
     | 
    
         
            +
                    numeric_escapes(xml)
         
     | 
| 
      
 75 
     | 
    
         
            +
                  end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
       72 
77 
     | 
    
         
             
                  def to_xhtml_fragment(xml)
         
     | 
| 
       73 
78 
     | 
    
         
             
                    doc = ::Nokogiri::XML.parse(NOKOHEAD)
         
     | 
| 
       74 
79 
     | 
    
         
             
                    doc.fragment(xml)
         
     | 
| 
       75 
80 
     | 
    
         
             
                  end
         
     | 
| 
       76 
81 
     | 
    
         | 
| 
       77 
82 
     | 
    
         
             
                  def from_xhtml(xml)
         
     | 
| 
       78 
     | 
    
         
            -
                    xml.to_xml 
     | 
| 
      
 83 
     | 
    
         
            +
                    numeric_escapes(xml.to_xml
         
     | 
| 
      
 84 
     | 
    
         
            +
                      .sub(%r{ xmlns="http://www.w3.org/1999/xhtml"}, ""))
         
     | 
| 
       79 
85 
     | 
    
         
             
                  end
         
     | 
| 
       80 
86 
     | 
    
         | 
| 
       81 
87 
     | 
    
         
             
                  CLAUSE_ANCESTOR =
         
     | 
| 
         @@ -100,8 +106,12 @@ module IsoDoc 
     | 
|
| 
       100 
106 
     | 
    
         
             
                    "local-name() = 'figure' or local-name() = 'formula' or "\
         
     | 
| 
       101 
107 
     | 
    
         
             
                    "local-name() = 'table' or local-name() = 'example']/@id"
         
     | 
| 
       102 
108 
     | 
    
         | 
| 
       103 
     | 
    
         
            -
                   
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
      
 109 
     | 
    
         
            +
                  # no recursion on references
         
     | 
| 
      
 110 
     | 
    
         
            +
                  def get_note_container_id(node, type)
         
     | 
| 
      
 111 
     | 
    
         
            +
                    xpath = NOTE_CONTAINER_ANCESTOR.dup
         
     | 
| 
      
 112 
     | 
    
         
            +
                    %w(figure table example).include?(type) and
         
     | 
| 
      
 113 
     | 
    
         
            +
                      xpath.sub!(%r[ or local-name\(\) = '#{type}'], "")
         
     | 
| 
      
 114 
     | 
    
         
            +
                    container = node.xpath(xpath)
         
     | 
| 
       105 
115 
     | 
    
         
             
                    container&.last&.text || nil
         
     | 
| 
       106 
116 
     | 
    
         
             
                  end
         
     | 
| 
       107 
117 
     | 
    
         | 
    
        data/lib/isodoc/gem_tasks.rb
    CHANGED
    
    | 
         @@ -8,14 +8,20 @@ module IsoDoc 
     | 
|
| 
       8 
8 
     | 
    
         
             
              module GemTasks
         
     | 
| 
       9 
9 
     | 
    
         
             
                extend Rake::DSL if defined? Rake::DSL
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
      
 11 
     | 
    
         
            +
                @@css_list = []
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
       11 
13 
     | 
    
         
             
                module_function
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
                def self.css_list
         
     | 
| 
      
 16 
     | 
    
         
            +
                  @@css_list
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       13 
19 
     | 
    
         
             
                def install
         
     | 
| 
       14 
20 
     | 
    
         
             
                  rule ".css" => [proc { |tn| tn.sub(/\.css$/, ".scss") }] do |current_task|
         
     | 
| 
       15 
21 
     | 
    
         
             
                    puts(current_task)
         
     | 
| 
       16 
22 
     | 
    
         
             
                    compile_scss_task(current_task)
         
     | 
| 
       17 
23 
     | 
    
         
             
                  rescue StandardError => e
         
     | 
| 
       18 
     | 
    
         
            -
                     
     | 
| 
      
 24 
     | 
    
         
            +
                    notify_broken_compilation(e, current_task)
         
     | 
| 
       19 
25 
     | 
    
         
             
                  end
         
     | 
| 
       20 
26 
     | 
    
         | 
| 
       21 
27 
     | 
    
         
             
                  scss_files = Rake::FileList["lib/**/*.scss"]
         
     | 
| 
         @@ -40,25 +46,27 @@ module IsoDoc 
     | 
|
| 
       40 
46 
     | 
    
         
             
                  end
         
     | 
| 
       41 
47 
     | 
    
         
             
                end
         
     | 
| 
       42 
48 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
                def  
     | 
| 
      
 49 
     | 
    
         
            +
                def interactive?
         
     | 
| 
      
 50 
     | 
    
         
            +
                  ENV["CI"] == nil
         
     | 
| 
      
 51 
     | 
    
         
            +
                end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                def notify_broken_compilation(error, current_task)
         
     | 
| 
       44 
54 
     | 
    
         
             
                  puts("Cannot compile #{current_task} because of #{error.message}")
         
     | 
| 
      
 55 
     | 
    
         
            +
                  return unless interactive?
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
       45 
57 
     | 
    
         
             
                  puts("continue anyway[y|n]?")
         
     | 
| 
       46 
     | 
    
         
            -
                  answer =  
     | 
| 
       47 
     | 
    
         
            -
                   
     | 
| 
       48 
     | 
    
         
            -
                    puts("Cannot compile #{current_task} because of #{error.message}")
         
     | 
| 
       49 
     | 
    
         
            -
                  else
         
     | 
| 
       50 
     | 
    
         
            -
                    exit(0)
         
     | 
| 
       51 
     | 
    
         
            -
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
                  answer = $stdin.gets.strip
         
     | 
| 
      
 59 
     | 
    
         
            +
                  exit(0) unless %w[y yes].include?(answer.strip.downcase)
         
     | 
| 
       52 
60 
     | 
    
         
             
                end
         
     | 
| 
       53 
61 
     | 
    
         | 
| 
       54 
62 
     | 
    
         
             
                def git_cache_compiled_files
         
     | 
| 
       55 
     | 
    
         
            -
                   
     | 
| 
      
 63 
     | 
    
         
            +
                  @@css_list.each do |css_file|
         
     | 
| 
       56 
64 
     | 
    
         
             
                    sh "git add #{css_file}"
         
     | 
| 
       57 
65 
     | 
    
         
             
                  end
         
     | 
| 
       58 
66 
     | 
    
         
             
                end
         
     | 
| 
       59 
67 
     | 
    
         | 
| 
       60 
68 
     | 
    
         
             
                def git_rm_compiled_files
         
     | 
| 
       61 
     | 
    
         
            -
                   
     | 
| 
      
 69 
     | 
    
         
            +
                  @@css_list.each do |css_file|
         
     | 
| 
       62 
70 
     | 
    
         
             
                    sh "git rm --cached #{css_file}"
         
     | 
| 
       63 
71 
     | 
    
         
             
                  end
         
     | 
| 
       64 
72 
     | 
    
         
             
                end
         
     | 
| 
         @@ -129,6 +137,7 @@ module IsoDoc 
     | 
|
| 
       129 
137 
     | 
    
         
             
                  File.open(compiled_path, "w:UTF-8") do |f|
         
     | 
| 
       130 
138 
     | 
    
         
             
                    f.write(content)
         
     | 
| 
       131 
139 
     | 
    
         
             
                  end
         
     | 
| 
      
 140 
     | 
    
         
            +
                  @@css_list << compiled_path
         
     | 
| 
       132 
141 
     | 
    
         
             
                  CLEAN << compiled_path
         
     | 
| 
       133 
142 
     | 
    
         
             
                end
         
     | 
| 
       134 
143 
     | 
    
         
             
              end
         
     | 
    
        data/lib/isodoc/i18n.rb
    CHANGED
    
    | 
         @@ -23,3 +23,22 @@ module IsoDoc 
     | 
|
| 
       23 
23 
     | 
    
         
             
                end
         
     | 
| 
       24 
24 
     | 
    
         
             
              end
         
     | 
| 
       25 
25 
     | 
    
         
             
            end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            class ::Hash
         
     | 
| 
      
 28 
     | 
    
         
            +
              def deep_merge(second)
         
     | 
| 
      
 29 
     | 
    
         
            +
                merger = proc { |_, v1, v2|
         
     | 
| 
      
 30 
     | 
    
         
            +
                  if Hash === v1 && Hash === v2
         
     | 
| 
      
 31 
     | 
    
         
            +
                    v1.merge(v2, &merger)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  elsif Array === v1 && Array === v2
         
     | 
| 
      
 33 
     | 
    
         
            +
                    v1 | v2
         
     | 
| 
      
 34 
     | 
    
         
            +
                  elsif [:undefined, nil,
         
     | 
| 
      
 35 
     | 
    
         
            +
                         :nil].include?(v2)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    v1
         
     | 
| 
      
 37 
     | 
    
         
            +
                  else
         
     | 
| 
      
 38 
     | 
    
         
            +
                    v2
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end
         
     | 
| 
      
 40 
     | 
    
         
            +
                }
         
     | 
| 
      
 41 
     | 
    
         
            +
                merge(second.to_h, &merger)
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
            end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
    
        data/lib/isodoc/metadata.rb
    CHANGED
    
    
| 
         @@ -179,12 +179,13 @@ module IsoDoc 
     | 
|
| 
       179 
179 
     | 
    
         
             
                def eref_locality_populate(type, node)
         
     | 
| 
       180 
180 
     | 
    
         
             
                  return "" if node["droploc"] == "true"
         
     | 
| 
       181 
181 
     | 
    
         | 
| 
       182 
     | 
    
         
            -
                  loc =  
     | 
| 
       183 
     | 
    
         
            -
                   
     | 
| 
      
 182 
     | 
    
         
            +
                  loc = type.sub(/^locality:/, "")
         
     | 
| 
      
 183 
     | 
    
         
            +
                  ret = @i18n.locality[loc] || loc
         
     | 
| 
      
 184 
     | 
    
         
            +
                  ret = case node["case"]
         
     | 
| 
       184 
185 
     | 
    
         
             
                        when "lowercase" then loc.downcase
         
     | 
| 
       185 
     | 
    
         
            -
                        else Metanorma::Utils.strict_capitalize_first( 
     | 
| 
      
 186 
     | 
    
         
            +
                        else Metanorma::Utils.strict_capitalize_first(ret)
         
     | 
| 
       186 
187 
     | 
    
         
             
                        end
         
     | 
| 
       187 
     | 
    
         
            -
                  " #{ 
     | 
| 
      
 188 
     | 
    
         
            +
                  " #{ret}"
         
     | 
| 
       188 
189 
     | 
    
         
             
                end
         
     | 
| 
       189 
190 
     | 
    
         | 
| 
       190 
191 
     | 
    
         
             
                def xref(docxml)
         
     | 
| 
         @@ -226,6 +227,12 @@ module IsoDoc 
     | 
|
| 
       226 
227 
     | 
    
         
             
                  end
         
     | 
| 
       227 
228 
     | 
    
         
             
                end
         
     | 
| 
       228 
229 
     | 
    
         | 
| 
      
 230 
     | 
    
         
            +
                def identifier(docxml)
         
     | 
| 
      
 231 
     | 
    
         
            +
                  docxml.xpath(ns("//identifier")).each do |n|
         
     | 
| 
      
 232 
     | 
    
         
            +
                    n.name = "tt"
         
     | 
| 
      
 233 
     | 
    
         
            +
                  end
         
     | 
| 
      
 234 
     | 
    
         
            +
                end
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
       229 
236 
     | 
    
         
             
                private
         
     | 
| 
       230 
237 
     | 
    
         | 
| 
       231 
238 
     | 
    
         
             
                def found_matching_variant_sibling(node)
         
     | 
| 
         @@ -26,24 +26,39 @@ module IsoDoc 
     | 
|
| 
       26 
26 
     | 
    
         
             
                def anchor_linkend1(node)
         
     | 
| 
       27 
27 
     | 
    
         
             
                  linkend = @xrefs.anchor(node["target"], :xref)
         
     | 
| 
       28 
28 
     | 
    
         
             
                  container = @xrefs.anchor(node["target"], :container, false)
         
     | 
| 
       29 
     | 
    
         
            -
                  (container  
     | 
| 
       30 
     | 
    
         
            -
                   @xrefs.get[node["target"]]) and
         
     | 
| 
      
 29 
     | 
    
         
            +
                  prefix_container?(container, node) and
         
     | 
| 
       31 
30 
     | 
    
         
             
                    linkend = prefix_container(container, linkend, node["target"])
         
     | 
| 
       32 
31 
     | 
    
         
             
                  capitalise_xref(node, linkend, anchor_value(node["target"]))
         
     | 
| 
       33 
32 
     | 
    
         
             
                end
         
     | 
| 
       34 
33 
     | 
    
         | 
| 
      
 34 
     | 
    
         
            +
                def prefix_container?(container, node)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  type = @xrefs.anchor(node["target"], :type)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  container &&
         
     | 
| 
      
 37 
     | 
    
         
            +
                    get_note_container_id(node, type) != container &&
         
     | 
| 
      
 38 
     | 
    
         
            +
                    @xrefs.get[node["target"]]
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
       35 
41 
     | 
    
         
             
                def combine_xref_locations(node)
         
     | 
| 
       36 
42 
     | 
    
         
             
                  locs = gather_xref_locations(node)
         
     | 
| 
       37 
43 
     | 
    
         
             
                  linkend = if can_conflate_xref_rendering?(locs)
         
     | 
| 
       38 
     | 
    
         
            -
                               
     | 
| 
       39 
     | 
    
         
            -
                              l10n("#{locs.first[:elem]} #{combine_conn(out)}")
         
     | 
| 
      
 44 
     | 
    
         
            +
                              combine_conflated_xref_locations(locs)
         
     | 
| 
       40 
45 
     | 
    
         
             
                            else
         
     | 
| 
       41 
     | 
    
         
            -
                              out = locs.each { |l| l[:target] =  
     | 
| 
      
 46 
     | 
    
         
            +
                              out = locs.each { |l| l[:target] = anchor_linkend1(l[:node]) }
         
     | 
| 
       42 
47 
     | 
    
         
             
                              l10n(combine_conn(out))
         
     | 
| 
       43 
48 
     | 
    
         
             
                            end
         
     | 
| 
       44 
49 
     | 
    
         
             
                  capitalise_xref(node, linkend, anchor_value(node["target"]))
         
     | 
| 
       45 
50 
     | 
    
         
             
                end
         
     | 
| 
       46 
51 
     | 
    
         | 
| 
      
 52 
     | 
    
         
            +
                def combine_conflated_xref_locations(locs)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  out = locs.each { |l| l[:target] = anchor_value(l[:target]) }
         
     | 
| 
      
 54 
     | 
    
         
            +
                  ret = l10n("#{locs.first[:elem]} #{combine_conn(out)}")
         
     | 
| 
      
 55 
     | 
    
         
            +
                  container = @xrefs.anchor(locs.first[:node]["target"], :container,
         
     | 
| 
      
 56 
     | 
    
         
            +
                                            false)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  prefix_container?(container, locs.first[:node]) and
         
     | 
| 
      
 58 
     | 
    
         
            +
                    ret = prefix_container(container, ret, locs.first[:node]["target"])
         
     | 
| 
      
 59 
     | 
    
         
            +
                  ret
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
       47 
62 
     | 
    
         
             
                def gather_xref_locations(node)
         
     | 
| 
       48 
63 
     | 
    
         
             
                  node.xpath(ns("./location")).each_with_object([]) do |l, m|
         
     | 
| 
       49 
64 
     | 
    
         
             
                    type = @xrefs.anchor(l["target"], :type)
         
     | 
| 
         @@ -74,7 +89,8 @@ module IsoDoc 
     | 
|
| 
       74 
89 
     | 
    
         
             
                end
         
     | 
| 
       75 
90 
     | 
    
         | 
| 
       76 
91 
     | 
    
         
             
                def can_conflate_xref_rendering?(locs)
         
     | 
| 
       77 
     | 
    
         
            -
                   
     | 
| 
      
 92 
     | 
    
         
            +
                  (locs.all? { |l| l[:container].nil? } ||
         
     | 
| 
      
 93 
     | 
    
         
            +
                   locs.all? { |l| l[:container] == locs.first[:container] }) &&
         
     | 
| 
       78 
94 
     | 
    
         
             
                    locs.all? { |l| l[:type] == locs[0][:type] }
         
     | 
| 
       79 
95 
     | 
    
         
             
                end
         
     | 
| 
       80 
96 
     | 
    
         | 
    
        data/lib/isodoc/version.rb
    CHANGED
    
    
| 
         @@ -92,8 +92,10 @@ module IsoDoc 
     | 
|
| 
       92 
92 
     | 
    
         
             
                  end
         
     | 
| 
       93 
93 
     | 
    
         | 
| 
       94 
94 
     | 
    
         
             
                  def dl_parse_table(node, out)
         
     | 
| 
      
 95 
     | 
    
         
            +
                    list_title_parse(node, out)
         
     | 
| 
       95 
96 
     | 
    
         
             
                    out.table **{ class: "dl" } do |v|
         
     | 
| 
       96 
     | 
    
         
            -
                      node.elements.select { |n| dt_dd? 
     | 
| 
      
 97 
     | 
    
         
            +
                      node.elements.select { |n| dt_dd?(n) }
         
     | 
| 
      
 98 
     | 
    
         
            +
                        .each_slice(2) do |dt, dd|
         
     | 
| 
       97 
99 
     | 
    
         
             
                        dl_parse_table1(v, dt, dd)
         
     | 
| 
       98 
100 
     | 
    
         
             
                      end
         
     | 
| 
       99 
101 
     | 
    
         
             
                      dl_parse_notes(node, v)
         
     | 
| 
         @@ -112,11 +114,12 @@ module IsoDoc 
     | 
|
| 
       112 
114 
     | 
    
         
             
                  end
         
     | 
| 
       113 
115 
     | 
    
         | 
| 
       114 
116 
     | 
    
         
             
                  def dl_parse_notes(node, out)
         
     | 
| 
       115 
     | 
    
         
            -
                     
     | 
| 
      
 117 
     | 
    
         
            +
                    remainder = node.elements.reject { |n| dt_dd?(n) || n.name == "name" }
         
     | 
| 
      
 118 
     | 
    
         
            +
                    return if remainder.empty?
         
     | 
| 
       116 
119 
     | 
    
         | 
| 
       117 
120 
     | 
    
         
             
                    out.tr do |tr|
         
     | 
| 
       118 
121 
     | 
    
         
             
                      tr.td **{ colspan: 2 } do |td|
         
     | 
| 
       119 
     | 
    
         
            -
                         
     | 
| 
      
 122 
     | 
    
         
            +
                        remainder.each { |n| parse(n, td) }
         
     | 
| 
       120 
123 
     | 
    
         
             
                      end
         
     | 
| 
       121 
124 
     | 
    
         
             
                    end
         
     | 
| 
       122 
125 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/isodoc/xref/xref_gen.rb
    CHANGED
    
    | 
         @@ -43,7 +43,7 @@ module IsoDoc 
     | 
|
| 
       43 
43 
     | 
    
         
             
                  end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                  def termnote_anchor_names(docxml)
         
     | 
| 
       46 
     | 
    
         
            -
                    docxml.xpath(ns(" 
     | 
| 
      
 46 
     | 
    
         
            +
                    docxml.xpath(ns("//*[termnote]")).each do |t|
         
     | 
| 
       47 
47 
     | 
    
         
             
                      c = Counter.new
         
     | 
| 
       48 
48 
     | 
    
         
             
                      t.xpath(ns("./termnote")).reject { |n| blank?(n["id"]) }.each do |n|
         
     | 
| 
       49 
49 
     | 
    
         
             
                        c.increment(n)
         
     | 
| 
         @@ -57,7 +57,7 @@ module IsoDoc 
     | 
|
| 
       57 
57 
     | 
    
         
             
                  end
         
     | 
| 
       58 
58 
     | 
    
         | 
| 
       59 
59 
     | 
    
         
             
                  def termexample_anchor_names(docxml)
         
     | 
| 
       60 
     | 
    
         
            -
                    docxml.xpath(ns(" 
     | 
| 
      
 60 
     | 
    
         
            +
                    docxml.xpath(ns("//*[termexample]")).each do |t|
         
     | 
| 
       61 
61 
     | 
    
         
             
                      examples = t.xpath(ns("./termexample"))
         
     | 
| 
       62 
62 
     | 
    
         
             
                      c = Counter.new
         
     | 
| 
       63 
63 
     | 
    
         
             
                      examples.reject { |n| blank?(n["id"]) }.each do |n|
         
     | 
| 
         @@ -148,12 +148,12 @@ module IsoDoc 
     | 
|
| 
       148 
148 
     | 
    
         
             
                    c = Counter.new(list["start"] ? list["start"].to_i - 1 : 0)
         
     | 
| 
       149 
149 
     | 
    
         
             
                    list.xpath(ns("./li")).each do |li|
         
     | 
| 
       150 
150 
     | 
    
         
             
                      label = c.increment(li).listlabel(list, depth)
         
     | 
| 
       151 
     | 
    
         
            -
                      label = "#{prev_label} 
     | 
| 
      
 151 
     | 
    
         
            +
                      label = "#{prev_label}) #{label}" unless prev_label.empty?
         
     | 
| 
       152 
152 
     | 
    
         
             
                      label = "#{list_anchor[:xref]} #{label}" if refer_list
         
     | 
| 
       153 
153 
     | 
    
         
             
                      li["id"] and @anchors[li["id"]] =
         
     | 
| 
       154 
154 
     | 
    
         
             
                                     { xref: "#{label})", type: "listitem",
         
     | 
| 
       155 
155 
     | 
    
         
             
                                       container: list_anchor[:container] }
         
     | 
| 
       156 
     | 
    
         
            -
                      li.xpath(ns(" 
     | 
| 
      
 156 
     | 
    
         
            +
                      (li.xpath(ns(".//ol")) - li.xpath(ns(".//ol//ol"))).each do |ol|
         
     | 
| 
       157 
157 
     | 
    
         
             
                        list_item_anchor_names(ol, list_anchor, depth + 1, label, false)
         
     | 
| 
       158 
158 
     | 
    
         
             
                      end
         
     | 
| 
       159 
159 
     | 
    
         
             
                    end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: isodoc
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.1.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ribose Inc.
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-06-06 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: asciimath
         
     | 
| 
         @@ -385,17 +385,10 @@ executables: [] 
     | 
|
| 
       385 
385 
     | 
    
         
             
            extensions: []
         
     | 
| 
       386 
386 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       387 
387 
     | 
    
         
             
            files:
         
     | 
| 
       388 
     | 
    
         
            -
            - ".github/workflows/rake.yml"
         
     | 
| 
       389 
     | 
    
         
            -
            - ".github/workflows/release.yml"
         
     | 
| 
       390 
     | 
    
         
            -
            - ".hound.yml"
         
     | 
| 
       391 
     | 
    
         
            -
            - ".oss-guides.rubocop.yml"
         
     | 
| 
       392 
     | 
    
         
            -
            - ".rubocop.yml"
         
     | 
| 
       393 
388 
     | 
    
         
             
            - CODE_OF_CONDUCT.md
         
     | 
| 
       394 
389 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       395 
390 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       396 
391 
     | 
    
         
             
            - README.adoc
         
     | 
| 
       397 
     | 
    
         
            -
            - Rakefile
         
     | 
| 
       398 
     | 
    
         
            -
            - bin/rspec
         
     | 
| 
       399 
392 
     | 
    
         
             
            - isodoc.gemspec
         
     | 
| 
       400 
393 
     | 
    
         
             
            - lib/isodoc-yaml/i18n-ar.yaml
         
     | 
| 
       401 
394 
     | 
    
         
             
            - lib/isodoc-yaml/i18n-de.yaml
         
     | 
| 
         @@ -492,46 +485,6 @@ files: 
     | 
|
| 
       492 
485 
     | 
    
         
             
            - lib/metanorma/output/xslfo.rb
         
     | 
| 
       493 
486 
     | 
    
         
             
            - lib/relaton/render/config.yml
         
     | 
| 
       494 
487 
     | 
    
         
             
            - lib/relaton/render/general.rb
         
     | 
| 
       495 
     | 
    
         
            -
            - spec/assets/header.html
         
     | 
| 
       496 
     | 
    
         
            -
            - spec/assets/html.scss
         
     | 
| 
       497 
     | 
    
         
            -
            - spec/assets/html_override.css
         
     | 
| 
       498 
     | 
    
         
            -
            - spec/assets/htmlcover.html
         
     | 
| 
       499 
     | 
    
         
            -
            - spec/assets/htmlintro.html
         
     | 
| 
       500 
     | 
    
         
            -
            - spec/assets/i18n.yaml
         
     | 
| 
       501 
     | 
    
         
            -
            - spec/assets/iso.xml
         
     | 
| 
       502 
     | 
    
         
            -
            - spec/assets/odf.emf
         
     | 
| 
       503 
     | 
    
         
            -
            - spec/assets/odf.svg
         
     | 
| 
       504 
     | 
    
         
            -
            - spec/assets/odf1.svg
         
     | 
| 
       505 
     | 
    
         
            -
            - spec/assets/outputtest/a.xml
         
     | 
| 
       506 
     | 
    
         
            -
            - spec/assets/outputtest/iso.international-standard.xsl
         
     | 
| 
       507 
     | 
    
         
            -
            - spec/assets/rice_image1
         
     | 
| 
       508 
     | 
    
         
            -
            - spec/assets/rice_image1.png
         
     | 
| 
       509 
     | 
    
         
            -
            - spec/assets/scripts.html
         
     | 
| 
       510 
     | 
    
         
            -
            - spec/assets/scripts_override.html
         
     | 
| 
       511 
     | 
    
         
            -
            - spec/assets/std.css
         
     | 
| 
       512 
     | 
    
         
            -
            - spec/assets/word.css
         
     | 
| 
       513 
     | 
    
         
            -
            - spec/assets/word_override.css
         
     | 
| 
       514 
     | 
    
         
            -
            - spec/assets/wordcover.html
         
     | 
| 
       515 
     | 
    
         
            -
            - spec/assets/wordintro.html
         
     | 
| 
       516 
     | 
    
         
            -
            - spec/isodoc/blocks_spec.rb
         
     | 
| 
       517 
     | 
    
         
            -
            - spec/isodoc/cleanup_spec.rb
         
     | 
| 
       518 
     | 
    
         
            -
            - spec/isodoc/footnotes_spec.rb
         
     | 
| 
       519 
     | 
    
         
            -
            - spec/isodoc/form_spec.rb
         
     | 
| 
       520 
     | 
    
         
            -
            - spec/isodoc/i18n_spec.rb
         
     | 
| 
       521 
     | 
    
         
            -
            - spec/isodoc/inline_spec.rb
         
     | 
| 
       522 
     | 
    
         
            -
            - spec/isodoc/lists_spec.rb
         
     | 
| 
       523 
     | 
    
         
            -
            - spec/isodoc/metadata_spec.rb
         
     | 
| 
       524 
     | 
    
         
            -
            - spec/isodoc/postproc_spec.rb
         
     | 
| 
       525 
     | 
    
         
            -
            - spec/isodoc/presentation_xml_spec.rb
         
     | 
| 
       526 
     | 
    
         
            -
            - spec/isodoc/ref_spec.rb
         
     | 
| 
       527 
     | 
    
         
            -
            - spec/isodoc/section_spec.rb
         
     | 
| 
       528 
     | 
    
         
            -
            - spec/isodoc/table_spec.rb
         
     | 
| 
       529 
     | 
    
         
            -
            - spec/isodoc/terms_spec.rb
         
     | 
| 
       530 
     | 
    
         
            -
            - spec/isodoc/utils_spec.rb
         
     | 
| 
       531 
     | 
    
         
            -
            - spec/isodoc/xref_numbering_spec.rb
         
     | 
| 
       532 
     | 
    
         
            -
            - spec/isodoc/xref_spec.rb
         
     | 
| 
       533 
     | 
    
         
            -
            - spec/isodoc/xslfo_convert_spec.rb
         
     | 
| 
       534 
     | 
    
         
            -
            - spec/spec_helper.rb
         
     | 
| 
       535 
488 
     | 
    
         
             
            homepage: https://github.com/metanorma/isodoc
         
     | 
| 
       536 
489 
     | 
    
         
             
            licenses:
         
     | 
| 
       537 
490 
     | 
    
         
             
            - BSD-2-Clause
         
     | 
| 
         @@ -551,7 +504,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       551 
504 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       552 
505 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       553 
506 
     | 
    
         
             
            requirements: []
         
     | 
| 
       554 
     | 
    
         
            -
            rubygems_version: 3.3. 
     | 
| 
      
 507 
     | 
    
         
            +
            rubygems_version: 3.3.7
         
     | 
| 
       555 
508 
     | 
    
         
             
            signing_key:
         
     | 
| 
       556 
509 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       557 
510 
     | 
    
         
             
            summary: Convert documents in IsoDoc into Word and HTML in AsciiDoc.
         
     | 
    
        data/.github/workflows/rake.yml
    DELETED
    
    | 
         @@ -1,15 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Auto-generated by Cimas: Do not edit it manually!
         
     | 
| 
       2 
     | 
    
         
            -
            # See https://github.com/metanorma/cimas
         
     | 
| 
       3 
     | 
    
         
            -
            name: rake
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            on:
         
     | 
| 
       6 
     | 
    
         
            -
              push:
         
     | 
| 
       7 
     | 
    
         
            -
                branches: [ master, main ]
         
     | 
| 
       8 
     | 
    
         
            -
                tags: [ v* ]
         
     | 
| 
       9 
     | 
    
         
            -
              pull_request:
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            jobs:
         
     | 
| 
       12 
     | 
    
         
            -
              rake:
         
     | 
| 
       13 
     | 
    
         
            -
                uses: metanorma/metanorma-build-scripts/.github/workflows/inkscape-rake.yml@main
         
     | 
| 
       14 
     | 
    
         
            -
                secrets:
         
     | 
| 
       15 
     | 
    
         
            -
                  pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
         
     | 
| 
         @@ -1,24 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Auto-generated by Cimas: Do not edit it manually!
         
     | 
| 
       2 
     | 
    
         
            -
            # See https://github.com/metanorma/cimas
         
     | 
| 
       3 
     | 
    
         
            -
            name: release
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            on:
         
     | 
| 
       6 
     | 
    
         
            -
              workflow_dispatch:
         
     | 
| 
       7 
     | 
    
         
            -
                inputs:
         
     | 
| 
       8 
     | 
    
         
            -
                  next_version:
         
     | 
| 
       9 
     | 
    
         
            -
                    description: |
         
     | 
| 
       10 
     | 
    
         
            -
                      Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
         
     | 
| 
       11 
     | 
    
         
            -
                    required: true
         
     | 
| 
       12 
     | 
    
         
            -
                    default: 'skip'
         
     | 
| 
       13 
     | 
    
         
            -
              push:
         
     | 
| 
       14 
     | 
    
         
            -
                tags: [ v* ]
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            jobs:
         
     | 
| 
       17 
     | 
    
         
            -
              release:
         
     | 
| 
       18 
     | 
    
         
            -
                uses: metanorma/metanorma-build-scripts/.github/workflows/rubygems-release.yml@main
         
     | 
| 
       19 
     | 
    
         
            -
                with:
         
     | 
| 
       20 
     | 
    
         
            -
                  next_version: ${{ github.event.inputs.next_version }}
         
     | 
| 
       21 
     | 
    
         
            -
                  event_name: ${{ github.event_name }}
         
     | 
| 
       22 
     | 
    
         
            -
                secrets:
         
     | 
| 
       23 
     | 
    
         
            -
                  rubygems-api-key: ${{ secrets.METANORMA_CI_RUBYGEMS_API_KEY }}
         
     | 
| 
       24 
     | 
    
         
            -
                  pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
         
     |