口ひげとハンドルバーの両方が素晴らしいです。個々のシンプルさと卓越性のために、私はそれらの両方が好きです. Mustache は 1 つのテンプレートであるため、多くの場所やハンドルバーで機能します。追加の機能がいくつかあるためです。
私が抱えている課題は、タグがペアになっていてセパレーターがないHTMLまたはその他のドキュメント構造を出力するために実装されているように見えることです。
さらに明確にするために、リストに出力されるアイテムの配列がある場合、これはうまく機能します。
<ul>
{{#each items}}
<li>{{name}}</li>
{{/each}}
</ul>
これはうまくいきます。しかし、JSON のようなものを出力したい場合:
[
{{#each items}}
{ name:{{name}} }
{{/each}}
]
JSON ではリスト内の項目を区切るコンマが必要なため、これは機能しません。また、最も内側の '}' の後にコンマを入れることはできません。これもエラーの原因になるからです。
オプションの区切り属性を #each に追加するか、#join を追加するように人々が要求した投稿/推奨事項がいくつかあります。あるコミッターは、コアをシンプルにする必要があるため、プラグインとして実装する必要があると述べました。
政治はさておき。JavaScript オブジェクトを JSON 文字列としてフォーマットできることは、テンプレートに適しているようです。
**最後のアイデア。実際には、JavaScript オブジェクトを再構成するためのより優れた Javascript イディオムが存在する可能性があります。それを考えるのも面白いと思います。
PS: 私がこのテンプレートを気に入っている理由の 1 つは、それが自己文書化されるからです。
アップデート:
handlebarsjs チームの @Kevin は、私が欠けていた機能を実装する「ヘルパー」関数を作成することができました。すぐにコアにするのは好きではありませんが、そのコードは機能しました:
[
{{#join items sep=','}}
{ name:{{name}} }
{{/join}}
]