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

我一直在使用 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

构建失败了.谢谢你的帮助!

解决方法

在我的网站上我使用

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

它从markdown文件获取日期.并且呈现如下:

2012年12月26日

有关额外阅读,请参阅这些链接

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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...