当你在express中渲染jade模板时,你可以使用
我正在尝试从node.js渲染文件来实现相同的行为,但没有使用express框架(我只是作为更大流程的一部分构建静态文件)。
似乎有两个选择:
'view options',{ layout: true }
配置你的应用程序,渲染的模板将自动插入到布局模板的body
本地变量中。我正在尝试从node.js渲染文件来实现相同的行为,但没有使用express框架(我只是作为更大流程的一部分构建静态文件)。
似乎有两个选择:
- 加载主模板和布局,转换为函数,先渲染模板,然后将结果传递给布局函数
- 使用标准模板继承和块结构,但我明确地使用了命名块
编辑
如果有人感兴趣,这是第一个选项的初步版本:
// 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);