zeus.ugent.be/Rules

175 lines
2.4 KiB
Text
Raw Normal View History

2016-06-09 14:27:23 +02:00
#!/usr/bin/env ruby
2016-07-19 08:39:52 +02:00
# frozen_string_literal: true
2016-06-09 14:27:23 +02:00
2016-07-20 14:38:50 +02:00
require 'json'
2016-07-27 00:13:36 +02:00
require 'icalendar'
2016-07-20 14:38:50 +02:00
2016-07-23 22:43:46 +02:00
#
#
# PREPROCESS
#
#
2016-07-20 14:38:50 +02:00
preprocess do
2016-07-20 17:52:56 +02:00
@items.find_all('/posts/**/*').each do |i|
2016-07-23 21:17:24 +02:00
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
)
2016-07-20 14:38:50 +02:00
end
end
2016-07-23 22:43:46 +02:00
#
#
# COMPILATION
#
#
2016-07-26 20:08:42 +02:00
compile '/feed.*' do
filter :erb
end
2016-07-23 22:43:46 +02:00
#
# CAMMIE
#
2016-07-23 22:06:06 +02:00
compile '/cammie.*' do
2016-07-19 10:27:27 +02:00
layout '/default.*'
2016-07-23 21:17:24 +02:00
filter :erb
filter :relativize_paths, type: :html
end
2016-07-23 22:43:46 +02:00
#
# ARCHIVES
#
2016-07-23 21:17:24 +02:00
compile '/archives/*' do
2016-07-23 22:06:06 +02:00
layout '/archive_page.*'
2016-07-23 21:17:24 +02:00
layout '/generic.*'
layout '/default.*'
2016-07-19 10:27:27 +02:00
filter :erb
2016-07-23 21:17:24 +02:00
2016-07-18 09:24:24 +02:00
filter :relativize_paths, type: :html
2016-06-09 14:27:23 +02:00
end
2016-07-23 22:43:46 +02:00
#
# POSTS
#
2016-07-20 17:52:56 +02:00
compile '/posts/**/*' do
2016-06-09 15:04:10 +02:00
filter :kramdown
2016-07-18 09:24:24 +02:00
2016-07-19 10:27:27 +02:00
layout '/eventpost.*'
layout '/default.*'
2016-07-12 23:58:08 +02:00
filter :erb
2016-07-18 09:24:24 +02:00
filter :relativize_paths, type: :html
2016-06-09 15:04:10 +02:00
end
2016-06-09 14:27:23 +02:00
2016-07-20 17:52:56 +02:00
compile '/posts/**/*', rep: :text do
filter :kramdown
filter :strip_html
end
2016-07-27 00:13:36 +02:00
compile '/posts/**/*', rep: :ical do
filter :ical
end
2016-07-23 22:43:46 +02:00
#
# GENERIC ERB PAGES
#
2016-07-24 13:09:37 +02:00
compile '/tipuesearch_content.js.erb' do
filter :erb
end
2016-07-27 00:13:36 +02:00
compile '/**/*.ics.erb' do
filter :erb
end
2016-07-23 22:06:06 +02:00
compile '/*.erb' do
layout '/generic.*'
layout '/default.*'
filter :erb
filter :relativize_paths, type: :html
end
2016-07-23 22:43:46 +02:00
#
# ASSETS
#
compile '/assets/scripts/**/*.coffee' do
filter :coffeescript
end
2016-08-02 20:00:52 +02:00
ignore '/assets/stylesheets/includes/**'
2016-07-23 22:43:46 +02:00
compile '/assets/stylesheets/**/*.scss' do
filter :sass, syntax: :scss
end
passthrough '/assets/images/*.{png}'
#
#
# ROUTES
#
#
2016-07-26 20:08:42 +02:00
route '/feed.*' do
'/feed.xml'
end
2016-07-23 22:43:46 +02:00
#
# HOMEPAGE
#
2016-07-18 23:34:38 +02:00
route '/index.*' do
2016-07-18 09:34:01 +02:00
'/index.html'
2016-07-18 09:27:32 +02:00
end
2016-07-24 13:09:37 +02:00
route '/tipuesearch_content.js.erb' do
'/tipuesearch_content.js'
end
2016-07-23 22:43:46 +02:00
#
# ASSETS
#
2016-07-18 23:34:38 +02:00
route '/assets/stylesheets/**/*' do
"#{item.identifier.without_ext}.css"
end
route '/assets/scripts/**/*' do
"#{item.identifier.without_ext}.js"
end
2016-07-23 22:43:46 +02:00
# TEXT
2016-07-27 00:13:36 +02:00
route '/*.ics.erb' do
item.identifier.without_ext
end
# POSTS
route '/posts/**/*', rep: :ical do
"#{item.identifier.without_ext}.ics"
end
2016-07-18 09:27:32 +02:00
route '/**/*.{erb,html,md}' do
2016-07-31 19:28:23 +02:00
"#{item.identifier.without_ext}.html"
2016-06-09 14:27:23 +02:00
end
2016-07-23 22:43:46 +02:00
#
#
# LAYOUTS
#
#
2016-06-09 14:27:23 +02:00
layout '/**/*', :erb