From efdd5ef395fd9544e9bb3270b7d4ff2a9f4f81f9 Mon Sep 17 00:00:00 2001 From: Nick Quaranto Date: Mon, 2 Feb 2009 22:52:19 -0500 Subject: [PATCH] Making sure that posts flagged as published: false don't get rendered or copied. --- lib/jekyll/site.rb | 7 +++++-- .../_posts/2008-02-02-not-published.textile | 1 + .../2008-02-02-published.textile} | 1 + test/test_generated_site.rb | 7 +++++++ test/test_post.rb | 4 ++-- test/test_site.rb | 4 ++-- 6 files changed, 18 insertions(+), 6 deletions(-) rename test/source/{publish_test => }/_posts/2008-02-02-not-published.textile (80%) rename test/source/{publish_test/_posts/2008-02-02-publish.textile => _posts/2008-02-02-published.textile} (74%) diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 187effbe..9b96ee6e 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -63,8 +63,11 @@ module Jekyll entries.each do |f| if Post.valid?(f) post = Post.new(self.source, dir, f) - self.posts << post - post.categories.each { |c| self.categories[c] << post } + + if post.published + self.posts << post + post.categories.each { |c| self.categories[c] << post } + end end end diff --git a/test/source/publish_test/_posts/2008-02-02-not-published.textile b/test/source/_posts/2008-02-02-not-published.textile similarity index 80% rename from test/source/publish_test/_posts/2008-02-02-not-published.textile rename to test/source/_posts/2008-02-02-not-published.textile index 265b6062..5ff418dc 100644 --- a/test/source/publish_test/_posts/2008-02-02-not-published.textile +++ b/test/source/_posts/2008-02-02-not-published.textile @@ -2,6 +2,7 @@ layout: default title: Not published! published: false +category: publish_test --- This should *not* be published! diff --git a/test/source/publish_test/_posts/2008-02-02-publish.textile b/test/source/_posts/2008-02-02-published.textile similarity index 74% rename from test/source/publish_test/_posts/2008-02-02-publish.textile rename to test/source/_posts/2008-02-02-published.textile index 5fac7557..78651408 100644 --- a/test/source/publish_test/_posts/2008-02-02-publish.textile +++ b/test/source/_posts/2008-02-02-published.textile @@ -1,6 +1,7 @@ --- layout: default title: Publish +category: publish_test --- This should be published. diff --git a/test/test_generated_site.rb b/test/test_generated_site.rb index 373545d4..0762d299 100644 --- a/test/test_generated_site.rb +++ b/test/test_generated_site.rb @@ -22,4 +22,11 @@ class TestGeneratedSite < Test::Unit::TestCase post.transform assert @index.include?(post.content) end + + def test_unpublished_posts_are_hidden + published = Dir[File.join(dest_dir, 'publish_test/2008/02/02/*.html')].map {|f| File.basename(f)} + + assert_equal 1, published.size + assert_equal "published.html", published.first + end end diff --git a/test/test_post.rb b/test/test_post.rb index 449e5f19..0a118df3 100644 --- a/test/test_post.rb +++ b/test/test_post.rb @@ -72,12 +72,12 @@ class TestPost < Test::Unit::TestCase end def test_published - p = Post.new(File.join(File.dirname(__FILE__), *%w[source publish_test]), '', "2008-02-02-publish.textile") + p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), '', "2008-02-02-published.textile") assert_equal true, p.published end def test_not_published - p = Post.new(File.join(File.dirname(__FILE__), *%w[source publish_test]), '', "2008-02-02-not-published.textile") + p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), '', "2008-02-02-not-published.textile") assert_equal false, p.published end diff --git a/test/test_site.rb b/test/test_site.rb index 4ffb4cdb..e19eefcd 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -19,7 +19,7 @@ class TestSite < Test::Unit::TestCase def test_read_posts @s.read_posts('') posts = Dir[File.join(@source, '_posts/*')] - assert_equal posts.size, @s.posts.size + assert_equal posts.size - 1, @s.posts.size end def test_site_payload @@ -29,7 +29,7 @@ class TestSite < Test::Unit::TestCase posts = Dir[File.join(@source, "**", "_posts/*")] categories = %w(bar baz category foo z_category publish_test).sort - assert_equal posts.size, @s.posts.size + assert_equal posts.size - 1, @s.posts.size assert_equal categories, @s.categories.keys.sort assert_equal 3, @s.categories['foo'].size end