class Jekyll::CompressImages

Public Instance Methods

analyze(image) click to toggle source
# File lib/jekyll-compress-images.rb, line 34
def analyze(image)
  if @last_update.has_key? image
    optimize image if @last_update[image] != File.basename(image)
  else
    optimize image
  end
end
default_options() click to toggle source
# File lib/jekyll-compress-images.rb, line 27
def default_options
  {
    "cache_file" => "_compress_images_cache.yml",
    "images_path" => "assets/img/**/*.{gif,png,jpg,jpeg,svg}",
  }
end
generate(site) click to toggle source
# File lib/jekyll-compress-images.rb, line 9
def generate(site)

  config = YAML::load_file "_config.yml"

  config = config["compress_images"] || {}

  @config = default_options.merge! config

  @image_optim = ImageOptim.new pngout: false, svgo: true, verbose: false

  @last_update = YAML::load_file @config["cache_file"] if File.file? @config["cache_file"]
  @last_update ||= {}

  Dir.glob(@config["images_path"]) { |image| analyze image }

  File.open(@config["cache_file"], "w") { |file| file.write @last_update.to_yaml }
end
optimize(image) click to toggle source
# File lib/jekyll-compress-images.rb, line 42
def optimize(image)
  puts "Optimizing #{image}".green
  @image_optim.optimize_image! image
  @last_update[image] = File.basename image
end