require "fileutils" SOURCE = "./_source" CONFIG = { 'posts' => File.join(SOURCE, "_posts"), 'post_ext' => "md" } # Usage: rake post title="A Title" desc "Begin a new post in #{CONFIG['posts']}" task :post do mkdir_p CONFIG['posts'] title = ENV["title"] || "new-post" slug = title.downcase.strip.gsub(/\s+/, '-').gsub(/[^\w-]/, '') filename = File.join(CONFIG['posts'], "#{Time.now.strftime('%Y-%m-%d')}-#{slug}.#{CONFIG['post_ext']}") if File.exist?(filename) abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n' end puts "Creating new post: #{filename}" open(filename, 'w') do |post| post.puts "---" post.puts "layout: post" post.puts "title: \"#{title.gsub(/-/,' ')}\"" post.puts "---" post.puts post.puts post.puts "" post.puts post.puts end end # task :post desc "Launch preview environment" task :preview do system "jekyll --server" end # task :preview desc "Clean generated site files" task :clean do FileUtils.rm site_files end task :default do system "jekyll" end