mik*_*ana 4 javascript mustache client-side-templating hogan.js
我喜欢胡子式模板语言的最小化 - 我现在正在使用胡子和icanhasmustache,但我也检查了车把和hogan.
但是,我需要一个'extends'类型的功能,以允许子进程引用特定的父模板.我找不到关于如何在上面的任何一个中实现扩展的文档,但我已经看到(来自随机githib gists)其他人似乎正在这样做.
注意:我知道包含(有时称为部分)的存在,但这些似乎是父母引用特定的孩子.这与我正在寻找的相反 - 在这种情况下,儿童模板是真正的"基础"文件,父母只是偶然的,所以我希望孩子控制这种关系.
2016回答:
如果您使用快速,布局中间件会layout选择一个您可能会觉得有用的选项.
res.render('page', { layout: 'mylayout.jade' })
Run Code Online (Sandbox Code Playgroud)
原始答案:很少有JS库实现'扩展'类型的功能.
我决定使用Dust.JS,因为它使用类似胡子的部分,可以在客户端和服务器上运行,并支持从子进程中覆盖父进程上的块,从而提供有效的扩展支持.
请参阅灰尘文档"块和内联部分"部分:
{>base_template/}
{<title}
Child Title
{/title}
{<main}
Child Content
{/main}
Run Code Online (Sandbox Code Playgroud)
覆盖父模板中的"标题"和"主要"部分,保留周围的内容.
我正在研究Nunjucks,它承诺解决一些问题以及支持继承.
编辑:
我确实收养了Nunjucks,到目前为止它非常稳固.我遇到的一个限制是您不能指定多个文件夹进行预编译,但我编写了一个允许它的脚本.