blob: 882ffff52afa52ac5830d16e8b08e9f9fc65a0bd [file] [log] [blame]
require 'nanoc3/tasks'
require 'yaml'
##
# Configurable Constants
#
BASE_URL = 'http://deltacloud.org'
namespace :optimize do
##
# Gem Requirement:
# YUI-Compressor - Bundled in Gemfile
#
desc 'Compress all stylesheet files'
task :stylesheets do
require 'yui/compressor'
compressor = YUI::CssCompressor.new
Dir['output/**/*.css'].each do |stylesheet|
puts "Compressing Stylesheet: #{stylesheet}"
css = File.read(stylesheet)
File.open(stylesheet, 'w') do |file|
file.write(compressor.compress(css))
end
end
end
##
# Gem Requirement:
# YUI-Compressor - Bundled in Gemfile
#
desc 'Compress all javascript files'
task :javascripts do
require 'yui/compressor'
compressor = YUI::JavaScriptCompressor.new(:munge => true)
Dir['output/**/*.js'].each do |javascript|
puts "Compressing JavaScript: #{javascript}"
js = File.read(javascript)
File.open(javascript, 'w') do |file|
file.write(compressor.compress(js))
end
end
end
##
# Package Requirement:
# jpegoptim
# Install OSX:
# brew install jpegoptim
# Install Ubuntu:
# [apt-get | aptitude] install jpegoptim
#
desc 'Optimize JPG images in output/images directory using jpegoptim'
task :jpg do
puts `find output/images -name '*.jpg' -exec jpegoptim {} \\;`
end
##
# Package Requirement:
# optipng
# Install OSX:
# brew install optipng
# Install Ubuntu:
# [apt-get | aptitude] install optipng
#
desc 'Optimize PNG images in output/images directory using optipng'
task :png do
puts `find output/images -name '*.png' -exec optipng {} \\;`
end
##
# Convenient task for performing all optimization techniques at once
#
desc 'Optimize all JPG, PNG, Stylesheet and JavaScript files in the output directory'
task :all => [:jpg, :png, :javascripts, :stylesheets]
end