Jade — прежнее название шаблонизатора, который развивается как Pug. Ниже разобраны теги, атрибуты, экранирование, условия, циклы, include и mixin. Отдельные примеры старого Jade сохранены для чтения существующих шаблонов; рядом с отличающимися API приведён действующий вариант Pug.
JSman / КОМПОНЕНТЫ
Интерфейс для чтения
Те же компоненты, которые используются в справочниках, поиске и JSON-мастерской.
Текст и навигация
Jade · исторический синтаксисДействия и поля
Как устроено оглавление
Ссылки ведут к реальным заголовкам. Код в Jade.
Моделирование данных
Вложенные документы и ссылки на примере настоящей главы.
Состояния поиска
Ниже — подписанные примеры сообщений, не результаты запроса. Выполнить настоящий поиск.
Введите слово или фразу. Например: middleware, индекс или экранирование.
Ищем в библиотеке…
Ничего не найдено. Попробуйте короче или другое слово; все материалы доступны в оглавлении.
Не удалось загрузить индекс поиска. Обновите страницу или откройте оглавление библиотеки.
Код и таблица из Jade
Области доступны клавиатурой и прокручиваются отдельно.
| Параметр старого Jade | Для чего он использовался | Как разбирать его при работе с Pug |
|---|---|---|
scope |
Задавал значение this для шаблона. |
В текущей публичной справке Pug такой параметр не описан. Передавайте данные явно в полученную функцию fn(locals), а не рассчитывайте на старое управление контекстом. |
self |
Помещал локальные переменные в пространство имён self; по умолчанию выключен. |
Документирован и в Pug. При {self: true} обращайтесь к данным как self.name, а не name. Это изменение доступа к данным, а не проверка их безопасности. |
locals |
Объект значений, доступных шаблону. | У скомпилированной функции данные передаются аргументом: fn({name: 'Анна'}). У render и renderFile объект опций одновременно содержит данные. Не предполагайте, что обёртка {locals: ...} нужна любому методу. |
filename |
Имя файла для сообщений об ошибке и разрешения include. | Документированное имя компилируемого файла; требуется для относительных include и extends. При компиляции строки задайте его сами, а при renderFile путь известен из аргумента. Не позволяйте посетителю выбирать произвольный путь. |
debug |
Печатал токены и тело сгенерированной функции. | В Pug выводит диагностическую информацию о компиляции в stdout. Это не режим показа ошибки посетителю; такой вывод может раскрыть исходный шаблон в журнале. |
compiler |
Позволял заменить компилятор Jade. | Старый контракт подмены компилятора не описан в текущей публичной справке Pug. Не переносите этот объект как совместимый параметр; используйте документированные pug.compile и pug.compileClient, а расширения проверяйте отдельно. |
compileDebug |
При false убирал отладочные сведения из скомпилированного шаблона. |
В Pug управляет информацией для диагностики ошибок шаблона. Отличается от печати через debug; учитывайте различия режима Express production и обычной компиляции. Сам флаг не заменяет безопасную обработку ошибок приложения. |
inline |
Управлял включением вспомогательных функций Jade в результат. | Не переносите это имя молча. В Pug документирован inlineRuntimeFunctions: для семейства compileClient он по умолчанию включён, для других вариантов компиляции и рендеринга — выключен. Внешний runtime должен соответствовать компилятору. |
const pug = require('pug');
const template = pug.compile('p= self.name', {self: true});
const html = template({name: '<Анна>'});
// <p><Анна></p>
Публичный API
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000);Историческое изображение

Работающий JSON-инструмент
Готово к проверке