Sha256: d501041953057f24b5b93197e678f7ac13a89933b064a1597c5144471de56d03
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
module Brief class Document::Transformer attr_reader :document, :fragment def initialize(fragment, document) @fragment = fragment @document = document end def all transform_dynamic_links inline_svg_content end def inline_svg_content inline_svg_images.each do |img| _, value = img['src'].to_s.split("=") if asset = document.briefcase.find_asset(value) img.replace("<div class='svg-wrapper'>#{ asset.read }</div>") end end end def transform_dynamic_links dynamic_link_elements.each do |node| attribute, value = node['href'].to_s.split("=") instruction, strategy = node.text.to_s.split(':') if instruction == "link" && attribute == "path" begin link_to_doc = document.briefcase.document_at(value) text = link_to_doc.send(strategy) node.inner_html = text node['href'] = "brief://#{ link_to_doc.path }" rescue nil end end end include_link_elements.each do |node| attribute, value = node['href'].to_s.split("=") instruction, strategy = node.text.to_s.split(':') if instruction == "include" && attribute == "path" include_doc = document.briefcase.document_at(value) replacement = nil if strategy == "raw_content" replacement = include_doc.unwrapped_html elsif strategy == "content" replacement = include_doc.to_html end node.replace(replacement) if replacement end end end private def inline_svg_images fragment.css('img[alt="inline:svg"]') end def dynamic_link_elements(needle="link:") fragment.css('a:contains("' + needle + '")') end def include_link_elements dynamic_link_elements("include:") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
brief-1.9.12 | lib/brief/document/transformer.rb |