lib/isodoc/iho/base_convert.rb in metanorma-iho-0.0.3 vs lib/isodoc/iho/base_convert.rb in metanorma-iho-0.1.0

- old
+ new

@@ -1,67 +1,23 @@ +require_relative "xref" + module IsoDoc module IHO module BaseConvert def metadata_init(lang, script, labels) @meta = Metadata.new(lang, script, labels) end - def annex_name_lbl(clause, num) - lbl = clause["obligation"] == "informative" ? @appendix_lbl : @annex_lbl - l10n("<b>#{lbl} #{num}</b>") + def xref_init(lang, script, klass, labels, options) + @xrefs = Xref.new(lang, script, klass, labels, options) end - def annex_names(clause, num) - appendix_names(clause, num) - lbl = clause["obligation"] == "informative" ? @appendix_lbl : @annex_lbl - @anchors[clause["id"]] = - { label: annex_name_lbl(clause, num), type: "clause", - xref: "#{lbl} #{num}", level: 1 } - if a = single_annex_special_section(clause) - annex_names1(a, "#{num}", 1) - else - clause.xpath(ns("./clause | ./references | ./terms | ./definitions")). - each_with_index do |c, i| - annex_names1(c, "#{num}.#{i + 1}", 2) - end - end - hierarchical_asset_names(clause, num) - end - - def back_anchor_names(docxml) - super - docxml.xpath(ns("//annex[@obligation = 'informative']")).each_with_index do |c, i| - annex_names(c, i + 1) - end - docxml.xpath(ns("//annex[not(@obligation = 'informative')]")).each_with_index do |c, i| - annex_names(c, (65 + i + (i > 7 ? 1 : 0)).chr.to_s) - end - end - - def annex_names1(clause, num, level) - lbl = clause.at("./ancestor::xmlns:annex/@obligation").text == "informative" ? @appendix_lbl : @annex_lbl - @anchors[clause["id"]] = - { label: num, xref: "#{lbl} #{num}", - level: level, type: "clause" } - clause.xpath(ns("./clause | ./references | ./terms | ./definitions")).each_with_index do |c, i| - annex_names1(c, "#{num}.#{i + 1}", level + 1) - end - end - # terms not defined in standoc def error_parse(node, out) case node.name when "appendix" then clause_parse(node, out) else super - end - end - - def appendix_names(clause, num) - clause.xpath(ns("./appendix")).each_with_index do |c, i| - @anchors[c["id"]] = anchor_struct(i + 1, nil, @appendix_lbl, "clause") - @anchors[c["id"]][:level] = 2 - @anchors[c["id"]][:container] = clause["id"] end end def info(isoxml, out) @meta.series isoxml, out