使用Assemble模板继承

时间:2013-08-02 11:15:27

标签: handlebars.js template-engine gruntjs assemble

是否可以在模板中定义区域,从页面中提取内容?

我们说我的模板中有以下结构:

<div class=sidebar></div>
<div class=content></div>

从页面内容来看,我想将一些html内容提取到侧边栏,将其他内容提取到内容div。

这可能吗?

2 个答案:

答案 0 :(得分:2)

使用Swig作为引擎

是的,这是可能的。 Seehttps://github.com/assemble/boilerplate-swig,特别是this example,它展示了如何使用{% macro %}标签来完成您所询问的内容。

如果您想使用Swig,请务必将自述文件视为assemble-swig回购。您必须将swig注册为汇编中的当前引擎:

assemble: {
  options: {
    engine: 'swig'
  }
}

将把手作为引擎

如果侧边栏内容始终相同,则在每个页面上都可以使用部分内容。即使每个页面上的URL或活动类都发生了变化,这也应该有效。

但是,使用模板或“块”继承的动态内容,例如,使用Handlebars helpers可以实现extend

但由于layoutsassemble一起使用,这对于“开箱即用”的助手来说有点棘手。为了澄清,几乎任何我能想到的帮助器都可以很好地与开箱即用组装在一起,除此之外 - 特别是因为布局如何工作。

我的建议是你在汇编和/或把手助手项目中添加现有的功能请求,以添加你的用例和想要实现的想法:

答案 1 :(得分:1)

@jonschlinkert你应该更新汇编文档,因为汇编开始并不容易,很多事情都没有隐藏。

所以路易斯,你可以尝试这种方法,这对我来说也很有用!

Assemble: Multiple points of content insertion in layout?