express-snakeskin

0.0.2 • Public • Published

express-snakeskin

Шаблоны Snakeskin в express !

Установка

$ npm install --save express-snakeskin

Использование

Настройка веб приложения

var snakeskin = require('express-snakeskin');
app.engine('ss', snakeskin);
app.set('view engine', 'ss');
// app.set ( 'views', ... )
// app.render ... 

Использование

user.ss

{template user()}
    {@name}
{/template}

app.js

res.render('user', { name: 'ColCh' }, function(err, html){
  // ... всё как обычно
});

Подробнее

  • Исключения, брошенные на уровне 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.render('user', options);

Имя этого свойства находится в snakeskin.specialprop и может переназначаться:

// На этапе конфигурации
snakeskin.specialprop = 'snakeskin options';
 
// На этапе ответа
var options = {
    'snakeskin options': {
        // ...
    }
}
res.render('user', options);

options по для всех

Можно определить объект с настройками Snakeskin по умолчанию. Объект с настройками по умолчанию будет сливаться с переданным в render, без глубокого копирования

// конфигурация
snakeskin.options({
    coldCache: true 
    // аналогично с остальными
});
 
// Если рядом с user.ss будет user.ss.js, то будет использован он
res.render('user', { name: 'ColCh' });
 
// user.ss.js не будет использоваться
res.render('user', { name: 'ColCh', _ss: {coldCache: false} });

Структура объекта options и его значения по умолчанию

{
        // Boolean. Если true, будет искать и выполнять файл *.ss.js в той же папке, что и *.ss
        coldCache: false,
         // Array. Аргументы к исполняемой главной функции
        mainArgs: [],
        // String. Имя главной функции
        mainTemplate: ''
}

Package Sidebar

Install

npm i express-snakeskin

Weekly Downloads

2

Version

0.0.2

License

MIT

Last publish

Collaborators

  • colch