虽然这样的东西在 assemble.io 页面中有效:
---
title: "My title"
woo: <%= title %>
---
(即 {{woo}} 将“我的标题”输出到页面),如果我在部分内容中有相同的内容,则“woo”中没有任何内容。有谁知道这是设计使然,还是我做错了什么?
谢谢!
虽然这样的东西在 assemble.io 页面中有效:
---
title: "My title"
woo: <%= title %>
---
(即 {{woo}} 将“我的标题”输出到页面),如果我在部分内容中有相同的内容,则“woo”中没有任何内容。有谁知道这是设计使然,还是我做错了什么?
谢谢!
在Assemble中,约定是使用 YAML 前端作为“this”的值,并且部分的上下文应该使用部分的名称作为上下文中的第一个路径来命名。
因此,在页面中,您可以按照您的说明进行操作,但是如果使用部分命名alert.hbs
,您将不得不执行类似的操作{{alert.title}}
,或者:
{{#alert}}
{{title}}
{{/alert}}
我们知道这可能有点令人困惑,而且 IMO 有点令人沮丧,因为 YAML 前端的工作方式与页面的部分内容不同,但是在解决这个 Handlebars 问题之前,我们必须忍受该库的限制:https ://github.com/wycats/handlebars.js/issues/392 (Assemble 现在也支持 Swig 模板,但这并不能为您解决这个问题)。
最后,您可以创建自定义助手来解决它。assemble-yaml库具有在模板中访问 YAML 前端的方法(yfm项目显示了一些替代方案和示例,说明如何在模板中使用来自 YFM 的上下文),它们是用于创建 Handlebars 助手的grunt-init 模板。