zeus.ugent.be/Rules
2016-07-27 00:13:36 +02:00

173 lines
2.3 KiB
Ruby

#!/usr/bin/env ruby
# frozen_string_literal: true
require 'json'
require 'icalendar'
#
#
# PREPROCESS
#
#
preprocess do
@items.find_all('/posts/**/*').each do |i|
year_str = %r{/(\d\d)-\d\d/}.match(i.identifier).captures[0]
academic_year = year_str.to_i
attr_hash = {
# Tag all posts with article (for Blogging helper)
kind: 'article',
academic_year: academic_year
}
i.update_attributes(attr_hash)
end
# academic_years is defined in archives.rb
academic_years.each do |year|
@items.create(
'',
{ academic_year: year },
"/archives/#{year}-#{year + 1}.html",
binary: false
)
end
end
#
#
# COMPILATION
#
#
compile '/feed.*' do
filter :erb
end
#
# CAMMIE
#
compile '/cammie.*' do
layout '/default.*'
filter :erb
filter :relativize_paths, type: :html
end
#
# ARCHIVES
#
compile '/archives/*' do
layout '/archive_page.*'
layout '/generic.*'
layout '/default.*'
filter :erb
filter :relativize_paths, type: :html
end
#
# POSTS
#
compile '/posts/**/*' do
filter :kramdown
layout '/eventpost.*'
layout '/default.*'
filter :erb
filter :relativize_paths, type: :html
end
compile '/posts/**/*', rep: :text do
filter :kramdown
filter :strip_html
end
compile '/posts/**/*', rep: :ical do
filter :ical
end
#
# GENERIC ERB PAGES
#
compile '/tipuesearch_content.js.erb' do
filter :erb
end
compile '/**/*.ics.erb' do
filter :erb
end
compile '/*.erb' do
layout '/generic.*'
layout '/default.*'
filter :erb
filter :relativize_paths, type: :html
end
#
# ASSETS
#
compile '/assets/scripts/**/*.coffee' do
filter :coffeescript
end
compile '/assets/stylesheets/**/*.scss' do
filter :sass, syntax: :scss
end
passthrough '/assets/images/*.{png}'
#
#
# ROUTES
#
#
route '/feed.*' do
'/feed.xml'
end
#
# HOMEPAGE
#
route '/index.*' do
'/index.html'
end
route '/tipuesearch_content.js.erb' do
'/tipuesearch_content.js'
end
#
# ASSETS
#
route '/assets/stylesheets/**/*' do
"#{item.identifier.without_ext}.css"
end
route '/assets/scripts/**/*' do
"#{item.identifier.without_ext}.js"
end
# TEXT
route '/*.ics.erb' do
item.identifier.without_ext
end
# POSTS
route '/posts/**/*', rep: :ical do
"#{item.identifier.without_ext}.ics"
end
route '/**/*.{erb,html,md}' do
"#{item.identifier.without_ext}/index.html"
end
#
#
# LAYOUTS
#
#
layout '/**/*', :erb