class Jekyll::Assets::Liquid::Tag::Defaults::Image

Public Class Methods

for?(tag) click to toggle source
# File lib/jekyll/assets/liquid/tag/defaults/image.rb, line 13
def self.for?(tag)
  tag == "img" || tag == "image"
end
new(args, asset, env = nil) click to toggle source

TODO: In 3.0 env needs to be enforced if this is not changed,

for now it's not enforced to maintain the 2.0 API.

# File lib/jekyll/assets/liquid/tag/defaults/image.rb, line 22
def initialize(args, asset, env = nil)
  @args = args
  @asset = asset
  @env = env
end

Public Instance Methods

set!() click to toggle source

# File lib/jekyll/assets/liquid/tag/defaults/image.rb, line 30
def set!
  set_img_dimensions
  set_img_alt
end

Private Instance Methods

set_img_alt() click to toggle source

TODO: 3.0 - Remove the `!@env`


# File lib/jekyll/assets/liquid/tag/defaults/image.rb, line 40
def set_img_alt
  if !@env || @env.asset_config["features"]["automatic_img_alt"]
    @args[:html] ||= {}
    unless @args[:html].key?("alt")
      @args[:html]["alt"] = @asset.logical_path
    end
  end
end
set_img_dimensions() click to toggle source

TODO: 3.0 - Remove the `!@env`


# File lib/jekyll/assets/liquid/tag/defaults/image.rb, line 54
def set_img_dimensions
  resize_image = @env.asset_config["features"]["automatic_img_size"]

  if !@env || resize_image
    dimensions = FastImage.new(@asset.filename).size
    return unless dimensions
    @args[:html] ||= {}

    if resize_image =~ /^\d+$/
      width  = (dimensions.first / resize_image.to_f).floor
      height = (dimensions. last / resize_image.to_f).floor

    else
      width  = dimensions.first
      height = dimensions. last
    end


    @args[:html][ "width"] ||= width
    @args[:html]["height"] ||= height
  end
end