zeus.ugent.be/Rules

83 lines
1.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'
preprocess do
# Tag all posts with 'article'
@items.find_all('/posts/**/*.md').each do |i|
i.attributes[:kind] = 'article'
end
@items.create('', {}, '/tipuesearch_content.js', binary: false)
end
# This makes sure this tipuesearch_content doesn't get deleted
passthrough '/tipuesearch_content.js'
2016-07-18 23:34:38 +02:00
# ERB
2016-07-19 10:27:27 +02:00
compile '/*.erb' do
layout '/default.*'
2016-07-18 09:24:24 +02:00
2016-07-19 10:27:27 +02:00
filter :erb
2016-07-18 09:24:24 +02:00
filter :relativize_paths, type: :html
2016-06-09 14:27:23 +02:00
end
2016-07-18 23:34:38 +02:00
# Coffeescript
2016-07-19 10:27:27 +02:00
compile '/assets/scripts/**/*.coffee' do
2016-06-09 17:57:40 +02:00
filter :coffeescript
end
2016-07-18 23:34:38 +02:00
# SCSS
2016-07-19 10:27:27 +02:00
compile '/assets/stylesheets/**/*.scss' do
2016-06-29 21:38:57 +02:00
filter :sass, syntax: :scss
end
2016-07-18 23:34:38 +02:00
# Compile all posts
compile '/posts/**/*.md' 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-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-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-19 10:27:27 +02:00
passthrough '/assets/images/*.{png}'
2016-07-18 23:34:38 +02:00
2016-07-18 09:27:32 +02:00
route '/**/*.{erb,html,md}' do
2016-06-09 16:08:43 +02:00
"#{item.identifier.without_ext}/index.html"
2016-06-09 14:27:23 +02:00
end
layout '/**/*', :erb
2016-07-20 14:38:50 +02:00
postprocess do
tmp = articles.map do |e|
{
title: e[:title],
url: url_for(e),
text: '',
tags: ''
}
end
tmp = { pages: tmp }
File.open('output/tipuesearch_content.js', 'w') do |f|
f.write("var tipuesearch = #{tmp.to_json};")
end
end