48 lines
1.1 KiB
Ruby
48 lines
1.1 KiB
Ruby
|
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 "<!-- more -->"
|
||
|
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
|
||
|
|