YUI Compressor apparently supports compressing CSS. Cool! I had to try it and what's even more cool is that it's the only other CSS minifier/compressor that doesn't choke on CSS hacks (the ones I tried). The only other CSS minifier/compressor is my very own slimmer. So, let's see what the difference is.
Running the YUI Compressor 10 times on a relatively small file takes 0.3 seconds on average. Running the same with python 2.6 and slimmer.css_slimmer
takes 0.1 seconds on average. I think most of this time is spent loading the jar file than the actual time of running the compression.
Here's how I ran yuicompressor:
$ time java -jar yuicompressor-2.4.2.jar --type css tricky.css > compressed.css
And for slimmer I first had to write a script:
from slimmer import css_slimmer
import sys
print css_slimmer(open(sys.argv[1]).read())
And run it like this:
$ time python slim.py tricky.css > slimmed.css
If part of a build system, 0.3 or 0.1 seconds don't matter. YUI Compressor has the added advantage that it's popular which means many eyes on it for submitting bug reports and patches. However, if you're already in Python and don't want to depend on manually downloading the jar file and running a subprocess then slimmer is probably a better choice.
Comments
I think you left out Google's Closure compiler, which explicitly states "The Closure Compiler reduces the size of your JavaScript files and makes them more efficient, helping your application to load faster and reducing your bandwidth needs." http://code.google.com/closure/compiler/
Whoops, you're talking about CSS, not JavaScript. Should have read the post. D'oh.
Hey Peter - might want to fix the note on slimmer's PyPI page that proudly claims "still maintained in 2008." It no longer gives the impression of up-to-dateness it might once have done ;-)
Thanks for noticing. Done
Would you post the "tricky.css"? Wonder ig yuicompressor and slimmer will actually cope with any css hack out there (especially syntactically invalid ones... ;). That would be nice, thanks