forked from h3rald/h3rald
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRules
124 lines (108 loc) · 2.58 KB
/
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