1

このようなものは assemble.io ページで機能しますが:

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

(つまり、{{woo}} はページに「My title」を出力します)、部分的に同じものがある場合、「woo」には何もありません。これが設計によるものなのか、それとも私が何か間違っているのか、誰かが知っていますか?

ありがとう!

4

1 に答える 1

2

Assembleでは、"this" の値として YAML フロント マターを使用するという規則があり、パーシャルのコンテキストは、パーシャルの名前をコンテキストの最初のパスとして使用して名前空間を指定する必要があります。

したがって、ページでは、あなたが指摘したように行うことができますが、という名前の部分では、または次alert.hbsのようなことをする必要があります:{{alert.title}}

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

これが少し混乱する可能性があることはわかっています.YAMLフロントマターはパーシャルでページと同じように機能しないため、IMOは少しイライラしますが、このHandlebarsの問題が解決されるまで、そのライブラリの制限に耐えなければなりません: https ://github.com/wycats/handlebars.js/issues/392 (Assemble は Swig テンプレートもサポートするようになりましたが、この問題は解決しません)。

最後に、それを回避するカスタム ヘルパーを作成できます。assemble-yaml lib には、テンプレートで YAML フロント マターにアクセスするためのメソッドがあり ( yfmプロジェクトは、テンプレートで YFM からのコンテキストを使用する方法についていくつかの代替案と例を示しています)、それらはHandlebars ヘルパーを作成するためのgrunt-init テンプレートです。

于 2013-09-19T22:05:46.357 に答える