require "rubygems" require "tmpdir" require "jekyll" # Change your GitHub reponame GITHUB_REPONAME = "pusher/chameleon" namespace :site do desc "Generate blog files" task :generate do Jekyll::Site.new(Jekyll.configuration({ "source" => ".", "destination" => "_site", "config" => ["_config.yml","_config.production.yml"] })).process end desc "Generate and publish blog to gh-pages" task :publish => [:generate] do Dir.mktmpdir do |tmp| cp_r "_site/.", tmp pwd = Dir.pwd Dir.chdir tmp system "git init" system "git add ." message = "Docs updated at #{Time.now.utc}" system "git commit -m #{message.inspect}" system "git remote add origin git@github.com:#{GITHUB_REPONAME}.git" system "git push origin master:refs/heads/gh-pages --force" Dir.chdir pwd end end end