Назначение пользовательской даты поля переменной в 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 %}
Другие вопросы по тегам