diff options
| author | davidtsadler <davidtsadler@googlemail.com> | 2012-01-05 17:23:44 +0000 |
|---|---|---|
| committer | davidtsadler <davidtsadler@googlemail.com> | 2012-01-05 17:23:44 +0000 |
| commit | 6245e56b3c5e3bee2141f5b08e017dd74ba8b261 (patch) | |
| tree | f03401d364dc5940a7ae670043925c2659c26a1a /Rakefile | |
| parent | c8f60a4f4c8fab99eda2c3c8df3f655e3ba072f1 (diff) | |
Add Rakefile.
Diffstat (limited to 'Rakefile')
| -rw-r--r-- | Rakefile | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..4caff35 --- /dev/null +++ b/Rakefile @@ -0,0 +1,49 @@ +require 'yaml' + +task :default => ['server'] + +desc 'Loads the configuration file into an instance variable to be used by other tasks.' +task :load_config do + @config = YAML::load_file('_config.yml') + @config['posts'] = "#{@config['source']}/_posts" +end + +desc 'Runs the server.' +task :server => [:clean] do + system 'jekyll --server --auto' +end + +desc 'Creates several test posts.' +task :posts => [:load_config, :clean_posts, :create_posts_directory] do + year = Time.now.year + (1..20).each do |day| + save_post(Time.new(year, 1, day), "Dummy post #{day}") + end +end + +desc 'Creates the required posts directory if one does not exist.' +task :create_posts_directory => [:load_config] do + Dir.mkdir(@config['posts']) unless File.directory?(@config['posts']) +end + +desc 'Deletes any generated files.' +task :clean => [:load_config] do + FileUtils.rm_rf(@config['destination']) +end + +desc 'Deletes any test posts.' +task :clean_posts => [:load_config] do + FileUtils.rm_rf(@config['posts']) +end + +def save_post(date, title) + template = File.read("templates/post.markdown") + template.gsub!(/:title/, title) + + filename = "#{@config['source']}/_posts/#{date.strftime('%Y-%m-%d')}-#{parameterize(title)}.markdown" + File.open(filename, 'w') { |f| f.write(template) } +end + +def parameterize(string, sep = '-') + string.downcase.gsub(/[^a-z0-9\-_]+/, sep) +end |
