Шаблонизатор
Шаблонизатор
Заголовок раздела «Шаблонизатор»Рендеринг шаблонов с помощью CloudyKit Jet.
Типы записей
Заголовок раздела «Типы записей»| Тип | Описание |
|---|---|
template.set | Набор шаблонов с общей конфигурацией |
template.jet | Отдельный шаблон |
Наборы шаблонов
Заголовок раздела «Наборы шаблонов»Набор — это пространство имён для связанных шаблонов. Шаблоны внутри набора разделяют конфигурацию и могут ссылаться друг на друга по имени.
- name: views kind: template.setВсе настройки необязательны и имеют разумные значения по умолчанию:
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
engine.development_mode | bool | false | Отключить кеширование шаблонов |
engine.delimiters.left | string | {{ | Открывающий разделитель |
engine.delimiters.right | string | }} | Закрывающий разделитель |
engine.globals | map | - | Переменные, доступные во всех шаблонах |
Шаблоны
Заголовок раздела «Шаблоны»Шаблоны принадлежат набору и идентифицируются по имени для внутреннего разрешения ссылок.
- name: layout kind: template.jet set: app.views:views source: | <html> <body>{{ yield content() }}</body> </html>
- name: home kind: template.jet set: app.views:views source: | {{ extends "layout" }} {{ block content() }} <h1>Добро пожаловать, {{ name }}</h1> {{ end }}| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
set | reference | Да | Родительский набор шаблонов |
source | string | Да | Содержимое шаблона |
Разрешение шаблонов
Заголовок раздела «Разрешение шаблонов»Шаблоны ссылаются друг на друга по именам, а не по ID реестра. Разрешение работает как виртуальная файловая система внутри набора:
- По умолчанию имя записи (
entry.ID.Name) становится именем шаблона - Переопределите через
meta.nameдля кастомного именования:
- name: email-welcome-v2 kind: template.jet set: app.emails:templates meta: name: welcome source: | {{ include "header" }} Привет, {{ user }}!Этот шаблон регистрируется как welcome в наборе, так что другие шаблоны используют {{ include "welcome" }} или {{ extends "welcome" }}.
Наследование
Заголовок раздела «Наследование»Шаблоны могут расширять родительские и переопределять блоки:
# Родитель определяет точки вставки- name: base kind: template.jet set: app.views:views source: | <html> <head><title>{{ yield title() }}</title></head> <body>{{ yield body() }}</body> </html>
# Потомок расширяет и заполняет блоки- name: page kind: template.jet set: app.views:views source: | {{ extends "base" }} {{ block title() }}Моя страница{{ end }} {{ block body() }}<p>Контент</p>{{ end }}Lua API
Заголовок раздела «Lua API»См. Модуль Template для операций рендеринга.
См. также
Заголовок раздела «См. также»- Модуль Template — справочник Lua API
- Файловая система — загрузка шаблонов с диска
- HTTP Endpoint — рендеринг шаблонов из обработчиков запросов