Включаемые области

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

Включаемые области создаются в каталоге _includes.

Рассмотрим пример использования включаемых областей на примере компонента icon.

Компонент icon.html

Создадим в каталоге _includes подкаталог component и внутри него файл icon.html, который будет содержать разметку.

<svg class="{{ include.class | default: '' }}" width="{{ include.width | default: 16 }}"
     height="{{ include.height | default: 16 }}" aria-hidden="{{ include.aria-hidden | default: true }}" {{ include.other | default: '' }}>
  <use xlink:href="#{{ include.icon }}"></use>
</svg>

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

{% include component/icon.html class='icon icon-arrow' width=24 height=24 aria-hidden='false' icon='arrow' %}

Разберем подробней, что означает каждый параметр.

# подключаем файл из каталога _includes/component/icon.html
# include подключает файлы только в каталоге _includes, но не за ее пределами
include component/icon.html

# это пользовательские параметры которые могут быть названы как угодно и иметь произвольные значения
# эти значения будут попадать внутрь подключаемого файла _includes/component/icon.html
# и там использоваться
class='icon 
icon-arrow' 
width=24 
height=24 
aria-hidden='false' 
icon='arrow'

Внутри файла icon.html, чтобы получить значение переданных параметров используется конструкция include.<param>. Например include.class, include.icon, include.width и т.д.