diff --git a/lib/jekyll/commands/new.rb b/lib/jekyll/commands/new.rb index e650dc52..c5219e13 100644 --- a/lib/jekyll/commands/new.rb +++ b/lib/jekyll/commands/new.rb @@ -8,6 +8,10 @@ module Jekyll new_blog_path = File.expand_path(args.join(" "), Dir.pwd) FileUtils.mkdir_p new_blog_path + unless Dir["#{new_blog_path}/**/*"].empty? + Jekyll::Logger.error "Conflict:", "#{new_blog_path} exists and is not empty." + exit(1) + end create_sample_files new_blog_path diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index dad0b163..015f88b3 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -118,5 +118,18 @@ module Jekyll end end end + + # Write the generated page file to the destination directory. + # + # dest - The String path to the destination dir. + # + # Returns nothing. + def write(dest) + path = destination(dest) + FileUtils.mkdir_p(File.dirname(path)) + File.open(path, 'w') do |f| + f.write(self.output) + end + end end end diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb index 4c434564..2f7803d5 100644 --- a/lib/jekyll/page.rb +++ b/lib/jekyll/page.rb @@ -129,19 +129,6 @@ module Jekyll path end - # Write the generated page file to the destination directory. - # - # dest - The String path to the destination dir. - # - # Returns nothing. - def write(dest) - path = destination(dest) - FileUtils.mkdir_p(File.dirname(path)) - File.open(path, 'w') do |f| - f.write(self.output) - end - end - # Returns the object as a debug String. def inspect "#" diff --git a/lib/jekyll/post.rb b/lib/jekyll/post.rb index c210d235..a7afa800 100644 --- a/lib/jekyll/post.rb +++ b/lib/jekyll/post.rb @@ -258,19 +258,6 @@ module Jekyll path end - # Write the generated post file to the destination directory. - # - # dest - The String path to the destination dir. - # - # Returns nothing. - def write(dest) - path = destination(dest) - FileUtils.mkdir_p(File.dirname(path)) - File.open(path, 'w') do |f| - f.write(self.output) - end - end - # Convert this post into a Hash for use in Liquid templates. # # Returns the representative Hash. diff --git a/lib/jekyll/tags/post_url.rb b/lib/jekyll/tags/post_url.rb index 6dbec9be..dd02d3bf 100644 --- a/lib/jekyll/tags/post_url.rb +++ b/lib/jekyll/tags/post_url.rb @@ -10,6 +10,13 @@ module Jekyll @slug = slug @date = Time.parse(date) end + + def ==(other) + slug == other.slug && + date.year == other.date.year && + date.month == other.date.month && + date.day == other.date.day + end end class PostUrl < Liquid::Tag @@ -23,11 +30,7 @@ module Jekyll site = context.registers[:site] site.posts.each do |p| - if p.slug == @post.slug \ - and p.date.year == @post.date.year \ - and p.date.month == @post.date.month \ - and p.date.day == @post.date.day - + if @post == p return p.url end end