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