Home > montage

montage

Montage is a project mainly written in Ruby, based on the BSD-3-Clause license.

Even Rocky had a montage. Succeeded by http://github.com/antw/polymer

Montage

"Even Rocky had a montage."

Source : http://github.com/antw/montage

Author : Anthony Williams

Copyright : 2009-2010

License : MIT License

SYNOPSIS

Popularised by Dave Shea in an A List Apart, "sprite" images combine many smaller images into a single, larger image, with CSS then being used to divide the sprite back into it's constituent parts.

However, creating sprites burdens you with having to manually update them every time a minor change is required. Even more frustrating is the need to remember the precise background positions required when editing the CSS.

Montage is a library which, provided a simple configuration file, will automate this process, and if you're a SASS user, you're in for a treat: Montage generates mixins which make working with your sprites incredibly simple:

SASS Usage:

  #navigation
    a#home, a#products
      +main-sprite("home")
    a#products
      +main-sprite-pos("products")

Generated CSS:

  #navigation a#home, #navigation a#products {
    background: url(/path/to/sprite.ext) 0 0 no-repeat; }

  #navigation a#products {
    background-position: 0 -40px; }

Montage has been split out from Kin -- a collection of various bits-and-bobs from my Merb projects.

Montage is pretty primitive in that it stacks each image in a single column. This is perfect when your source images are of a similar width (such as is the case with icons), but not so good when they vary significantly in size.

INSTALLING

To install with RubyGems, simply gem install montage; Montage, and it's dependencies, will be installed for you.

If you wish to install from source:

gem build montage.gemspec
gem install --local montage-VERSION.gem

(Where "VERSION" is the current version of Montage).

FEATURE LIST

Coming soon.

USAGE

Coming soon.

Ward specs are run against:

  • Ruby (MRI) 1.8.6 p399,
  • Ruby (MRI) 1.8.7 p249,
  • Ruby (YARV) 1.9.1 p378,

Montage requires RMagick which presently rules out support for JRuby and Rubinius.

CONTRIBUTING

  • Fork the project, taking care not to get any in your eyes.

  • Make your feature addition or bug fix.

  • Add tests for it. This is especially important not only because it helps ensure that I don't unintentionally break it in a future version, but also since it appeases Phyllis --- the goddess of Cucumbers --- who has been known to rain showers of fresh vegetables on those who don't write tests.

  • Commit, but do not mess with the Rakefile, VERSION, or history. If you want to have your own version, that is fine, but bump version in a commit by itself so that I can ignore it when I pull.

  • Send me a pull request. Bonus points for topic branches. But we all know everything is made up and the points don't matter.

COPYRIGHT

Montage © 2009-2010 by Anthony Williams. Licensed under the MIT license. Please see the {file:LICENSE} for more information.

The sample sources in lib/montage/templates/sources are courtesy of Yusuke Kamiyamane: http://p.yusukekamiyamane.com