Язык шаблонов Liquid

Liquid - это язык шаблонов, созданный Shopify, который используется многими различными программными проектами и компаниями.

Основная задача Liquid - вставка динамического контента в шаблонах.

Что такое язык шаблонов?

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

Пример:

Спасибо за заказ {{ name }} на сумму {{ sum }}.

Синтаксис Liquid

Как и в традиционных языках программирования, Liquid имеет синтаксис, взаимодействует с переменными и включает такие конструкции, как вывод и логика. Благодаря удобочитаемому синтаксису конструкции Liquid легко распознаются и отличаются от обычного текста двумя наборами разделителей: разделителями с двойными фигурными скобками {{ }}, которые обозначают выходные данные, и разделителями с фигурными скобками в процентах {% %}, которые обозначают логику.

Существует три основных особенности кода Liquid:

Массивы

Массивы выводят фрагменты данных из документов МоегоСклада. В шаблоне темы объекты заключены в двойные фигурные скобки {{ }}и выглядят так:

Спасибо за заказ, {{ agent.name }}

В приведенном выше примере мы выводим переменную name (название) из массива agent (контрагент).

{{ agent.name }} - одна из множества переменных Liquid, который можно применить в вашем шаблоне. Полный список объектов и переменных в них, доступный для того или иного документа МойСклад можно найти в справочнике "Язык Шаблонов" на странице создания или редактирования шаблонов.

Когда происходит событие шаблона (например, у вас настроен шаблон на отправку SMS при создании заказа), приложение заменяет объекты Liquid в тексте SMS на данные из документа. Таким образом объект {{ agent.name }} заменится в тексте SMS на название контрагента.

Спасибо за заказ, ООО "РОГА И КОПЫТА"

Теги

Теги Liquid используются для создания логики внутри шаблонов. Теги {% %} и текст внутри не отображаются при генерации текста SMS, но позволяют назначать переменные и создавать условия или циклы.

Например, вы можете использовать теги Liquid для отображения различного содержимого в тексте SMS в зависимости от того, выполняется ли условие:

{% if applicable == true %}
Документ проведен
{% else %}
Документ не проведен
{% endif %}

В примере выше применяется тэги выполнения условия {% if %} и {% else %}

Тэги Liquid можно категоризировать следующим образом:

Фильтры

Фильтры используются для изменения вывода чисел, строк, объектов и переменных. Они помещаются в выходной тег {{ }}и обозначаются символом |.

Простой пример - capitalizeстроковый фильтр:

{{ 'hello, world!' | capitalize }}
{{ agent.name | capitalize }}

Фильтр изменяет строку, меняя первую букву каждого слова на заглавную. Выход будет:

Hello, World
ИП Иванов Иван Иванович

Несколько фильтров могут быть использованы на одном объекте, и они применяются слева направо:

{{ 'hello, world!' | capitalize | remove: "world" }}
{{ agent.namt | capitalize | remove: "ИП" }}

Строка начинается с заглавной буквы, а затем слово worldудаляется. Выход будет:

Hello, !
Иванов Иван Иванович

Вы можете использовать фильтры для разнообразных полезных манипуляций с данными. Они подразделяются на 4 типа: