Skip to content

Instantly share code, notes, and snippets.

@wolflee
Forked from jamesaoverton/Rakefile
Created September 3, 2012 07:03
Show Gist options
  • Select an option

  • Save wolflee/3607478 to your computer and use it in GitHub Desktop.

Select an option

Save wolflee/3607478 to your computer and use it in GitHub Desktop.
Preprocess Slim layout templates for Jekyll.
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