KoaプラットフォームNode.jsをベースに開発されたKoaHub.jsのテンプレートエンジンコード
コアハブハンドルバー
コアハブハンドルバー
コアハブハンドルバーテンプレート
インストール
$ npm コアハブハンドルバーをインストールします
コアと一緒に使用してください
var koa = require('koa');
var hbs = require('koahub-handlebars');
var app = koa();
// koahub-handlebars はミドルウェアです。ビューをレンダリングする前に「使用」してください
app.use(hbs.middleware({
viewPath: __dirname + '/views'
}));
// レンダリングは koa コンテキストにアタッチされます。ミドルウェアで「this.render」を呼び出します
// レンダリングされた HTML を koa 応答本文に添付します。
app.use(function *() {
yield this.render('index', {title: 'koahub-handlebars'});
})
app.listen(3000);
ヘルパーを登録する
ヘルパーは #registerHelper メソッドを使用して登録されます。これは、デフォルトのインスタンスを使用した例です (公式ハンドルバーのドキュメントから盗まれたヘルパー:
)
hbs = require('koahub-handlebars');
hbs.registerHelper('リンク', function(text, url) {
text = hbs.Utils.escapeExpression(text);
url = hbs.Utils.escapeExpression(url);
var result = '' + テキスト + '';
新しい hbs.SafeString(result) を返します;
});
これにより、{{link "Google" "http://google.com"}} を使用してすべてのビューでヘルパーにアクセスできるようになります
registerHelper、Utils、および SafeString メソッドはすべて、内部 Handlebars インスタンスにプロキシします。 Handlebars の代替インスタンスをミドルウェア コンフィギュレーターに渡す場合は、上記の関数の koahub-handlebars プロキシ経由でヘルパーを登録する前に必ずそうするか、Handlebars インスタンス経由で直接ヘルパーを登録してください。
ヘルパーで現在の Koa コンテキストにアクセスすることもできます。現在の URL を出力するヘルパーが必要な場合は、次のようなヘルパーを作成し、任意のテンプレートで {{requestURL}} として呼び出すことができます。
hbs.registerHelper('requestURL', function() {
var url = hbs.templateOptions.data.koa.request.url;
URL を返します;
});
パーシャルの登録
パーシャルを登録する簡単な方法は、パーシャルをすべてディレクトリに保存し、ミドルウェアの生成時に PartialsPath オプションを渡すことです。ビューが ./views にあり、パーシャルが ./views/partials にあるとします。
によるミドルウェアの設定
app.use(hbs.middleware({
viewPath: __dirname + '/views',
部分パス: __dirname + '/views/partials'
}));
自動的に登録されます。あるいは、キャッシュされたハンドルバーの #registerPartial メソッドにプロキシする hbs.registerPartial を呼び出して、一度に 1 つずつパーシャルを登録することもできます。
レイアウト
レイアウト名を指定してdefaultLayoutを渡すと、すべてのテンプレートがレイアウトの {{{body}}} 式に挿入されます。これは次のようになります。
<頭>