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

122 lines
2.7 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/'}
# add automatic content to reference
page_links = ["<!-- automatic content -->"]
@site.printed_items.each do |i|
page_links << "[#{i[:title]}]: #{i.identifier}"
unless i[:alt_titles].nil?
i[:alt_titles].each do |title|
page_links << "[#{title}]: #{i.identifier}"
end
end
end
reference.add_content(page_links.join("\n"))
unless reference.nil?
# add references to every markdown item
@site.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{^/(style)/}
item[:is_hidden] = true
end
end
end
hide_pages # must be first
@site.find_printed_items
reference_links
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 '/references' do
# pass
end
route '*' do
if item.binary?
route_unchanged
else
# Write item with identifier /foo/ to /foo/index.html
item.identifier + 'index.html'
end
end
layout '*', :erb