Назначение пользовательской даты поля переменной в LocomotiveCMS
Я пытаюсь назначить дату переменной, чтобы разбить макет. Возможно, есть лучший способ сделать это, поэтому не стесняйтесь рекомендовать альтернативы.
У меня есть модель для 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
, но кажется, что вы не можете сделать произвольный Ruby in Liquid. Есть ли способ достичь того, чего я хочу, здесь?
Спасибо за твою помощь!
1 ответ
Благодаря полезному человеку в группе Google, capture
мне был указан тег, который фиксирует вещи, которые иначе были бы выведены на странице, в переменную:
Вместо этого (или различных итераций, которые я пробовал с assign
):
{% assign curYear = news.news_date.year %}
Это прекрасно работает, используя преимущества format_date
фильтр:
{% capture curYear %} {{ news.news_date | format_date: '%Y' }} {% endcapture %}