Полезные куски кода Liquid
88Shopify

Подборка рецептов для шаблонизатора Liquid. Разработчику в Shopify без него вообще никак. Поэтому рад делиться наработками.

Liquid: операторы сравнения

Операторы сравнения в liquid могут применяться к чему угодно, лишь бы было значение. По сути вы спокойно можете применить его к метке продукта.

{% if product.tags contains "Hello" %}
  Любой продукт с меткой "Hello".
{% endif %}

Я же для удобства демонстрации создал переменную 18, чтобы вам было проще вникать.

#assign - Создает новую именованную переменную
{% assign number_18 = '18' %}
========================================================================
#равно
{% if number_18 == 18 %}
  код для значения 18
{% endif %}
----------------------------------------------------------------------
#не равно
{% if number_18 != 18 %}
  код для значения не 18
{% endif %}
----------------------------------------------------------------------
# больше чем
{% if number_18 > 19 %}
  код для значения больше 18
{% endif %}
----------------------------------------------------------------------
#меньше, чем
{% if number_18 < 17 %}
  код для значения меньше 18
{% endif %}
----------------------------------------------------------------------
# больше или равно
{% if number_18 >= 19 %}
 код для значения 18 и более 
{% endif %}
----------------------------------------------------------------------
# меньше или равно
{% if number_18 <= 17 %}
 код для значения 18 и меньше
{% endif %}
----------------------------------------------------------------------
#логично или 
{% if number_18 or 17 or 281 %}
 код для значения 18 или 17 или 281
{% endif %}
----------------------------------------------------------------------
#логично и
{% if number_18 and 17 %}
 код для значения 18 или 17
{% endif %}
----------------------------------------------------------------------

Liquid Нумерованные списки

В данном шаблонизаторе есть отличные варианты для создания нумерованных списков для программистов: increment и decrement.

Важно! Тут шутка в том, что программисты считают с 0, а не с 1 как все обычные люди.

increment - Создает новую числовую переменную и увеличивает ее значение на единицу каждый раз, когда она вызывается. Начальное значение 0.

<ul>
  <li class="item-{% increment counter %}">apples</li>
  <li class="item-{% increment counter %}">oranges</li>
  <li class="item-{% increment counter %}">peaches</li>
  <li class="item-{% increment counter %}">plums</li>
</ul>
========================================================================
Выведет:
<ul>
  <li class="item-0">apples</li>
  <li class="item-1">oranges</li>
  <li class="item-2">peaches</li>
  <li class="item-3">plums</li>
</ul>

decrement - Создает новую числовую переменную и уменьшает ее значение на 1 каждый раз, когда decrementвызывается переменная. Начальное значение счетчика -1.

{% decrement variable %}
{% decrement variable %}
{% decrement variable %}
Выведет:
========================================================================
Выведет:
-1
-2
-3

А как создать список список который начинается с 1? Только использовать {{ forloop.index }}

<ul>
  <li class="{{ forloop.index }}">{{ NAME }}</li>
  <li class="{{ forloop.index }}">{{ NAME }}</li>
  <li class="{{ forloop.index }}">{{ NAME }}</li>
</ul>
========================================================================
Выведет:
<ul>
  <li class="item-1">any value</li>
  <li class="item-2">any value</li>
  <li class="item-3">any value</li>
</ul>