如何包含 YMF 中定义的部分 (Assemble.io / Handlebars.js)

How to include Partials defined in YMF (Assemble.io / Handlebars.js)

我使用assemble.io为一个简单的网页生成一些静态文件。

现在我想在 YAML Front Matter 中定义一个部分列表,它应该包含在生成的页面中。

我要这个

<div class="slides">
  {{>slide-intro}}
  {{>slide-welcome}}
  {{>slide-goodbye}}
</div>

被这样的东西代替:

---
slides:
  - slide-intro
  - slide-welcome
  - slide-goodbye
---
<div class="slides">
  {{#each slides}}
    {{>this}}
  {{/each}}
</div>

所以,我想使用存储在this(例如slide-welcome)中的变量内容作为要包含的部分的名称。

我看到使用 {{>this}} 不起作用,但我不知道在哪里寻找解决方案。

有人可以帮我吗?

引入了 Handlebars 3 Dynamic Partials,您可以像这样使用它们:

---
slides:
  - slide-intro
  - slide-welcome
  - slide-goodbye
---
<div class="slides">
  {{#each slides}}
    {{> (lookup ../slides @index) }}
  {{/each}}
</div>

但是,assemble 0.4.x 使用的是 Handlebars 1,所以切换到 grunt-assemble,它使用 Handlebars 3。grunt-assemble 是基于相同的代码, 它只是被移动以反映它是一个 grunt 插件。