繁体   English   中英

类似胡子的模板语言有扩展吗?

[英]Mustache-like templating language with extends?

我喜欢胡子式模板语言的最小化 - 我现在正在使用胡子和icanhasmustache,但我也检查了车把hogan

但是,我需要一个'extends'类型的功能,以允许子进程引用特定的父模板。 我找不到关于如何在上面的任何一个中实现扩展的文档,但我已经看到(来自随机githib gists)其他人似乎正在这样做。

注意 :我知道包含(有时称为部分)的存在,但这些似乎是父母引用特定的孩子。 这与我正在寻找的相反 - 在这种情况下,儿童模板是真正的“基础”文件,父母只是偶然的,所以我希望孩子控制这种关系。

2016回答

如果您使用快速,则布局中间件采用您可能觉得有用的layout选项。

res.render('page', { layout: 'mylayout.jade' })

原始答案 :很少有JS库实现'扩展'类型的功能。

  • Nun非常像小胡子,但仅限服务器(并且不再维护)
  • Swig已经延伸,但不是很像胡子。
  • Jade已经扩展并在浏览器中工作,但不像胡子那样

我决定使用Dust.JS ,因为它使用类似胡子的部分,可以在客户端和服务器上运行,并支持从子进程中覆盖父进程上的块,从而提供有效的扩展支持。

请参阅灰尘文档“块和内联部分”部分:

{>base_template/}
{<title}
  Child Title
{/title}
{<main}
  Child Content
{/main}

覆盖父模板中的“标题”和“主要”部分,保留周围的内容。

我正在研究Nunjucks,它承诺解决一些问题以及支持继承。

编辑:

我确实收养了Nunjucks,到目前为止它非常稳固。 我遇到的一个限制是您不能指定多个文件夹进行预编译,但我编写了一个允许它的脚本。

Twitter的Mustache,Hogan的实现似乎现在支持继承。

看到最近的提交: Hogan 3.添加模板继承...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM