#!/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