是否可以在模板中定义区域,从页面中提取内容?
假设我的模板中有以下结构:
<div class=sidebar></div>
<div class=content></div>
从页面内容中,我想将一些html内容拉到侧边栏,将其他内容拉到内容div。
这可能吗?
是否可以在模板中定义区域,从页面中提取内容?
假设我的模板中有以下结构:
<div class=sidebar></div>
<div class=content></div>
从页面内容中,我想将一些html内容拉到侧边栏,将其他内容拉到内容div。
这可能吗?
以 Swig 作为引擎
是的,这是可能的。请参阅 https://github.com/assemble/boilerplate-swig,特别是这个示例,它展示了如何使用{% macro %}
标签来完成您所询问的内容。
如果您想使用 Swig,请务必将自述文件也视为assemble-swig 存储库。您必须将 swig 注册为 assemble 中的当前引擎:
assemble: {
options: {
engine: 'swig'
}
}
以车把为引擎
如果侧边栏内容始终相同,那么在每个页面上,您都可以使用部分内容。即使每个页面上的 URL 或活动类都发生了变化,这也应该有效。
然而,使用模板或“块”继承的动态内容,例如extend
可以通过Handlebars 助手来实现。
但是由于布局与assemble一起使用,因此对于“开箱即用”的帮助程序来说有点棘手。澄清一下,我能想到的几乎所有助手都可以很好地使用 assemble 开箱即用,除了这个 - 特别是因为布局的工作方式。
我的建议是您在 assemble 和/或 handlebars-helpers 项目中为此添加现有功能请求,以添加您的用例和对您想要实现的目标的想法:
@jonschlinkert 您应该更新 assemble 的文档,因为从 Assemble 开始并不那么容易,而且很多东西都很少隐藏。
所以 Luis,你可以试试这个方法,它目前对我也很有效!