lib/isodoc/mpfd/pdf_convert.rb in metanorma-mpfd-0.1.0 vs lib/isodoc/mpfd/pdf_convert.rb in metanorma-mpfd-0.1.1

- old
+ new

@@ -80,18 +80,10 @@ def pre_parse(node, out) out.pre node.text # content.gsub(/</, "&lt;").gsub(/>/, "&gt;") end - def term_defs_boilerplate(div, source, term, preface) - if source.empty? && term.nil? - div << @no_terms_boilerplate - else - div << term_defs_boilerplate_cont(source, term) - end - end - def error_parse(node, out) # catch elements not defined in ISO case node.name when "pre" pre_parse(node, out) @@ -104,37 +96,36 @@ def fileloc(loc) File.join(File.dirname(__FILE__), loc) end - def info(isoxml, out) - @meta.security isoxml, out - super - end - def i18n_init(lang, script) super y = if lang == "en" YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml")) elsif lang == "zh" && script == "Hans" YAML.load_file(File.join(File.dirname(__FILE__), "i18n-zh-Hans.yaml")) else - YAML.load_file(File.join(File.dirname(__FILE__), "i18n-zh-Hans.yaml")) + YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml")) end - @annex_lbl = "Appendix" @labels = @labels.merge(y) + @annex_lbl = y["annex"] @clause_lbl = y["clause"] end def terms_defs_title(f) return f&.at(ns("./title"))&.content end TERM_CLAUSE = "//preface/terms | "\ "//preface/clause[descendant::terms]".freeze + SECTIONS_XPATH = + "//foreword | //introduction | //preface/terms | //preface/clause | //annex | "\ + "//sections/clause | //bibliography/references | "\ + "//bibliography/clause".freeze def terms_defs(isoxml, out, num) f = isoxml.at(ns(TERM_CLAUSE)) or return num out.div **attr_code(id: f["id"]) do |div| clause_name(nil, terms_defs_title(f), div, nil) @@ -148,11 +139,11 @@ FRONT_CLAUSE = "//*[parent::preface]".freeze #FRONT_CLAUSE = "//clause[parent::preface] | //terms[parent::preface]".freeze def preface(isoxml, out) isoxml.xpath(ns(FRONT_CLAUSE)).each do |c| - if c.name == "terms" then terms_defs isoxml, out, 0 + if c.name == "terms" || c.at(ns(".//terms")) then terms_defs isoxml, out, 0 else out.div **attr_code(id: c["id"]) do |s| clause_name(get_anchors[c['id']][:label], c&.at(ns("./title"))&.content, s, nil) c.elements.reject { |c1| c1.name == "title" }.each do |c1| @@ -225,13 +216,11 @@ end def sect_names(clause, num, i, lvl, prev_lvl) return i if clause.nil? curr = i - if clause["container"] - retlvl = lvl+1 - else + if !clause["container"] retlvl = lvl i+=1 curr = i name = num.nil? ? i.to_s : "#{num}.#{i}" @anchors[clause["id"]] = { label: name, xref: l10n("#{@clause_lbl} #{name}"), level: lvl+1 } @@ -252,28 +241,29 @@ end def annex_naming(c, num, lvl, i) if c["guidance"] then annex_names1(c, "#{num}E", lvl + 1) else - i+= 1 + i+= 1 unless c["container"] annex_names1(c, "#{num}.#{i}", lvl + 1) end i end def annex_names(clause, num) @anchors[clause["id"]] = { label: annex_name_lbl(clause, num), xref: "#{@annex_lbl} #{num}", level: 1 } i = 0 clause.xpath(ns("./clause")).each do |c| + container_names(c, 0) i = annex_naming(c, num, 1, i) end hierarchical_asset_names(clause, num) end def annex_names1(clause, num, level) - @anchors[clause["id"]] = { label: num, xref: "#{@annex_lbl} #{num}", - level: level } + clause["container"] or @anchors[clause["id"]] = + { label: num, xref: "#{@annex_lbl} #{num}", level: level } i = 0 clause.xpath(ns("./clause")).each do |c| i = annex_naming(c, num, level, i) end end