微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐