Skip to content
HIRAKI Satoru edited this page Jun 2, 2014 · 2 revisions

Summary

Beezでは、テンプレートエンジンにHandlebarsが利用可能です。

開発Webサーバ、ビルドでは、handlebars.js を利用しpre-compileをおこないます。

リリースファイル(pre-compileした*.hbsc.jsファイル)のロードは、handlebars.runtime.jsを使用して実行します。

他の、テンプレートエンジンも利用可能ですが、自動コンパイル、ビルドは提供されていませんので独自で構築する必要があります。

拡張子

Handlebarsファイルの拡張子は下記になります。これはBeezの仕様になります。

  • .hbs: コンパイル前のファイル(こちらで開発を行います)
  • .hbsc.js: pre-compileしたファイル
  • .hbsp.js: pre-compile(partial)したファイル

機能

開発Webサーバにある *.hbs ファイルは自動で、 *.hbsc.js, *.hbsp.js として同一ディレクトリに自動コンパイルされます。

ビルド時に自動で *.hbs ファイルは *.hbsc.js, *.hbsp.js として同一ディレクトリに自動コンパイルされます

Handlebarsの機能はすべて利用可能です。

*.hbsp.js(Handlebars Partial)使用時の注意点

*.hbsp.js(Handlebars Partial)を使用する際は、*.hbsp.jsが何かしらの文字列を返す必要があります。 ですので以下のようなファイルを使用するとコンパイルが上手くできません。

{{if hoge}}
content
{{/if}}

この場合は以下の例のように文字列を返すように変更してください。

<div>
{{if hoge}}
content
{{/if}}
</div>

拡張

ヘルパー

i18n

Handlebarsファイルからi18nメッセージを取得することが出来ます。

エスケープしない

引数なし
{{__ 'Welcome'}}

引数あり
{{__ 'Welcome', 'aaa'}}

エスケープあり

引数なし
{{__e 'Welcome'}}

引数あり
{{__e 'Welcome', 'aaa'}}

ヘルパー作成

beez.vendor.Handlebars.registerHelper('test', function (key) {
    // ....
    return 'test';
});

Clone this wiki locally