devroom.io/Rules
Ariejan de Vroom dbae98c4c0 Moar updates
2013-03-24 14:27:51 +01:00

88 lines
1.8 KiB
Ruby

#!/usr/bin/env ruby
BYPASS_FILES = %w(404.html crossdomain.xml humans.txt robots.txt) unless defined?(BYPASS_FILES)
BYPASS_FILES.each do |file|
compile("/#{file.sub /\..+/, ''}/") do
# don't filter bypass files
end
end
compile %r{/_.+/$} do
# don't filter partials
end
compile '/css/*/' do
# filter :sass, syntax: :scss, load_paths: SASS_LOAD_PATHS
filter :sass, Compass.sass_engine_options
end
compile '/js/*/' do
filter :concat_js
filter :uglify_js
end
compile '/posts/*' do
filter :kramdown, auto_ids: false, coderay_line_numbers: nil, coderay_tab_width: 2
filter :typogruby
layout 'post'
layout 'default'
filter :cache_buster
end
compile '*' do
unless item.binary?
case item[:extension]
when 'md'
filter :erb
filter :kramdown
when 'haml'
filter :haml, format: :html5
else
filter :erb
end
if %w(html haml md).include?(item[:extension])
layout 'default'
filter :cache_buster
end
end
end
BYPASS_FILES.each do |file|
route("/#{file.sub /\..+/, ''}/") do
"/#{file}" # route bypass files as is
end
end
route %r{/_.+/$} do
nil # don't route partials
end
route '/css/*/' do
fp = fingerprint(item[:filename])
item.identifier.chop + fp + '.css'
end
route '/js/*/' do
fp = fingerprint(item[:filename])
item.identifier.chop + fp + '.js'
end
route '/posts/*' do
y, m, d, slug = /([0-9]+)\-([0-9]+)\-([0-9]+)\-([^\/]+)/.match(item.identifier).captures
"/#{y}/#{m}/#{d}/#{slug}/index.html"
end
route '*' do
if item.binary?
# Write item with identifier /foo/ to /foo.ext
item.identifier.chop + '.' + item[:extension]
else
# Write item with identifier /foo/ to /foo/index.html
item.identifier + 'index.html'
end
end
layout '*', :haml, :format => :html5