#!/usr/bin/env ruby # frozen_string_literal: true 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' # ERB compile '/*.erb' do layout '/default.*' filter :erb filter :relativize_paths, type: :html end # Coffeescript compile '/assets/scripts/**/*.coffee' do filter :coffeescript end # SCSS compile '/assets/stylesheets/**/*.scss' do filter :sass, syntax: :scss end # Compile all posts compile '/posts/**/*.md' do filter :kramdown layout '/eventpost.*' layout '/default.*' filter :erb filter :relativize_paths, type: :html end route '/index.*' do '/index.html' end route '/assets/stylesheets/**/*' do "#{item.identifier.without_ext}.css" end route '/assets/scripts/**/*' do "#{item.identifier.without_ext}.js" end passthrough '/assets/images/*.{png}' route '/**/*.{erb,html,md}' do "#{item.identifier.without_ext}/index.html" end layout '/**/*', :erb 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