express-snakeskin
Установка
$ npm install --save express-snakeskin
Использование
Настройка веб приложения
var snakeskin = ;app;app;// app.set ( 'views', ... )// app.render ...
Использование
user.ss
{template user()}
{@name}
{/template}
app.js
res;
Подробнее
-
Исключения, брошенные на уровне Snakeskin, поднимаются до уровня express
-
Для перевода из скомпилированного шаблона в HTML вызывается функция, совпадающая с именем файла (см. выше пример с шаблоном user). Это поведение можно изменить через
options.
(ниже будет подробнее) -
Если нет шаблона, имя которого совпадает с именем файла, вызывается функция
main
-
Можно определить имя функции, которая будет вызываться для перевода в HTML. Определяется через
options._ss
(ниже будет подробнее) -
Т.к. шаблоны в Snakeskin - это функции, то по умолчанию функция шаблона вызывается без аргументов. Передать аргументы к главной функции можно с использованием
options._ss
(ниже будет подробнее) -
Snakeskin может компилироваться в файлы
*.ss.js
, но загружаться по умолчанию они не будут. Изменяется это поведение опять таки черезoptions._ss
-
Обычное для express кеширование переключается через свойство
options.cache
options для Snakeskin
С options
можно передать объект настроек для Snakeskin через свойство _ss
.
Пример:
var options = name: 'ColCh' // переменные задаются так же _ss: coldCache: true // Boolean. Если true, будет искать и выполнять файл *.ss.js в той же папке, что и *.ss mainArgs: 1 'abc' // Array. Аргументы к исполняемой главной функции mainTemplate: 'render' // String. Имя главной функции res;
Имя этого свойства находится в snakeskin.specialprop
и может переназначаться:
// На этапе конфигурацииsnakeskinspecialprop = 'snakeskin options'; // На этапе ответаvar options = 'snakeskin options': // ... res;
options по для всех
Можно определить объект с настройками Snakeskin по умолчанию.
Объект с настройками по умолчанию будет сливаться с переданным в render
, без глубокого копирования
// конфигурацияsnakeskinoptions coldCache: true // аналогично с остальными; // Если рядом с user.ss будет user.ss.js, то будет использован онres; // user.ss.js не будет использоватьсяres;
Структура объекта options и его значения по умолчанию
// Boolean. Если true, будет искать и выполнять файл *.ss.js в той же папке, что и *.ss coldCache: false // Array. Аргументы к исполняемой главной функции mainArgs: // String. Имя главной функции mainTemplate: ''