#!/usr/bin/env ruby preprocess do # Fetch a list of theme names from all items and construct items from them themas = @items.map { |i| i[:themas] }.flatten.uniq.compact themas.each do |thema| content = '' attributes = { naam: thema, verenigingen: @items.filter{|i| i[:themas] and i[:themas].include?(thema)}.flatten.uniq.compact } identifier = "/themas/#{thema}" @items.create(content, attributes, identifier) end end compile '/{verenigingen,projecten}/*.md' do filter :kramdown layout '/vereniging.*' layout '/default.*' layout '/base.*' write ext: 'html' end compile '/evenementen/*.md' do filter :kramdown layout '/evenement.*' layout '/default.*' layout '/base.*' write ext: 'html' end compile '/konventen/*.md' do filter :kramdown layout '/konvent.*' layout '/default.*' layout '/base.*' write ext: 'html' end compile '/themas/*' do layout '/thema.*' layout '/default.*' write ext: 'html' end compile '/homepage.md' do filter :kramdown layout '/homepage.*' layout '/base.*' write '/index.html' end compile '/faq/*' do filter :kramdown end compile '/verenigingen.md' do filter :kramdown layout '/verenigingen.*' layout '/default.*' layout '/base.*' write '/verenigingen/index.html' end compile '/quiz.md' do filter :kramdown layout '/quiz.*' layout '/default.*' write ext: 'html' end compile '/*.md' do filter :kramdown layout '/default.*' layout '/base.*' write ext: 'html' end compile '/stylesheets/*.{sass,scss}' do syntax = @item.identifier.ext.to_sym filter :sass, syntax: syntax, style: :compact write ext: 'css' end compile '/*.erb' do filter :erb layout '/default.*' layout '/base.*' write item.identifier.without_ext + '/index.html' end layout '/**/*', :erb # Catch-all compile '/**/*' do write item.identifier.to_s end