#!/usr/bin/env ruby

require 'compass'

puts "Compass running from: #{Compass.lib_directory}"

Compass.add_configuration "#{File.dirname(__FILE__)}/.compass/config.rb"

SITE_ROOT = "/docs" 

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 'main'
end

compile '/search-data/' do
  filter :erb
end

compile '/examples/*/' do
  filter :haml, :ugly => true
  filter :highlight if ENV['SYNTAX']
  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 if ENV['SYNTAX']
  layout item[:layout] || 'main'
end

compile '*' do
  if item[:extension] == "markdown"
    filter :rdiscount
  elsif item[:extension] == "haml"
    filter :haml, :ugly => true
  end
  layout item[:layout] || 'main'
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/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

%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