Rules
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
#!/usr/bin/env ruby
compile /^\/archives\// do
rep.filter :erb
layout 'default'
end
compile /^\/(home|projects|about)/ do
rep.filter :erb
rep.filter :redcloth
layout 'default'
end
compile /(rss|atom)/ do
rep.filter :erb
end
compile '/css/*' do
filter :sass, {
:load_paths => [Dir.pwd+"/content/css"],
:full_exception => true,
:line_numbers => true
}
end
compile "sitemap" do
rep.filter :erb
end
compile /^\/(js\/.+?)/ do
# do nothing
end
compile '*' do
if item[:filters_pre] && !item[:filters_pre].empty? then
item[:filters_pre].each do |f|
rep.filter f.to_sym
end
layout 'default'
else
unless rep.binary? then
case item[:extension]
when 'textile' then
rep.filter :redcloth
layout 'default'
when 'md','markdown' then
rep.filter :bluecloth
layout 'default'
when 'bbcode' then
rep.filter :bbcode
layout 'default'
when 'glyph' then
pdf_file = Pathname.new "#{Dir.pwd}/output#{item.identifier.gsub(/\/$/, '')}.pdf"
unless pdf_file.exist? then
# Create the PDF file
f = Pathname.new "#{Dir.pwd}/output#{item.identifier.gsub(/\/$/, '')}.glyph"
f.parent.mkpath
doc = %{
include[#{f.parent.parent.parent}/lib/data]
h3rald_article[
@identifier[#{item.identifier}]
@content[#{item.raw_content}]
]
}
# Write the new raw file using Glyph's file_write method
file_write f, doc
# Now compile the PDF (works if Prince is installed)
target = Glyph['document.output']
Glyph['document.output'] = 'pdf'
Glyph['document.author'] = "Fabio Cevasco"
Glyph['site.root'] = ".."
Glyph['document.date'] = item[:date].strftime "%A, %d %B %Y"
Glyph['document.title'] = item[:title]
Glyph['document.subtitle'] = ""
Glyph.compile f.to_s
begin
f.unlink
Pathname.new(f.to_s.gsub(/\.glyph$/, '.html')).unlink
rescue
end
end
Glyph['site.root'] = ""
# Filter text rep
rep.filter :glyph
layout 'default'
Glyph.reset
end
end
end
end
route /^\/tags\/.+?-(atom|rss)/ do
item.identifier.gsub(/(.+)-(rss|atom)\/$/, '\1/\2') + '.xml'
end
route '/(atom|rss)/' do
item.identifier.gsub(/\/$/, '') + '.xml'
end
route '/css/*' do
item.identifier.gsub(/\/$/, '') + '.css'
end
route '/sitemap' do
item.identifier.gsub(/\/$/, '') + '.xml'
end
route "/htaccess" do
"/.htaccess"
end
route /\/(images|img|files|favicon|robots)\// do
item.identifier.gsub(/\/$/, '') + ".#{item[:extension]}"
end
route '/js/*' do
item.identifier.gsub(/\/$/, '') + '.js'
end
route '*' do
item.identifier + 'index.html'
end
layout '*', :erb
|