Created
October 25, 2011 19:43
-
-
Save jamesaoverton/1313992 to your computer and use it in GitHub Desktop.
Preprocess Slim layout templates for Jekyll.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'slim' | |
Slim::Engine.set_default_options :pretty => true | |
desc "Parse .slim layouts, ignoring any YAML front matter." | |
task :parse_slim do | |
print "Parsing Slim layouts..." | |
Find.find('_layouts/slim/') do |filename| | |
if filename.match(/\.slim\Z/) | |
slimfile = File.open(filename, "r") | |
content = IO.read(filename) | |
slimfile.close | |
m = Regexp.new(/^(---.*?---\s*|\s*)(.*)/m).match(content) | |
htmlname = filename.gsub("/slim","").gsub(".slim", ".html") | |
htmlfile = File.new(htmlname, "w") | |
htmlfile.write(m[1] + Tilt['slim'].new{m[2]}.render) | |
htmlfile.close | |
end | |
end | |
puts "done!" | |
end | |
desc "Launch preview environment" | |
task :preview do | |
Rake::Task["parse_slim"].invoke | |
system "jekyll --auto --server" | |
end | |
desc "Build site" | |
task :build do |task, args| | |
Rake::Task["parse_slim"].invoke | |
system "jekyll" | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment