= Front-End Blender
== What is Blender?
Blender is like ant or make for the front-end. It aggregates and compresses
CSS and/or JavaScript assets for a site into efficient, production-ready files.
== The Blendfile
The Blendfile, named Blendfile.yaml by default, is the configuration file
that tells Blender which source files are combined into which output files.
The file uses the YAML format. The output file is listed as hash key and
source files are the hash values as an array. Here is a sample Blendfile:
# Blendfile.yaml for www.boldpx.com
_behavior:
_global-min.js:
- ../_vendor/jquery/jquery.js
- ../_vendor/shadowbox/src/js/adapter/shadowbox-jquery.js
- ../_vendor/shadowbox/src/js/shadowbox.js
- _global.js
- _analytics.js
- ../vendor/google-analytics/ga.js
_style:
_global:
min.css:
- ../../_vendor/shadowbox/src/css/shadowbox.css
- typography.css
- typography-print.css
- colors.css
- colors-print.css
- layout-screen.css
- layout-print.css
== Usage
Usage: blend [options]
-h, --help Show this message
-V, --version Prints Blender's version number
-g, --generate Generate a stub Blendfile
-f, --file FILE Use given Blendfile
-r, --root ROOT Specify the path to the web root directory
-t, --type TYPE Select file type to blend (css, js)
-m, --min [MINIFIER] Select minifier to use (yui, none)
-c, --cache-buster [BUSTER] Append cache busters to URLs in CSS, defaults to timestamps
--force Force blending when source files aren't newer than output files
--yui=YUIOPTS Pass arguments to YUI Compressor
-d, --data EXPERIMENTAL Convert url(file.ext) to url(data:) in CSS files
-z, --gzip EXPERIMENTAL Also create gzip output files
== Examples
In your site directory run 'blend' to minify CSS and JavaScript.
blend
Other examples:
blend --generate
blend --yui='--preserve-semi'
blend -t css
blend -t css -d
blend -f public/Blendfile.yaml
== Installation
To install the RubyGem, run the following at the command line (you may need to use a command such as su or sudo):
gem install blender
If you're using Windows, you'll also need to run the following:
gem install win32console
* Java[http://java.com/en/] v1.4 or greater is required
* Ruby[http://www.ruby-lang.org/en/downloads/] v1.8.6 or greater is required
* RubyGems[http://rubygems.org/read/chapter/3] v1.2 or greater is recommended
== License
Copyright (c) 2008 Blake Elshire, Chris Griego
Blender is freely distributable under the terms of an MIT-style license.
For details, see http://www.opensource.org/licenses/mit-license.php