Liquid — различия между версиями
Материал из Insales Wiki
(→Теги) |
As (обсуждение | вклад) (→Фильтры) |
||
Строка 29: | Строка 29: | ||
Фильтры - это набор функций, которыми можно преобразовать вывод данных, например: | Фильтры - это набор функций, которыми можно преобразовать вывод данных, например: | ||
− | + | <pre> Привет, {{ name | upcase }}!</pre> | |
<pre> В слове 'магазин' {{ 'магазин' | length }} букв</pre> | <pre> В слове 'магазин' {{ 'магазин' | length }} букв</pre> | ||
<pre> {{ product.sale_price | money }} </pre> | <pre> {{ product.sale_price | money }} </pre> | ||
+ | |||
+ | Можно использовать несколько фильтров подряд: | ||
+ | |||
+ | <pre> {{ array | sort | last }} </pre> | ||
+ | |||
==== Список стандартных фильтров ==== | ==== Список стандартных фильтров ==== |
Версия 15:47, 9 апреля 2009
Содержание
Введение
Liquid - простой и в тоже время очень гибкий язык для создания шаблонов. В нем два типа разметки: Вывод данных и Тег. Полную документацию на английском языке можно посмотреть тут - http://www.liquidmarkup.org.
- Вывод данных
{{ 'hello world!' }}
- Теги
{% for item in array %}
Вывод данных
Пример вывода данных:
Привет, {{ 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 символов
- 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 # => последняя колонка?