#!/usr/bin/env ruby require 'compass' Compass.add_configuration "#{File.dirname(__FILE__)}/.compass/config.rb" SITE_ROOT = "" compile '/assets/*/' do nil end ['markup', 'stylesheet', 'background'].each do |ex_file| compile "/examples/*/#{ex_file}/" do nil end end compile '/' do filter :haml, :ugly => true layout item[:layout] ? item[:layout] : "main" end compile '/search-data/' do filter :erb end compile '/examples/*/' do filter :haml, :ugly => true filter :highlight layout item[:layout] ? item[:layout] : "example" end sass_options = Compass.sass_engine_options (0..5).each do |i| compile("/stylesheets/#{'*/' * i}_*/") {nil} end compile '/stylesheets/*' do filter :sass, sass_options.merge(:syntax => item[:extension].to_sym) end compile '/reference/*/' do filter :haml, :ugly => true filter :highlight layout item[:layout] ? item[:layout] : "main" end compile '/posts/*/' do filter :erb filter :rdiscount if item[:extension] == "markdown" layout 'post' end compile "/blog/atom/" do filter :haml, :attr_wrapper => '"' end compile 'sitemap' do filter :erb end compile '*' do if item[:extension] == "markdown" filter :rdiscount elsif item[:extension] == "haml" filter :haml, :ugly => true end layout item[:layout] ? item[:layout] : "main" end route 'sitemap' do item.identifier.chop + '.xml' end route "/blog/atom/" do "/blog/atom.xml" end route '/search-data/' do "#{SITE_ROOT}/javascripts"+item.identifier[0..-2]+".js" end (0..5).each do |i| route("/stylesheets/#{'*/' * i}_*/") {nil} end route '/assets/htaccess/' do "#{SITE_ROOT}/.htaccess" end route '/assets/css/*/' do "#{SITE_ROOT}/stylesheets"+item.identifier.chop[11..-1]+"."+item[:extension] end route '/assets/images/*/' do SITE_ROOT+item.identifier.chop[7..-1]+"."+item[:extension] end route '/assets/javascripts/*/' do SITE_ROOT+item.identifier.chop[7..-1]+"."+item[:extension] end route '/assets/fonts/*/' do SITE_ROOT+item.identifier.chop[7..-1]+"."+item[:extension] end route '/stylesheets/*/' do # don't generate a directory like we do for HTML files SITE_ROOT+item.identifier.chop + '.css' end route '/posts/*/' do if item.identifier =~ %r{^/posts/(\d{4})-(\d{2})-(\d{2})-(.*)/$} "/blog/#{$1}/#{$2}/#{$3}/#{$4}/index.html" else puts "WARNING: malformed post name: #{item.identifier}" nil end end %w(markup stylesheet background).each do |ex_file| route "/examples/*/#{ex_file}/" do nil end end route '*' do SITE_ROOT+item.identifier + 'index.html' end layout '*', :haml, :ugly => true