JSman / КОМПОНЕНТЫ

Интерфейс для чтения

Те же компоненты, которые используются в справочниках, поиске и JSON-мастерской.

Текст и навигация

Jade · исторический синтаксис

Jade — прежнее название шаблонизатора, который развивается как Pug. Ниже разобраны теги, атрибуты, экранирование, условия, циклы, include и mixin. Отдельные примеры старого Jade сохранены для чтения существующих шаблонов; рядом с отличающимися API приведён действующий вариант Pug.

Пример продолжения книгиВведение →

Действия и поля

Открыть 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>&lt;Анна&gt;</p>

Публичный API

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('hello world');
});

app.listen(3000);

Историческое изображение

Веб-консоль log-my-errors: раскрытый стек PHP ошибки
Исторический экран log-my-errors из заметки 2013 года

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

Готово к проверке

Результат