Class: Banzai::Filter::ImageLazyLoadFilter

Inherits:
HTML::Pipeline::Filter
  • Object
show all
Defined in:
lib/banzai/filter/image_lazy_load_filter.rb

Overview

HTML filter that moves the value of image `src` attributes to `data-src` so they can be lazy loaded. Also sets decoding to 'async' so that the decoding of images doesn't block the loading of other content.

Constant Summary collapse

CSS =
'img'
XPATH =
Gitlab::Utils::Nokogiri.css_to_xpath(CSS).freeze

Instance Method Summary collapse

Instance Method Details

#callObject


13
14
15
16
17
18
19
20
21
22
# File 'lib/banzai/filter/image_lazy_load_filter.rb', line 13

def call
  doc.xpath(XPATH).each do |img|
    img['decoding'] = 'async'
    img.add_class('lazy')
    img['data-src'] = img['src']
    img['src'] = LazyImageTagHelper.placeholder_image
  end

  doc
end