Merge pull request #4184 from ducktyper/allow-quoted-dates
Merge pull request 4184
This commit is contained in:
commit
4f21458b34
|
@ -30,6 +30,13 @@ module Jekyll
|
|||
set
|
||||
end
|
||||
|
||||
def ensure_time!(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'], "An invalid date format was found in a front-matter default set: #{set}")
|
||||
set
|
||||
end
|
||||
|
||||
# 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
|
||||
|
@ -159,7 +166,7 @@ module Jekyll
|
|||
|
||||
sets.map do |set|
|
||||
if valid?(set)
|
||||
update_deprecated_types(set)
|
||||
ensure_time!(update_deprecated_types(set))
|
||||
else
|
||||
Jekyll.logger.warn "Defaults:", "An invalid front-matter default set was found:"
|
||||
Jekyll.logger.warn "#{set}"
|
||||
|
|
|
@ -175,4 +175,29 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue