我试图为一个变量分配一个日期,目的是分解布局。也许有更好的方法可以做到这一点,所以可以随意推荐替代方案。
我有一个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。有什么方法可以实现我想要的吗?
感谢您的帮助!
多亏了谷歌小组中一位乐于助人的人,capture
标签被指出给了我,它将原本会在页面上输出的东西捕获到一个变量中:
而不是这样(或者我用assign
尝试的各种迭代):
{% assign curYear = news.news_date.year %}
利用了format_date
滤波器:,这一操作效果非常好
{% capture curYear %} {{ news.news_date | format_date: '%Y' }} {% endcapture %}