Assemble.io - 是否可以在部分的YAML前端使用lodash

时间:2013-09-18 11:43:20

标签: yaml handlebars.js gruntjs lodash assemble

虽然这样的东西适用于assemble.io页面:

---
title: "My title"
woo: <%= title %>
---

(即{{woo}}输出'我的标题'到页面),如果我在部分中有相同的东西,'呜'中什么都没有。有谁知道这是设计,还是我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

Assemble中,约定是使用YAML前端事物作为“this”的值,并且partials的上下文应该使用partial的名称作为上下文中的第一个路径来命名。

因此,在页面中,您可以按照您的说明进行操作,但如果部分名为alert.hbs,则必须执行{{alert.title}}或<:p>之类的操作。

{{#alert}}
  {{title}}
{{/alert}}

我们知道这可能有点令人困惑,而IMO有点令人沮丧,因为YAML前端问题在页面部分中的工作方式不同,但在解决了Handlebars问题之前,我们必须忍受其局限性图书馆:https://github.com/wycats/handlebars.js/issues/392 (现在,Assemble也支持Swig模板,但这并不能解决这个问题)。

最后,您可以创建自定义帮助程序来解决它。 assemble-yaml lib具有访问模板中YAML前端内容的方法(yfm项目显示了一些替代方案和示例,说明如何在模板中使用来自YFM的上下文),它们是grunt-init template用于创建Handlebars助手。