Liquid — различия между версиями

Материал из Insales Wiki
Перейти к: навигация, поиск
(Цикл For)
(Цикл For)
Строка 88: Строка 88:
 
   forloop.first      # => первая итерация?
 
   forloop.first      # => первая итерация?
 
   forloop.last        # => последняя итерация?
 
   forloop.last        # => последняя итерация?
 +
 +
Можно задавать сдвиг и максимальное числое элементов для обхода:
 +
 +
<pre>
 +
# array = [1,2,3,4,5,6]
 +
{% for item in array limit:2 offset:1 %}
 +
  {{ item }}
 +
{% endfor %}
 +
# 2,3
 +
</pre>
  
 
=== Таблицы ===
 
=== Таблицы ===
  
 
=== Переменные ===
 
=== Переменные ===

Версия 21:48, 8 апреля 2009

Введение

Liquid - простой и в тоже время очень гибкий язык для создания шаблонов. В нем два типа разметки: Вывод данных и Тег. Полную документацию на английском языке можно посмотреть тут - http://www.liquidmarkup.org.

  • Вывод данных
{{ 'hello world!' }}


  • Теги
 {% for item in array %}

Вывод данных

Пример вывода данных:

 Привет, {{ name }}!
Привет, {{ user.name }}!
Привет, {{ 'Имярек' }}!


Фильтры

Фильтры - это набор функций, которыми можно преобразовать вывод данных, например:

 Привет, {{ name | upcase }}!
 В слове 'магазин' {{ 'магазин' | length }} букв
 {{ product.sale_price | money }} 

Список стандартных фильтров

  • 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

Таблицы

Переменные