lib/isodoc/presentation_function/section.rb in isodoc-2.1.3 vs lib/isodoc/presentation_function/section.rb in isodoc-2.1.4

- old
+ new

@@ -9,11 +9,12 @@ clause1(f) end end def clause1(elem) - level = @xrefs.anchor(elem["id"], :level, false) || "1" + level = @xrefs.anchor(elem["id"], :level, false) || + (elem.ancestors("clause, annex").size + 1) t = elem.at(ns("./title")) and t["depth"] = level return if !elem.ancestors("boilerplate").empty? || @suppressheadingnumbers || elem["unnumbered"] lbl = @xrefs.anchor(elem["id"], :label, @@ -89,16 +90,27 @@ bibrender(xml) end def bibrender(xml) if f = xml.at(ns("./formattedref")) - code = render_identifier(bibitem_ref_code(xml)) - f << " [#{code[:sdo]}] " if code[:sdo] - else - xml.children = - "#{bibrenderer.render(xml.to_xml)}"\ - "#{xml.xpath(ns('./docidentifier | ./uri | ./note')).to_xml}" + bibrender_formattedref(f, xml) + else bibrender_relaton(xml) end + end + + def bibrender_formattedref(formattedref, xml) + code = render_identifier(bibitem_ref_code(xml)) + (code[:sdo] && xml["suppress_identifier"] != "true") and + formattedref << " [#{code[:sdo]}] " + end + + def bibrender_relaton(xml) + bib = xml.dup + bib["suppress_identifier"] == true and + bib.xpath(ns("./docidentifier")).each(&:remove) + xml.children = + "#{bibrenderer.render(bib.to_xml)}"\ + "#{xml.xpath(ns('./docidentifier | ./uri | ./note')).to_xml}" end def bibrenderer ::Relaton::Render::IsoDoc::General.new(language: @lang) end