lib/isodoc/presentation_function/section.rb in isodoc-1.6.4 vs lib/isodoc/presentation_function/section.rb in isodoc-1.6.5

- old
+ new

@@ -42,12 +42,50 @@ def term1(elem) lbl = @xrefs.get[elem["id"]][:label] or return prefix_name(elem, "", "#{lbl}#{clausedelim}", "name") end - def references(docxml); end + def references(docxml) + docid_prefixes(docxml) + end + def docid_prefixes(docxml) + docxml.xpath(ns("//references/bibitem/docidentifier")).each do |i| + i.children = @xrefs.klass.docid_prefix(i["type"], i.text) + end + end + def index(docxml) docxml.xpath(ns("//index | //index-xref | //indexsect")).each(&:remove) + end + + def display_order_at(docxml, xpath, idx) + return idx unless c = docxml.at(ns(xpath)) + + idx += 1 + c["displayorder"] = idx + idx + end + + def display_order_xpath(docxml, xpath, idx) + docxml.xpath(ns(xpath)).each do |c| + idx += 1 + c["displayorder"] = idx + end + idx + end + + def display_order(docxml) + i = 0 + i = display_order_xpath(docxml, "//preface/*", i) + i = display_order_at(docxml, "//clause[@type = 'scope']", i) + i = display_order_at(docxml, @xrefs.klass.norm_ref_xpath, i) + i = display_order_at(docxml, "//sections/terms | "\ + "//sections/clause[descendant::terms]", i) + i = display_order_at(docxml, "//sections/definitions", i) + i = display_order_xpath(docxml, @xrefs.klass.middle_clause(docxml), i) + i = display_order_xpath(docxml, "//annex", i) + i = display_order_xpath(docxml, @xrefs.klass.bibliography_xpath, i) + display_order_xpath(docxml, "//indexsect", i) end end end