diff --git a/lib/jekyll/post.rb b/lib/jekyll/post.rb index 81213b3f..0e2af904 100644 --- a/lib/jekyll/post.rb +++ b/lib/jekyll/post.rb @@ -18,7 +18,7 @@ module Jekyll name =~ MATCHER end - attr_accessor :date, :slug, :ext, :categories, :topics + attr_accessor :date, :slug, :ext, :categories, :topics, :published attr_accessor :data, :content, :output # Initialize this Post instance. @@ -38,6 +38,12 @@ module Jekyll self.process(name) self.read_yaml(@base, name) + + if self.data.has_key?('published') && self.data['published'] == false + self.published = false + else + self.published = true + end if self.categories.empty? if self.data.has_key?('category') diff --git a/test/source/publish_test/_posts/2008-02-02-not-published.textile b/test/source/publish_test/_posts/2008-02-02-not-published.textile new file mode 100644 index 00000000..265b6062 --- /dev/null +++ b/test/source/publish_test/_posts/2008-02-02-not-published.textile @@ -0,0 +1,7 @@ +--- +layout: default +title: Not published! +published: false +--- + +This should *not* be published! diff --git a/test/source/publish_test/_posts/2008-02-02-publish.textile b/test/source/publish_test/_posts/2008-02-02-publish.textile new file mode 100644 index 00000000..5fac7557 --- /dev/null +++ b/test/source/publish_test/_posts/2008-02-02-publish.textile @@ -0,0 +1,7 @@ +--- +layout: default +title: Publish +--- + +This should be published. + diff --git a/test/test_post.rb b/test/test_post.rb index 202ea55f..449e5f19 100644 --- a/test/test_post.rb +++ b/test/test_post.rb @@ -71,6 +71,16 @@ class TestPost < Test::Unit::TestCase assert_equal "

{{ page.title }}

\n

Best post ever

", p.content end + def test_published + p = Post.new(File.join(File.dirname(__FILE__), *%w[source publish_test]), '', "2008-02-02-publish.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") + assert_equal false, p.published + end + def test_yaml_category p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), '', "2009-01-27-category.textile") assert p.categories.include?('foo') diff --git a/test/test_site.rb b/test/test_site.rb index 7bcf6dee..4ffb4cdb 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -27,7 +27,7 @@ class TestSite < Test::Unit::TestCase @s.process posts = Dir[File.join(@source, "**", "_posts/*")] - categories = %w(bar baz category foo z_category).sort + categories = %w(bar baz category foo z_category publish_test).sort assert_equal posts.size, @s.posts.size assert_equal categories, @s.categories.keys.sort