我试着给一个变量赋值一个日期,目的是打破布局。也许有一种更好的方法可以做到这一点,所以请随时推荐替代方案。
我有一个用于news_items的模型,它有一个名为news_date的日期字段。每当遇到新的一年时,我想要浏览每个模型条目并开始一个新的部分。我的计划非常基本:
{% assign curYear = "" %}
{% for news in contents.news_items %}
{% assign prevYear = curYear %}
{% assign curYear = news.news_date.year %} <-- this does not work
{% if prevYear != curYear %}
<h1>Press Releases for {{ news.news_date | format_date: '%Y' }}</h1>
{% endif %}
<p>{{curYear}}</p> <-- this is always empty
<p>{{news.content}}</p>
{% endfor %}我尝试了各种其他语法,比如Time.parseTime(news.news_date).year,但似乎不能在Liquid中执行任意的Ruby。有什么方法可以实现我想要的吗?
感谢您的帮助!
发布于 2012-09-02 08:19:50
感谢谷歌小组中的一位乐于助人的人,他们向我指出了capture标记,它捕获了原本会在页面上输出到变量中的内容:
而不是这样(或者我用assign尝试的各种迭代):
{% assign curYear = news.news_date.year %} 利用format_date过滤器,这可以很好地工作:
{% capture curYear %} {{ news.news_date | format_date: '%Y' }} {% endcapture %}https://stackoverflow.com/questions/12223440
复制相似问题