Liquid
Материал из Insales Wiki
Версия от 08:18, 22 сентября 2009; As (обсуждение | вклад)
Содержание
Введение
Язык шаблонов Liquid был разработан компанией jadedPixel в рамках проекта shopify.com и сейчас является open source проектом, более подробная информация о нем, а так же полная документация на английском языке находится на сайте http://www.liquidmarkup.org/. Более подробная инструкция http://wiki.github.com/tobi/liquid/liquid-for-designers .
Вывод данных
Пример вывода данных:
Привет, {{ name }}!
Привет, {{ user.name }}!
Привет, {{ 'Имярек' }}!
Фильтры
Фильтры - это набор функций, которыми можно преобразовать вывод данных, например:
Привет, {{ name | upcase }}!
В слове 'магазин' {{ 'магазин' | length }} букв
{{ product.sale_price | money }}
Можно использовать несколько фильтров подряд:
{{ array | sort | last }}
Список стандартных фильтров
- capitalize – сделать первую букву строки заглавной
- date – преобразовать дату в нужный формат
- downcase – привести строку к нижнему регистру
- first – вернуть первый элемент массива
- join – соединить элементы массива в строку
- last – вернуть последний элемент массива
- size – вернуть размер массива или строки
- sort – отсортировать массив
- strip_html – вырезать html-теги
- truncate – обрезать строку до x символов
- truncatewords - обрезить строку до x слов
- upcase – привести строку к верхнему регистру
Теги
Теги используются для управления выводом в шаблоне.
Комментарии
{% comment %} закомментированный текст {% endcomment %}
Условия if / else
{% if user %} Привет {{ user.name }} {% endif %}
Цикл For
Цикл для обхода массивов
{% for item in array %} {{ item }} {% endfor %}
При обходе массива доступны дополнительные переменные:
forloop.length # => количество элементов в массиве forloop.index # => номер текущей итерации forloop.index0 # => номер текущей итерации (считая от нуля) forloop.rindex # => сколько элементов осталось forloop.rindex0 # => сколько элементов осталось (считая от нуля) forloop.first # => первая итерация? forloop.last # => последняя итерация?
Можно задавать сдвиг и максимальное числое элементов для обхода:
# array = [1,2,3,4,5,6] {% for item in array limit:2 offset:1 %} {{ item }} {% endfor %} # 2,3
Таблицы
По аналогии с циклом for можно создавать таблицы:
{% tablerow item in items cols: 2 limit: 6 %} {{ item }} {% endtablerow %}
Дополнительные переменные, доступные при обходе массива:
tablerowloop.length # => количество элементов в массиве tablerowloop.index # => номер текущей итерации tablerowloop.index0 # => номер текущей итерации (считая с нуля) tablerowloop.rindex # => сколько элементов осталось tablerowloop.rindex0 # => сколько элементов осталось (считая с нуля) tablerowloop.first # => первый элемент? tablerowloop.last # => последний элемент? tablerowloop.col # => номер колонки в текущей строчке tablerowloop.col0 # => номер колонки в текущей строчке (считая с нуля) tablerowloop.col_first # => первая колонка? tablerowloop.col_last # => последняя колонка?