2011-07-31 22:51:41 +02:00
|
|
|
|
#!/usr/bin/env ruby
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
|
|
# A few helpful tips about the Rules file:
|
|
|
|
|
#
|
|
|
|
|
# * The string given to #compile and #route are matching patterns for
|
|
|
|
|
# identifiers--not for paths. Therefore, you can’t match on extension.
|
|
|
|
|
#
|
|
|
|
|
# * The order of rules is important: for each item, only the first matching
|
|
|
|
|
# rule is applied.
|
|
|
|
|
#
|
|
|
|
|
# * Item identifiers start and end with a slash (e.g. “/about/” for the file
|
|
|
|
|
# “content/about.html”). To select all children, grandchildren, … of an
|
|
|
|
|
# item, use the pattern “/about/*/”; “/about/*” will also select the parent,
|
|
|
|
|
# because “*” matches zero or more characters.
|
|
|
|
|
|
|
|
|
|
preprocess do
|
|
|
|
|
# find reference item
|
|
|
|
|
reference = @items.find{|item| item.identifier == '/references/'}
|
2011-09-03 14:28:45 +02:00
|
|
|
|
ref_content =
|
2011-07-31 22:51:41 +02:00
|
|
|
|
|
|
|
|
|
unless reference.nil?
|
|
|
|
|
# add references to every markdown item
|
2011-09-03 14:28:45 +02:00
|
|
|
|
printed_items.each do |item|
|
|
|
|
|
if item[:extension] == "mkd"
|
2011-07-31 22:51:41 +02:00
|
|
|
|
item.add_references reference.raw_content
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
compile '/style/' do
|
2011-09-03 14:28:45 +02:00
|
|
|
|
# don't filter or layout
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
compile '/references' do
|
|
|
|
|
# link references are only added to other files
|
2011-07-31 22:51:41 +02:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
compile '*' do
|
|
|
|
|
if item.binary?
|
2011-09-03 14:28:45 +02:00
|
|
|
|
# don't filter binary items
|
2011-07-31 22:51:41 +02:00
|
|
|
|
else
|
|
|
|
|
case @item[:extension]
|
2011-09-03 14:28:45 +02:00
|
|
|
|
when "mkd" # normal pages
|
2011-07-31 22:51:41 +02:00
|
|
|
|
filter :erb
|
2011-09-03 14:28:45 +02:00
|
|
|
|
filter :kramdown
|
2011-07-31 22:51:41 +02:00
|
|
|
|
layout 'default'
|
|
|
|
|
end
|
|
|
|
|
filter :tidy
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
route '/style/' do
|
|
|
|
|
'/style.css'
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
route '/404/' do
|
|
|
|
|
'/404.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 '*', :erb
|