当您在Express中呈现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);
答案 0 :(得分:3)
我相信答案是“不”,你不会错过任何诡计。您概述的两个选项在我看来是使用jade生成文件的两种最直接的方法。当然也有很多非玉方法。例如,您可以将内容与plates方法,旧的String.replace
合并,或将您的布局拆分为单独的标题广告页脚片段文件,并按头,体,脚顺序连接它们。