Жидкость: Как назначить вывод оператора переменной? - PullRequest
0 голосов
/ 24 января 2020

Я работаю с жидкими шаблонами для Shopify. Я хочу, чтобы некоторые элементы отображались только в том случае, если месяц декабрь. Поскольку есть несколько элементов, которые нуждаются в этом, я хочу установить переменную в верхней части документа и обратиться к ней позже. Вот что у меня работает:

<!-- At the top of the page -->
{% assign month = 'now' | date: "%m" %}
{% if month == "12" %}
{% assign isDecember = true %}
{% else %}
{% assign isDecember = false %}
{% endif %}

<!-- Only show in December -->
{% if isDecember %}
Happy Holidays
{% endif %}

Это работает (для тестирования я меняю «12» на текущий месяц), но это довольно уродливо. На большинстве языков я бы сделал что-то вроде этого:

{% assign isDecember = (month == "12") %}

Liquid не принимает скобки, поэтому, очевидно, это не сработает. И это не работает без скобок. В документации есть примеры для с использованием операторов и для присвоения значений stati c переменным , но ничего о объединении двух.

Я могу назначить вывод | Фильтр для переменной, но, кажется, нет фильтров для покрытия каждого оператора (или даже необходимого "=="), так что это неудовлетворительно.

Есть ли способ назначить вывод оператора переменной в Liquid?

1 Ответ

1 голос
/ 24 января 2020

Нет способа сделать это элегантно, и согласно этому они не будут поддерживать троичных операторов. Есть упоминание о том, что кто-то пробовал подобную вещь.

Немного более короткая / другая версия была бы:

{% assign month = 'now' | date: "%m" %}
{% liquid
case month
when '12'
  assign isDecember = true
else
  assign isDecember = false
endcase %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...