$:.push "lib" require "gemsmith.rb" require "jdb.rb" require "lab_metadata.rb" require "util.rb" include GemSmith $db = JDB.new("db") LabMetadata::build_people_metadata() site :odin_lab, out: "build" do ## Splice off header information for_files(/((\.erb)|(\.md)|(\.html))$/) do exclude_files(/^\/?(slides|software)\//) do activate extract_headers end end ## Render specialized formats for_files(/\.md$/) do activate render_markdown end for_files(/\.erb$/) do activate render_erb end ## Generate pages for each lab member LabMetadata::create_people_pages for_files(/people\/.*\.html$/) do exclude_files(/index\.html/) do activate apply_template("templates/person.erb") end end ## Apply templating for_files(/\.html$/) do exclude_files(/^\/?(slides|software)\//) do activate apply_template("templates/lab.erb") end end ## Specialized Formatting ## Specify specialized dependencies (e.g., on the database) for_files(/people\/.*\.html$/) do add_dependency "db/lab.json" end for_files(/grants\/index\.html/) do add_dependency "db/cv/okennedy/grants.json" end for_files(/papers\/index.html/) do add_dependency "db/publications.json" end ## Static assets add_assets([ "bootstrap", "jquery.js", "mathjax", "odin.css", "seminar.css", "logos", "favicon", "people" ]) add_dir("slides", "slides") add_dir("software", "software") end task :default => [ :odin_lab ] task :open => :default do system("open build/index.html") end task :upload => :odin_lab do system("rsync -avz -e ssh --safe-links --progress build/ okennedy@gram.cse.buffalo.edu:/var/www/static/") end task :clean do system("rm -r build") end