diff --git a/lib/jekyll/post.rb b/lib/jekyll/post.rb index 1d9c70ed..d711b67d 100644 --- a/lib/jekyll/post.rb +++ b/lib/jekyll/post.rb @@ -38,6 +38,13 @@ module Jekyll self.process(name) self.read_yaml(@base, name) + #If we've added a date and time to the yaml, use that instead of the filename date + #Means we'll sort correctly. + if self.data.has_key?('date') + # ensure Time via to_s and reparse + self.date = Time.parse(self.data["date"].to_s) + end + if self.data.has_key?('published') && self.data['published'] == false self.published = false else diff --git a/test/source/_posts/2010-01-09-date-override.textile b/test/source/_posts/2010-01-09-date-override.textile new file mode 100644 index 00000000..efe8af4a --- /dev/null +++ b/test/source/_posts/2010-01-09-date-override.textile @@ -0,0 +1,5 @@ +--- +date: 2010-01-10 +--- + +Post with a front matter date diff --git a/test/source/_posts/2010-01-09-time-override.textile b/test/source/_posts/2010-01-09-time-override.textile new file mode 100644 index 00000000..7f80065a --- /dev/null +++ b/test/source/_posts/2010-01-09-time-override.textile @@ -0,0 +1,5 @@ +--- +date: 2010-01-10 13:07:09 +--- + +Post with a front matter time diff --git a/test/test_generated_site.rb b/test/test_generated_site.rb index 47f25d6d..a276e572 100644 --- a/test/test_generated_site.rb +++ b/test/test_generated_site.rb @@ -14,7 +14,7 @@ class TestGeneratedSite < Test::Unit::TestCase end should "ensure post count is as expected" do - assert_equal 22, @site.posts.size + assert_equal 24, @site.posts.size end should "insert site.posts into the index" do diff --git a/test/test_post.rb b/test/test_post.rb index 7b654b05..05f17e40 100644 --- a/test/test_post.rb +++ b/test/test_post.rb @@ -225,6 +225,16 @@ class TestPost < Test::Unit::TestCase assert_equal false, post.published end + should "recognize date in yaml" do + post = setup_post("2010-01-09-date-override.textile") + assert_equal "/2010/01/10/date-override.html", post.url + end + + should "recognize time in yaml" do + post = setup_post("2010-01-09-time-override.textile") + assert_equal "/2010/01/10/time-override.html", post.url + end + should "recognize category in yaml" do post = setup_post("2009-01-27-category.textile") assert post.categories.include?('foo')