No release in over 3 years
Low commit activity in last 3 years
There's a lot of open issues
Small images are small! Compress yours during middleman build.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

Runtime

 Project Readme

Middleman ImageOptim Extension

Serving big images is for numb-skulls! Compress and optimise your imagery during middleman build by running image_optim over it. Aww yiss!

Build Status Code Climate Gem Version


Installation

Go set up the image_optim external utilities, then;

Middleman < 4.0

gem 'middleman-imageoptim', '~> 0.2.1'

Middleman ≥ 4.0

gem "middleman-imageoptim", '~> 0.3.0'

Usage

activate :imageoptim

You can also configure the extension in the usual fashion, by passing a block to :activate Below is the default configuration showing all available options;

activate :imageoptim do |options|
  # Use a build manifest to prevent re-compressing images between builds
  options.manifest = true

  # Silence problematic image_optim workers
  options.skip_missing_workers = true

  # Cause image_optim to be in shouty-mode
  options.verbose = false

  # Setting these to true or nil will let options determine them (recommended)
  options.nice = true
  options.threads = true

  # Image extensions to attempt to compress
  options.image_extensions = %w(.png .jpg .gif .svg)

  # Compressor worker options, individual optimisers can be disabled by passing
  # false instead of a hash
  options.advpng    = { :level => 4 }
  options.gifsicle  = { :interlace => false }
  options.jpegoptim = { :strip => ['all'], :max_quality => 100 }
  options.jpegtran  = { :copy_chunks => false, :progressive => true, :jpegrescan => true }
  options.optipng   = { :level => 6, :interlace => false }
  options.pngcrush  = { :chunks => ['alla'], :fix => false, :brute => false }
  options.pngout    = { :copy_chunks => false, :strategy => 0 }
  options.svgo      = {}
end

Changelog

0.3.0
0.2.1
  • Minor bugfix for 3.3.9 support.
0.2.0
  • Big cleanup to codebase.
  • More tests.
  • Caching between builds using a manifest file to skip over already-compressed assets (thanks for your work on this @jagthedrummer).
  • Updates image_optim gem to latest version (0.20.2).
  • Adds dependency on image_optim_pack to ensure that binaries are available.
0.1.4
  • Respect plugin ordering in config.rb (thanks @jeffutter) #8.
0.1.3
  • Fix missing license in gemspec.
0.1.2
  • Minor bugfix.
0.1.1
  • Remove legacy requirement for padrino.
0.1.0
  • Complete refactor and clean-up.
  • Introduced an options class. options now work (lol, yay!), thanks @andrew-aladev for your help there.
  • Change of extension activation name from :image_optim to :imageoptim for consistency with internal naming.