1
0
Fork 0
mirror of https://github.com/fmap/muflax65ngodyewp.onion synced 2024-06-29 10:36:48 +02:00
muflax65ngodyewp.onion/Rules
2011-09-05 19:05:40 +02:00

116 lines
2.4 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 cant 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
def reference_links
# find reference item
reference = @items.find{|item| item.identifier == '/references/'}
unless reference.nil?
# add references to every markdown item
printed_items.each do |item|
if item[:extension] == "mkd"
item.add_references reference.raw_content
end
end
end
end
def hide_pages
@items.each do |item|
if item.identifier.match %r{^/(js|style)/}
item[:is_hidden] = true
end
end
end
reference_links
hide_pages
end
compile '/style/' do
# pass
end
compile '/references' do
# link references are only added to other files
end
compile '/feed/' do
filter :erb
end
compile '*' do
if item.binary?
# don't filter binary items
else
case @item[:extension]
when "mkd" # normal pages
# little sanity check
unless @item[:is_category] or @item[:non_cognitive]
[:techne, :episteme, :date, :title].each do |header|
if @item[header].nil?
puts "#{@item.identifier} is missing #{header}."
end
end
end
filter :erb
filter :kramdown
filter :colorize_syntax, :default_colorizer => :pygmentize
layout 'default'
filter :tidy
else
# nothing to do
end
end
end
route '/feed/' do
'/rss.xml'
end
route '/htaccess/' do
'/.htaccess'
end
route '/style/' do
'/style.css'
end
route '/js/*' do
route_unchanged
end
route '/kanji/*' do
route_unchanged
end
route '/references' do
# pass
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