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(/</, "<").gsub(/>/, ">")
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