При визуализации шаблонов jade в экспресс вы можете настроить приложение с помощью 'view options', { layout: true }
, а развернутые шаблоны автоматически подключатся к локальному шаблону макета body
.Рендеринг шаблона нефрита с макетом (без экспресс)
Я пытаюсь получить эквивалентные файлы рендеринга поведения от node.js, но без явной структуры (я просто создаю статические файлы как часть более крупного конвейера).
Там, кажется, два варианта:
- нагрузки как основной шаблон и расположение, конвертировать в функцию, делает шаблон первым, а затем передать результаты функции макета
- Используйте стандартный шаблон наследование и блочную структуру, но затем я явно использую именованные блоки
Это единственные варианты (которые, справедливо, все еще удивительны), или я пропустил какой-то трюк?
Редактировать
Вот грубый срез первого варианта в случае, если кто интересуется:
// Load jade
var jade = require('jade');
// Load actual template text
var layout = fs.readFileSync('layout-path', 'utf8')
tpl = fs.readFileSync('tpl-path', 'utf8');
// Compile template rendering function
layout = jade.compile(layout, { pretty: true, filename: 'layout-path' });
tpl = jade.compile(tpl, { pretty: true, filename: 'tpl-path' });
// Render jade template, passing in the info
var output = layout({ body: tpl({ local1: some_var, local2: some_var }) }
// Write rendered content to file
fs.writeFileSync('output.html', output);
Я думаю, что Express 3.0 сбрасывает макет (как минимум, по умолчанию) в пользу наследования шаблона с именованными блоками, поэтому, возможно, это поможет в вашем решении: http://groups.google.com/group/express -js/browse_thread/thread/2ec558510be6d0a4 (и см. также заглушку, сгенерированную express.js при инициализации нового проекта: https://github.com/visionmedia/express/blob/master/bin/express). – mna
@PuerkitoBio Спасибо за информацию; Стоит отметить, но мой реальный вопрос - это единственные способы сделать это *? Люди, которые объединяют эти вещи, часто встраивают короткое замыкание в обычные случаи использования - я просто не всегда достаточно умен, чтобы их найти! –
@ AJ. спасибо за фрагмент. –