/usr/lib/ruby/vendor_ruby/html/pipeline/image_max_width_filter.rb is in ruby-html-pipeline 1.11.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | module HTML
class Pipeline
# This filter rewrites image tags with a max-width inline style and also wraps
# the image in an <a> tag that causes the full size image to be opened in a
# new tab.
#
# The max-width inline styles are especially useful in HTML email which
# don't use a global stylesheets.
class ImageMaxWidthFilter < Filter
def call
doc.search('img').each do |element|
# Skip if there's already a style attribute. Not sure how this
# would happen but we can reconsider it in the future.
next if element['style']
# Bail out if src doesn't look like a valid http url. trying to avoid weird
# js injection via javascript: urls.
next if element['src'].to_s.strip =~ /\Ajavascript/i
element['style'] = "max-width:100%;"
if !has_ancestor?(element, %w(a))
link_image element
end
end
doc
end
def link_image(element)
link = doc.document.create_element('a', :href => element['src'], :target => '_blank')
link.add_child(element.dup)
element.replace(link)
end
end
end
end
|