metanorma-standoc 2.6.1 → 2.6.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/lib/metanorma/standoc/cleanup.rb +1 -1
 - data/lib/metanorma/standoc/cleanup_boilerplate.rb +24 -7
 - data/lib/metanorma/standoc/cleanup_section.rb +15 -4
 - data/lib/metanorma/standoc/cleanup_section_names.rb +70 -2
 - data/lib/metanorma/standoc/converter.rb +1 -0
 - data/lib/metanorma/standoc/isodoc.rng +9 -1
 - data/lib/metanorma/standoc/macros.rb +9 -0
 - data/lib/metanorma/standoc/processor.rb +1 -0
 - data/lib/metanorma/standoc/ref_queue.rb +6 -0
 - data/lib/metanorma/standoc/render.rb +4 -2
 - data/lib/metanorma/standoc/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: bd044342634fd4dd1a67955a5f07785ae4762a0f63520e8254efe6e016853b1a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 89625dee3748cca3301727fc88650b0f916b8d2f60a258a9731ac09783c2465a
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 9958565ebd72f63b2a17af3f6cc89d5055d36f77ba15f4b80763ca64f3d45368b084e321ef05b0f49655943df029556a1ddd1c9cf27a7466299977b48aee57cc
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3979efde78ee18714f49a321ce89c51aa2039cc153863d118ddc788d610fae7788134688454bff075a9c95ace5bb097e5b24b169df9877f17a4321632b230b14
         
     | 
| 
         @@ -45,7 +45,7 @@ module Metanorma 
     | 
|
| 
       45 
45 
     | 
    
         
             
                    element_name_cleanup(xmldoc)
         
     | 
| 
       46 
46 
     | 
    
         
             
                    ref_cleanup(xmldoc) # feeds: bibitem_cleanup
         
     | 
| 
       47 
47 
     | 
    
         
             
                    note_cleanup(xmldoc)
         
     | 
| 
       48 
     | 
    
         
            -
                    clausebefore_cleanup(xmldoc)
         
     | 
| 
      
 48 
     | 
    
         
            +
                    clausebefore_cleanup(xmldoc) # feeeds: floatingtitle_cleanup
         
     | 
| 
       49 
49 
     | 
    
         
             
                    floatingtitle_cleanup(xmldoc)
         
     | 
| 
       50 
50 
     | 
    
         
             
                    bibitem_cleanup(xmldoc) # feeds: normref_cleanup, biblio_cleanup,
         
     | 
| 
       51 
51 
     | 
    
         
             
                    # reference_names, bpart_cleanup
         
     | 
| 
         @@ -86,16 +86,33 @@ module Metanorma 
     | 
|
| 
       86 
86 
     | 
    
         
             
                  end
         
     | 
| 
       87 
87 
     | 
    
         | 
| 
       88 
88 
     | 
    
         
             
                  def termdef_boilerplate_insert(xmldoc, isodoc, once = false)
         
     | 
| 
       89 
     | 
    
         
            -
                     
     | 
| 
       90 
     | 
    
         
            -
                      f 
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
                       
     | 
| 
      
 89 
     | 
    
         
            +
                    if once
         
     | 
| 
      
 90 
     | 
    
         
            +
                      f = termdef_boilerplate_insert_location(xmldoc) and
         
     | 
| 
      
 91 
     | 
    
         
            +
                        termdef_boilerplate_insert1(f, xmldoc, isodoc)
         
     | 
| 
      
 92 
     | 
    
         
            +
                    else
         
     | 
| 
      
 93 
     | 
    
         
            +
                      xmldoc.xpath(self.class::TERM_CLAUSE).each do |f|
         
     | 
| 
      
 94 
     | 
    
         
            +
                        termdef_boilerplate_insert1(f, xmldoc, isodoc)
         
     | 
| 
      
 95 
     | 
    
         
            +
                      end
         
     | 
| 
       96 
96 
     | 
    
         
             
                    end
         
     | 
| 
       97 
97 
     | 
    
         
             
                  end
         
     | 
| 
       98 
98 
     | 
    
         | 
| 
      
 99 
     | 
    
         
            +
                  def termdef_boilerplate_insert_location(xmldoc)
         
     | 
| 
      
 100 
     | 
    
         
            +
                    f = xmldoc.at(self.class::TERM_CLAUSE)
         
     | 
| 
      
 101 
     | 
    
         
            +
                    root = xmldoc.at("//sections/terms | //sections/clause[.//terms]")
         
     | 
| 
      
 102 
     | 
    
         
            +
                    !f || !root and return f || root
         
     | 
| 
      
 103 
     | 
    
         
            +
                    f.at("./following::terms") and return root
         
     | 
| 
      
 104 
     | 
    
         
            +
                    f.at("./preceding-sibling::clause") and return root
         
     | 
| 
      
 105 
     | 
    
         
            +
                    f
         
     | 
| 
      
 106 
     | 
    
         
            +
                  end
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                  def termdef_boilerplate_insert1(sect, xmldoc, isodoc)
         
     | 
| 
      
 109 
     | 
    
         
            +
                    sect.at("./clause[@type = 'boilerplate'] | " \
         
     | 
| 
      
 110 
     | 
    
         
            +
                            "./note[@type = 'boilerplate']") and return
         
     | 
| 
      
 111 
     | 
    
         
            +
                    term_defs_boilerplate(sect.at("./title"),
         
     | 
| 
      
 112 
     | 
    
         
            +
                                          xmldoc.xpath(".//termdocsource"),
         
     | 
| 
      
 113 
     | 
    
         
            +
                                          sect.at(".//term"), sect.at(".//p"), isodoc)
         
     | 
| 
      
 114 
     | 
    
         
            +
                  end
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
       99 
116 
     | 
    
         
             
                  def boilerplate_cleanup(xmldoc)
         
     | 
| 
       100 
117 
     | 
    
         
             
                    isodoc = boilerplate_isodoc(xmldoc)
         
     | 
| 
       101 
118 
     | 
    
         
             
                    termdef_boilerplate_cleanup(xmldoc)
         
     | 
| 
         @@ -178,8 +178,8 @@ module Metanorma 
     | 
|
| 
       178 
178 
     | 
    
         
             
                  end
         
     | 
| 
       179 
179 
     | 
    
         | 
| 
       180 
180 
     | 
    
         
             
                  def clausebefore_cleanup(xmldoc)
         
     | 
| 
       181 
     | 
    
         
            -
                    preface_clausebefore_cleanup(xmldoc)
         
     | 
| 
       182 
181 
     | 
    
         
             
                    sections_clausebefore_cleanup(xmldoc)
         
     | 
| 
      
 182 
     | 
    
         
            +
                    preface_clausebefore_cleanup(xmldoc)
         
     | 
| 
       183 
183 
     | 
    
         
             
                  end
         
     | 
| 
       184 
184 
     | 
    
         | 
| 
       185 
185 
     | 
    
         
             
                  def preface_clausebefore_cleanup(xmldoc)
         
     | 
| 
         @@ -196,10 +196,20 @@ module Metanorma 
     | 
|
| 
       196 
196 
     | 
    
         
             
                  end
         
     | 
| 
       197 
197 
     | 
    
         | 
| 
       198 
198 
     | 
    
         
             
                  def sections_clausebefore_cleanup(xmldoc)
         
     | 
| 
       199 
     | 
    
         
            -
                     
     | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
      
 199 
     | 
    
         
            +
                    xmldoc.at("//sections") or return
         
     | 
| 
       201 
200 
     | 
    
         
             
                    ins = insert_before(xmldoc, "//sections")
         
     | 
| 
       202 
     | 
    
         
            -
                    xmldoc.xpath("//sections//*[@beforeclauses = 'true']").each do |x|
         
     | 
| 
      
 201 
     | 
    
         
            +
                    xmldoc.xpath("//sections//*[@beforeclauses = 'true']").reverse.each do |x|
         
     | 
| 
      
 202 
     | 
    
         
            +
                      x.delete("beforeclauses")
         
     | 
| 
      
 203 
     | 
    
         
            +
                      ins.previous = x.remove
         
     | 
| 
      
 204 
     | 
    
         
            +
                    end
         
     | 
| 
      
 205 
     | 
    
         
            +
                    endofpreface_clausebefore(xmldoc, ins)
         
     | 
| 
      
 206 
     | 
    
         
            +
                  end
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
                  # only move clausebefore notes at the very end of preface
         
     | 
| 
      
 209 
     | 
    
         
            +
                  def endofpreface_clausebefore(xmldoc, ins)
         
     | 
| 
      
 210 
     | 
    
         
            +
                    xmldoc.xpath("//preface//*[@beforeclauses = 'true']").reverse.each do |x|
         
     | 
| 
      
 211 
     | 
    
         
            +
                      textafternote = xmldoc.xpath("//preface//*") & x.xpath("./following::*")
         
     | 
| 
      
 212 
     | 
    
         
            +
                      textafternote.text.strip.empty? or break
         
     | 
| 
       203 
213 
     | 
    
         
             
                      x.delete("beforeclauses")
         
     | 
| 
       204 
214 
     | 
    
         
             
                      ins.previous = x.remove
         
     | 
| 
       205 
215 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -214,6 +224,7 @@ module Metanorma 
     | 
|
| 
       214 
224 
     | 
    
         
             
                  end
         
     | 
| 
       215 
225 
     | 
    
         | 
| 
       216 
226 
     | 
    
         
             
                  def floatingtitle_cleanup(xmldoc)
         
     | 
| 
      
 227 
     | 
    
         
            +
                    pop_floating_title(xmldoc) # done again, after endofpreface_clausebefore
         
     | 
| 
       217 
228 
     | 
    
         
             
                    floating_title_preface2sections(xmldoc)
         
     | 
| 
       218 
229 
     | 
    
         
             
                  end
         
     | 
| 
       219 
230 
     | 
    
         | 
| 
         @@ -50,10 +50,30 @@ module Metanorma 
     | 
|
| 
       50 
50 
     | 
    
         
             
                              "[not(.//definitions[@type = 'symbols'])]".freeze
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         
             
                  def section_names_terms_cleanup(xml)
         
     | 
| 
       53 
     | 
    
         
            -
                     
     | 
| 
      
 53 
     | 
    
         
            +
                    section_names_definitions(xml)
         
     | 
| 
      
 54 
     | 
    
         
            +
                    section_names_terms1_cleanup(xml)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  def section_names_definitions(xml)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    auto_name_definitions(xml) or return
         
     | 
| 
      
 59 
     | 
    
         
            +
                    replace_title(xml, "//definitions[@type = 'symbols']",
         
     | 
| 
      
 60 
     | 
    
         
            +
                                  @i18n&.symbols)
         
     | 
| 
       54 
61 
     | 
    
         
             
                    replace_title(xml, "//definitions[@type = 'abbreviated_terms']",
         
     | 
| 
       55 
62 
     | 
    
         
             
                                  @i18n&.abbrev)
         
     | 
| 
       56 
     | 
    
         
            -
                    replace_title(xml, "//definitions[not(@type)]", 
     | 
| 
      
 63 
     | 
    
         
            +
                    replace_title(xml, "//definitions[not(@type)]",
         
     | 
| 
      
 64 
     | 
    
         
            +
                                  @i18n&.symbolsabbrev)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                  def auto_name_definitions(xml)
         
     | 
| 
      
 68 
     | 
    
         
            +
                    xml.xpath("//definitions[@type = 'symbols']").size > 1 and return false
         
     | 
| 
      
 69 
     | 
    
         
            +
                    xml.xpath("//definitions[@type = 'abbreviated_terms']").size > 1 and
         
     | 
| 
      
 70 
     | 
    
         
            +
                      return false
         
     | 
| 
      
 71 
     | 
    
         
            +
                    xml.xpath("//definitions[not(@type)]").size > 1 and return false
         
     | 
| 
      
 72 
     | 
    
         
            +
                    true
         
     | 
| 
      
 73 
     | 
    
         
            +
                  end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                  def section_names_terms1_cleanup(xml)
         
     | 
| 
      
 76 
     | 
    
         
            +
                    auto_name_terms(xml) or return
         
     | 
| 
       57 
77 
     | 
    
         
             
                    replace_title(xml, "//terms#{SYMnoABBR} | //clause[.//terms]#{SYMnoABBR}",
         
     | 
| 
       58 
78 
     | 
    
         
             
                                  @i18n&.termsdefsymbols, true)
         
     | 
| 
       59 
79 
     | 
    
         
             
                    replace_title(xml, "//terms#{ABBRnoSYM} | //clause[.//terms]#{ABBRnoSYM}",
         
     | 
| 
         @@ -69,6 +89,54 @@ module Metanorma 
     | 
|
| 
       69 
89 
     | 
    
         
             
                    )
         
     | 
| 
       70 
90 
     | 
    
         
             
                  end
         
     | 
| 
       71 
91 
     | 
    
         | 
| 
      
 92 
     | 
    
         
            +
                  # do not auto-name terms sections if there are terms subclauses
         
     | 
| 
      
 93 
     | 
    
         
            +
                  # not covered by the auto titles,
         
     | 
| 
      
 94 
     | 
    
         
            +
                  # or if more than one title is covered by an auto title
         
     | 
| 
      
 95 
     | 
    
         
            +
                  def auto_name_terms(xml)
         
     | 
| 
      
 96 
     | 
    
         
            +
                    n = xml.at("//terms | //clause[.//terms]")
         
     | 
| 
      
 97 
     | 
    
         
            +
                    out = terms_subclauses(n)
         
     | 
| 
      
 98 
     | 
    
         
            +
                      .each_with_object({ term: 0, sna: 0, ans: 0, sa: 0, nsa: 0,
         
     | 
| 
      
 99 
     | 
    
         
            +
                                          tsna: 0, tans: 0, tsa: 0, tnsa: 0,
         
     | 
| 
      
 100 
     | 
    
         
            +
                                          termdef: 0, other: 0 }) do |x, m|
         
     | 
| 
      
 101 
     | 
    
         
            +
                      terms_subclause_type_tally(x, m, n)
         
     | 
| 
      
 102 
     | 
    
         
            +
                    end
         
     | 
| 
      
 103 
     | 
    
         
            +
                    out.delete(:parent)
         
     | 
| 
      
 104 
     | 
    
         
            +
                    !out.values.detect { |x| x > 1 } && out[:other].zero?
         
     | 
| 
      
 105 
     | 
    
         
            +
                  end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
                  def terms_subclauses(node)
         
     | 
| 
      
 108 
     | 
    
         
            +
                    legal = %w(terms definitions clause)
         
     | 
| 
      
 109 
     | 
    
         
            +
                    [node, node&.elements].compact.flatten
         
     | 
| 
      
 110 
     | 
    
         
            +
                      .select do |x|
         
     | 
| 
      
 111 
     | 
    
         
            +
                        legal.include?(x.name) &&
         
     | 
| 
      
 112 
     | 
    
         
            +
                          !(x.name == "clause" && x["type"] == "boilerplate")
         
     | 
| 
      
 113 
     | 
    
         
            +
                      end
         
     | 
| 
      
 114 
     | 
    
         
            +
                  end
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
                  def terms_subclause_type_tally(node, m, parent)
         
     | 
| 
      
 117 
     | 
    
         
            +
                    sym = if (node.at(".//term") && !node.at(".//definitions")) ||
         
     | 
| 
      
 118 
     | 
    
         
            +
                        (node.name == "terms" && !node.at(".//term"))
         
     | 
| 
      
 119 
     | 
    
         
            +
                            unless m[:parent] == :term # don't count Term > Term twice
         
     | 
| 
      
 120 
     | 
    
         
            +
                              :term
         
     | 
| 
      
 121 
     | 
    
         
            +
                            end
         
     | 
| 
      
 122 
     | 
    
         
            +
                          elsif node.at(".//term") && node.at("./self::*#{SYMnoABBR}") then :tsna
         
     | 
| 
      
 123 
     | 
    
         
            +
                          elsif node.at(".//term") && node.at("./self::*#{ABBRnoSYM}") then :tans
         
     | 
| 
      
 124 
     | 
    
         
            +
                          elsif node.at(".//term") && node.at("./self::*#{SYMABBR}") then :tsa
         
     | 
| 
      
 125 
     | 
    
         
            +
                          elsif node.at(".//term") && node.at("./self::*#{NO_SYMABBR}") then :tnsa
         
     | 
| 
      
 126 
     | 
    
         
            +
                          elsif node.at("./self::*#{SYMnoABBR}") then :sna
         
     | 
| 
      
 127 
     | 
    
         
            +
                          elsif node.at("./self::*#{ABBRnoSYM}") then :ans
         
     | 
| 
      
 128 
     | 
    
         
            +
                          elsif node.at("./self::*#{SYMABBR}") then :sa
         
     | 
| 
      
 129 
     | 
    
         
            +
                          elsif node.at("./self::*#{NO_SYMABBR}") then :nsa
         
     | 
| 
      
 130 
     | 
    
         
            +
                          elsif node.name == "definitions" # ignore
         
     | 
| 
      
 131 
     | 
    
         
            +
                          elsif node == parent && node.at(".//term") &&
         
     | 
| 
      
 132 
     | 
    
         
            +
                              node.at(".//definitions")
         
     | 
| 
      
 133 
     | 
    
         
            +
                            :termdef
         
     | 
| 
      
 134 
     | 
    
         
            +
                          else :other
         
     | 
| 
      
 135 
     | 
    
         
            +
                          end
         
     | 
| 
      
 136 
     | 
    
         
            +
                    node == parent and m[:parent] = sym
         
     | 
| 
      
 137 
     | 
    
         
            +
                    sym and m[sym] += 1
         
     | 
| 
      
 138 
     | 
    
         
            +
                  end
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
       72 
140 
     | 
    
         
             
                  SECTION_CONTAINERS = %w(foreword introduction acknowledgements abstract
         
     | 
| 
       73 
141 
     | 
    
         
             
                                          clause clause references terms definitions annex
         
     | 
| 
       74 
142 
     | 
    
         
             
                                          appendix).freeze
         
     | 
| 
         @@ -63,6 +63,7 @@ module Metanorma 
     | 
|
| 
       63 
63 
     | 
    
         
             
                    treeprocessor Metanorma::Standoc::ToDoInlineAdmonitionBlock
         
     | 
| 
       64 
64 
     | 
    
         
             
                    block Metanorma::Standoc::PlantUMLBlockMacro
         
     | 
| 
       65 
65 
     | 
    
         
             
                    block Metanorma::Standoc::PseudocodeBlockMacro
         
     | 
| 
      
 66 
     | 
    
         
            +
                    block_macro Metanorma::Standoc::ColumnBreakBlockMacro
         
     | 
| 
       66 
67 
     | 
    
         
             
                  end
         
     | 
| 
       67 
68 
     | 
    
         | 
| 
       68 
69 
     | 
    
         
             
                  include ::Asciidoctor::Converter
         
     | 
| 
         @@ -17,7 +17,7 @@ 
     | 
|
| 
       17 
17 
     | 
    
         
             
              these elements; we just want one namespace for any child grammars
         
     | 
| 
       18 
18 
     | 
    
         
             
              of this.
         
     | 
| 
       19 
19 
     | 
    
         
             
            -->
         
     | 
| 
       20 
     | 
    
         
            -
            <!-- VERSION v1.2. 
     | 
| 
      
 20 
     | 
    
         
            +
            <!-- VERSION v1.2.6 -->
         
     | 
| 
       21 
21 
     | 
    
         
             
            <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
         
     | 
| 
       22 
22 
     | 
    
         
             
              <include href="reqt.rng"/>
         
     | 
| 
       23 
23 
     | 
    
         
             
              <include href="basicdoc.rng">
         
     | 
| 
         @@ -1013,6 +1013,14 @@ 
     | 
|
| 
       1013 
1013 
     | 
    
         
             
                  </oneOrMore>
         
     | 
| 
       1014 
1014 
     | 
    
         
             
                </element>
         
     | 
| 
       1015 
1015 
     | 
    
         
             
              </define>
         
     | 
| 
      
 1016 
     | 
    
         
            +
              <define name="BasicBlock" combine="choice">
         
     | 
| 
      
 1017 
     | 
    
         
            +
                <ref name="columnbreak"/>
         
     | 
| 
      
 1018 
     | 
    
         
            +
              </define>
         
     | 
| 
      
 1019 
     | 
    
         
            +
              <define name="columnbreak">
         
     | 
| 
      
 1020 
     | 
    
         
            +
                <element name="columnbreak">
         
     | 
| 
      
 1021 
     | 
    
         
            +
                  <empty/>
         
     | 
| 
      
 1022 
     | 
    
         
            +
                </element>
         
     | 
| 
      
 1023 
     | 
    
         
            +
              </define>
         
     | 
| 
       1016 
1024 
     | 
    
         
             
              <define name="MultilingualRenderingType">
         
     | 
| 
       1017 
1025 
     | 
    
         
             
                <choice>
         
     | 
| 
       1018 
1026 
     | 
    
         
             
                  <value>common</value>
         
     | 
| 
         @@ -61,6 +61,15 @@ module Metanorma 
     | 
|
| 
       61 
61 
     | 
    
         
             
                  end
         
     | 
| 
       62 
62 
     | 
    
         
             
                end
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
      
 64 
     | 
    
         
            +
                class ColumnBreakBlockMacro < Asciidoctor::Extensions::BlockMacroProcessor
         
     | 
| 
      
 65 
     | 
    
         
            +
                  use_dsl
         
     | 
| 
      
 66 
     | 
    
         
            +
                  named :columnbreak
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                  def process(parent, _reader, _attrs)
         
     | 
| 
      
 69 
     | 
    
         
            +
                    create_pass_block parent, "<columnbreak/>", {}, subs: nil
         
     | 
| 
      
 70 
     | 
    
         
            +
                  end
         
     | 
| 
      
 71 
     | 
    
         
            +
                end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
       64 
73 
     | 
    
         
             
                # refer https://github.com/asciidoctor/asciidoctor/blob/main/lib/asciidoctor/substitutors.rb
         
     | 
| 
       65 
74 
     | 
    
         
             
                # Not using TreeProcessor because that is still too close to
         
     | 
| 
       66 
75 
     | 
    
         
             
                # inline expressions being processed on access (e.g. titles)
         
     | 
| 
         @@ -142,7 +142,12 @@ module Metanorma 
     | 
|
| 
       142 
142 
     | 
    
         
             
                    nil
         
     | 
| 
       143 
143 
     | 
    
         
             
                  end
         
     | 
| 
       144 
144 
     | 
    
         | 
| 
      
 145 
     | 
    
         
            +
                  def supply_ref_prefix(ret)
         
     | 
| 
      
 146 
     | 
    
         
            +
                    ret
         
     | 
| 
      
 147 
     | 
    
         
            +
                  end
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
       145 
149 
     | 
    
         
             
                  def fetch_ref1(code, year, opts)
         
     | 
| 
      
 150 
     | 
    
         
            +
                    code = supply_ref_prefix(code)
         
     | 
| 
       146 
151 
     | 
    
         
             
                    if opts[:localfile]
         
     | 
| 
       147 
152 
     | 
    
         
             
                      @local_bibdb.get(code, opts[:localfile])
         
     | 
| 
       148 
153 
     | 
    
         
             
                    else @bibdb&.fetch(code, year, opts)
         
     | 
| 
         @@ -156,6 +161,7 @@ module Metanorma 
     | 
|
| 
       156 
161 
     | 
    
         
             
                  end
         
     | 
| 
       157 
162 
     | 
    
         | 
| 
       158 
163 
     | 
    
         
             
                  def fetch_ref_async(ref, idx, res)
         
     | 
| 
      
 164 
     | 
    
         
            +
                    ref[:code] &&= supply_ref_prefix(ref[:code])
         
     | 
| 
       159 
165 
     | 
    
         
             
                    if unfetchable_ref_code?(ref)
         
     | 
| 
       160 
166 
     | 
    
         
             
                      res << [ref, idx, nil]
         
     | 
| 
       161 
167 
     | 
    
         
             
                      idx += 1
         
     | 
| 
         @@ -91,7 +91,7 @@ module Metanorma 
     | 
|
| 
       91 
91 
     | 
    
         
             
                                     pdf-allow-print pdf-allow-print-hq
         
     | 
| 
       92 
92 
     | 
    
         
             
                                     pdf-allow-access-content pdf-encrypt-metadata fonts
         
     | 
| 
       93 
93 
     | 
    
         
             
                                     font-license-agreement).each_with_object({}) do |x, m|
         
     | 
| 
       94 
     | 
    
         
            -
                      m[x.gsub( 
     | 
| 
      
 94 
     | 
    
         
            +
                      m[x.gsub("-", "").to_i] = node.attr(x)
         
     | 
| 
       95 
95 
     | 
    
         
             
                    end
         
     | 
| 
       96 
96 
     | 
    
         | 
| 
       97 
97 
     | 
    
         
             
                    pdf_options.merge(fonts_manifest_option(node) || {})
         
     | 
| 
         @@ -102,7 +102,9 @@ module Metanorma 
     | 
|
| 
       102 
102 
     | 
    
         
             
                  end
         
     | 
| 
       103 
103 
     | 
    
         | 
| 
       104 
104 
     | 
    
         
             
                  def presentation_xml_converter(node)
         
     | 
| 
       105 
     | 
    
         
            -
                    IsoDoc::PresentationXMLConvert 
     | 
| 
      
 105 
     | 
    
         
            +
                    IsoDoc::PresentationXMLConvert
         
     | 
| 
      
 106 
     | 
    
         
            +
                      .new(html_extract_attributes(node)
         
     | 
| 
      
 107 
     | 
    
         
            +
                      .merge(output_formats: ::Metanorma::Standoc::Processor.new.output_formats)                                )
         
     | 
| 
       106 
108 
     | 
    
         
             
                  end
         
     | 
| 
       107 
109 
     | 
    
         | 
| 
       108 
110 
     | 
    
         
             
                  def default_fonts(node)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: metanorma-standoc
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.6. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.6.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: 2023-10- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-10-23 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: addressable
         
     |