Allow quoted date in front matter defaults

This commit is contained in:
Ducksan Cho 2015-11-25 23:18:33 +13:00
parent 03d3eb7191
commit e60e5f3532
2 changed files with 33 additions and 1 deletions

View File

@ -30,6 +30,13 @@ module Jekyll
set set
end end
def parse_quoted_date(set)
return set unless set.key?('values') && set['values'].key?('date')
return set if set['values']['date'].is_a?(Time)
set['values']['date'] = Utils.parse_date(set['values']['date'], "Front matter defaults does not have a valid date.")
set
end
# Finds a default value for a given setting, filtered by path and type # Finds a default value for a given setting, filtered by path and type
# #
# path - the path (relative to the source) of the page, post or :draft the default is used in # path - the path (relative to the source) of the page, post or :draft the default is used in
@ -159,7 +166,7 @@ module Jekyll
sets.map do |set| sets.map do |set|
if valid?(set) if valid?(set)
update_deprecated_types(set) parse_quoted_date(update_deprecated_types(set))
else else
Jekyll.logger.warn "Defaults:", "An invalid front-matter default set was found:" Jekyll.logger.warn "Defaults:", "An invalid front-matter default set was found:"
Jekyll.logger.warn "#{set}" Jekyll.logger.warn "#{set}"

View File

@ -175,4 +175,29 @@ class TestFrontMatterDefaults < JekyllUnitTest
end end
end end
context "A site with front matter defaults with quoted date" do
setup do
@site = Site.new(Jekyll.configuration({
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{
"values" => {
"date" => "2015-01-01 00:00:01"
}
}]
}))
end
should "not raise error" do
@site.process
end
should "parse date" do
@site.process
date = Time.parse("2015-01-01 00:00:01")
assert @site.pages.find { |page| page.data["date"] == date }
assert @site.posts.find { |page| page.data["date"] == date }
end
end
end end