是否可以在模板中定义区域,从页面中提取内容?
假设我的模板中有以下结构:
<div class=sidebar></div>
<div class=content></div>
从页面内容中,我想将一些 html 内容拉到侧边栏,将其他内容拉到内容 div。
这可能吗?
最佳答案
以 Swig 作为引擎
是的,这是可能的。参见 https://github.com/assemble/boilerplate-swig,特别是 this example ,它展示了如何使用 {% macro %}
标记来完成您所询问的内容。
如果您想使用 Swig,请务必查看自述文件作为 assemble-swig repo 也是如此。您必须在 assemble 中将 swig 注册为当前引擎:
assemble: {
options: {
engine: 'swig'
}
}
以 Handlebars 为引擎
如果侧边栏内容总是相同的,那么在每一页上你都可以使用部分内容。即使每个页面上的 URL 或事件类发生变化,这也应该有效。
但是,使用模板或“ block ”继承的动态内容,例如extend
可以用 Handlebars helpers 实现.
但是自layouts与 assemble 一起使用这对于“开箱即用”的助手来说有点棘手。澄清一下,除了这个——特别是因为布局的工作方式,我能想到的几乎所有助手都可以很好地与开箱即用的 assemble 一起工作。
我的建议是,您在 assemble 和/或 handlebars-helpers 项目上为此添加现有功能请求,以添加您的用例和对您想要实现的目标的想法:
关于handlebars.js - 在 Assemble 中使用模板继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18015532/