Sha256: 1fff9a6ce52dc40af33a8bd5bc305cc98ec66f1ec1327489148760a5680c4178
Contents?: true
Size: 1.42 KB
Versions: 4
Compression:
Stored size: 1.42 KB
Contents
module Metanorma class Collection class Renderer def svg_datauri(docxml, docid) rel = @files.get(docid, :rel_path) parent = @files.get(docid, :parentid) and rel = @files.get(parent, :rel_path) # if sectionsplit, use orig file dir dir = File.join(@dirname, File.dirname(rel)) datauri_encode(docxml, dir) end def svgmap_resolve(docxml, docid) ids = @files.get(docid, :ids) docxml = svg_unnest(svg_datauri(docxml, docid)) isodoc = IsoDoc::PresentationXMLConvert.new({}) isodoc.bibitem_lookup(docxml) docxml.xpath(ns("//svgmap//eref")).each do |e| svgmap_resolve_eref(e, isodoc, docxml, ids) end Vectory::SvgMapping.new(docxml, "").call docxml.xpath(ns("//svgmap")).each { |s| isodoc.svgmap_extract(s) } end def svg_unnest(docxml) docxml.xpath(ns("//svgmap//image[.//*[name() = 'image']]")).each do |i| s = i.elements.detect { |e| e.name == "svg" } and i.replace(s) end docxml end def svgmap_resolve_eref(eref, isodoc, _docxml, ids) href = isodoc.eref_target(eref) or return href = href[:link] href == "##{eref['bibitemid']}" || (href =~ /^#/ && !ids[href.sub(/^#/, "")]) and return eref["target"] = href.strip eref.name = "link" eref.elements&.remove end end end end
Version data entries
4 entries across 4 versions & 1 rubygems