Sha256: 3d16b70eeff521af6e98e09283e02bdd7e4dd4ec7fdcf5a60f78c55fc41109d2
Contents?: true
Size: 1.06 KB
Versions: 28
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true class Grover # # Helper module for preparing HTML for conversion # # Sourced from the PDFKit project # @see https://github.com/pdfkit/pdfkit # module HTMLPreprocessor # Change relative paths to absolute, and relative protocols to absolute protocols def self.process(html, root_url, protocol) html = translate_relative_paths(html, root_url) if root_url html = translate_relative_protocols(html, protocol) if protocol html end def self.translate_relative_paths(html, root_url) # Try out this regexp using rubular http://rubular.com/r/hiAxBNX7KE html.gsub(%r{(href|src)=(['"])/([^/"']([^"']*|[^"']*))?['"]}, "\\1=\\2#{root_url}\\3\\2") end private_class_method :translate_relative_paths def self.translate_relative_protocols(body, protocol) # Try out this regexp using rubular http://rubular.com/r/0Ohk0wFYxV body.gsub(%r{(href|src)=(['"])//([^"']*|[^"']*)['"]}, "\\1=\\2#{protocol}://\\3\\2") end private_class_method :translate_relative_protocols end end
Version data entries
28 entries across 28 versions & 1 rubygems