135 lines
2.6 KiB
Ruby
135 lines
2.6 KiB
Ruby
#!/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 :erb
|
|
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
|