尝试在Jekyll中打印发布日期失败,未定义方法`strftime'

时间:2013-01-03 21:00:49

标签: ruby jekyll

我一直在使用Liquid extensions重新格式化基于Jekyll的网站上的日期,例如:

<p>{{ post.date | date_to_string }}</p>

这在我的index.html页面中运行正常,该页面只收集最近的五篇帖子,然后逐个帖子进行迭代。但是,当我尝试在_layouts/base.html模板中呈现此类日期时,这会失败。

我试过了:

{{ page.date | date_to_string }}

{{ page.title }}无问题地工作,{{ page.date}}在没有液体过滤器的情况下使用它时会渲染,例如输出2012-03-12 00:00:00 +0000

为什么date_to_string过滤器会因{{ page.date }}提供的输入而失败。我收到以下错误:

Liquid Exception: undefined method `strftime' for nil:NilClass in base

构建失败。谢谢你的帮助!

1 个答案:

答案 0 :(得分:8)

在我的网站上,我使用

{{ page.date | date: "%d %B %Y" }}

它从降价文件中获取日期。并且呈现如下:

26 December 2012

请参阅以下链接以获取额外阅读:

How does Jekyll date formatting work?

http://liquid.rubyforge.org/classes/Liquid/StandardFilters.html#M000012

编辑:在评论部分回答您的问题:

如果你想使用date_to_string,你必须像这样调用它:

{{ site.time | date_to_string }}

还有{{ site.time | date_to_long_string }将以完整的形式写出月份,例如。十一月不是十一月。

来源

https://github.com/mojombo/jekyll/wiki/Liquid-Extensions