#!/usr/bin/env ruby require 'kramdown' require 'yaml' @site_name = ENV["SITE_NAME"] @url = ENV["URL"] template = ARGV.shift source_file = ARGV.first source = ARGF.read meta = {} if (md = source.match(/^(?---\s*\n.*?\n?)^(---\s*$\n?)/m)) source = md.post_match meta = YAML.load(md[:metadata]) || {} end body = Kramdown::Document.new(source).to_html if meta["title"] title="#{@site_name} / #{meta["title"]}" else title=@site_name end puts(File.read(template) % {body: body, title: title, built_at: Time.now.utc, source_file: source_file, site_name: @site_name, url: @url})