| #!/usr/bin/env ruby |
| |
| ## Required Gems |
| require 'compass' |
| require 'susy' |
| |
| ### Compass configuration #################################################### |
| Compass.add_project_configuration 'config.rb' |
| sass_options = Compass.sass_engine_options |
| |
| ### Configuration ############################################################ |
| TypographicalImprovementFilter = :rubypants |
| TypographicalImprovementFilterParams = {} |
| |
| ### Preprocessing ############################################################ |
| preprocess do |
| config[:nanoc_version_info] = `nanoc --version`.strip |
| config[:gem_version_info] = `gem --version`.strip |
| end |
| |
| ### Routing ################################################################## |
| route '/static/*' do |
| # /static/foo.html/ → /foo.html |
| item.identifier[7..-2] |
| end |
| |
| route 'sitemap' do |
| item.identifier.chop + '.xml' |
| end |
| |
| |
| route '/assets/css/bootstrap/_*/' do |
| # Don't output partials, so return nil |
| nil |
| end |
| |
| route '/assets/css/*/' do |
| # path with version |
| '/assets/style' + '-v' + rep.item[:version].to_s + '.css' |
| end |
| |
| route '*' do |
| if item.binary? |
| item.identifier.chop + '.' + item[:extension] |
| elsif item[:is_partial] || item[:kind] == 'article' |
| # Don’t output partial items (e.g. sub-stylesheets) |
| nil |
| elsif item[:path] |
| item[:path] |
| else |
| # Place each file in its own directory |
| rep.item.identifier + 'index.html' |
| end |
| end |
| |
| |
| ### Compilation ############################################################## |
| |
| compile 'sitemap' do |
| filter :erb |
| end |
| |
| compile '/assets/css/bootstrap/_*/' do |
| # Don’t compile partials |
| end |
| |
| compile '/assets/css/*/' do |
| filter :sass, Compass.sass_engine_options |
| filter :relativize_paths, :type => :css |
| filter :rainpress |
| end |
| compile '/static/*' do |
| end |
| |
| compile '*' do |
| if item.binary? |
| # ha, do nothing! :) |
| else |
| puts "item = #{item.identifier} -- extension = #{item[:extension]}" |
| case item[:extension] |
| when 'md' |
| filter :erb |
| filter :kramdown |
| when 'haml' |
| filter :erb |
| filter :haml |
| when 'js' |
| filter :erb |
| filter :uglify_js |
| when 'adoc' |
| filter :asciidoc |
| else |
| filter :erb |
| end |
| layout 'default-haml' unless item[:extension] == 'js' |
| filter :add_ids_to_headers |
| filter TypographicalImprovementFilter, TypographicalImprovementFilterParams |
| end |
| end |
| ### Layouting ################################################################ |
| |
| |
| layout '*', :haml |