assembleでhandlebarsを使う

assembleを利用して静的サイトを構築するでhandlebarsを利用しましたが、今回はhandlebarsの基本的な文法について簡単に紹介したいと思います。

http://handlebarsjs.com/

https://github.com/assemble/handlebars-helpers

変数

{{ }}で定義した変数を囲むだけです。

HTMLエスケープされて表示されます。

{{value}}

HTMLエスケープしたくない場合は{{{ }}}を利用します。

{{{value}}}

ハッシュのアクセさは「.」です。

{{foo.har}}

if, else, and, or, unless

{{#if a}}
{{else}}
{{/if}}

{{#and a b}}
{{/and}}

{{#or a b}}
{{/or}}

{{#unless a}}
{{/unless}}

and, or, notなどの論理演算子は利用できません。

case, switchのような構文も利用できません。

handlebars-helpersを利用すれば、いつくか条件分岐用のヘルパーがあるので、A and B, A or Bのような条件分岐をすることができます。

但し、ドキュメントが整備されていないので、各ヘルパーの利用方法及び動作についてはソースファイルを読んだ方が早いです。

独自ヘルパーも組み込みが可能なので、ある程度のことは実現可能かと思います。

each

{{this}}が現在のオフセットの変数を表しています。

{{#each a}}
{{this}}
{{/each}}

コメント

{{! コメント }}

include

assembleでoptions.partialsに設定したディレクトリ配下のファイルが、ファイル名をkeyとして内部的に登録されるため、ファイル名のみの指定になります。

handlebarsの仕様としては、ディレクトリパスからのファイル指定に対応しているのですが、assembleが対応できていないようです。

{{> templatename}}

とても簡単な紹介ではありますが、参考になれば幸いです。