テンプレート エンジンの統合ライブラリ。
$ npm install consolidate
一部のパッケージには同じキー名があり、consolidate は順序番号に従ってそれらをロードします。ダストの例として、consolidate は、 dust
、 dustjs-helpers
、 dustjs-linkedin
の順序で使用しようとします。 dust
がインストールされている場合、 dustjs-linkedin
consolidate によって使用されません。
名前のcons.* | パッケージ名 / 注文 | ウェブサイト / 州 |
---|---|---|
atpl | npm install atpl | - |
ブラケット | npm install bracket-template | - |
ドット | npm install dot | (Webサイト) |
npm install dust (1) | (ウェブサイト) / (メンテナンスされていない) 参照:dustjs-linkedin | |
ほこり | npm install dustjs-helpers (2) またはnpm install dustjs-linkedin (3) | (Webサイト) |
npm install eco | /! セキュリティの問題 | |
など | npm install ect | (Webサイト) |
ejs | npm install ejs | (Webサイト) |
集落 | npm install hamlet | - |
ハムリ | npm install hamljs | - |
ハムルコーヒー | npm install haml-coffee | - |
ハンドルバー | npm install handlebars | (Webサイト) |
ホーガン | npm install hogan.js | (Webサイト) |
HTML化 | npm install htmling | - |
npm install jade | (ウェブサイト) / ( pug に名前変更) | |
ジャズ | npm install jazz | - |
npm install jqtpl | (非推奨) | |
ただ | npm install just | - |
液体 | npm install tinyliquid | (Webサイト) 新しい機能は決して追加されません |
酒 | npm install liquor | - |
ロダッシュ | npm install lodash | (Webサイト) |
マルコ | npm install marko | (Webサイト) |
モテる | npm install mote | (Webサイト) |
口ひげ | npm install mustache | - |
ヌンジャク | npm install nunjucks | (Webサイト) |
プレート | npm install plates | - |
パグ | npm install pug | (ウェブサイト) / (旧ジェイド) |
ケジス | npm install qejs | - |
アクティブな | npm install ractive | - |
かみそり | npm install razor | - |
反応する | npm install react | - |
slm | npm install slm | - |
リス | npm install squirrelly | (Webサイト) |
npm install swig (1) | (メンテナンスされていない) 参照: swig-templates | |
しゃがむ | npm install swig-templates (2) | - |
ティーカップ | npm install teacup | - |
テンプレート化された | npm install templayed | (Webサイト) |
トフィー | npm install toffee | - |
小枝 | npm install twig | (ウィキ) |
ツイン | npm install twing | (Webサイト) |
アンダースコア | npm install underscore | (Webサイト) |
ヴァッシュ | npm install vash | - |
速度js | ベータ | (Webサイト) |
セイウチ | npm install walrus | (Webサイト) |
ひげ | npm install whiskers | - |
注: 使用するエンジンをインストールし、package.json 依存関係に追加する必要があります。
このライブラリでサポートされるすべてのテンプレートは、以下に示すように署名(path[, locals], callback)
を使用してレンダリングできます。これは Express がサポートする署名であるため、これらのエンジンはいずれも Express 内で使用できます。
注: このサンプル コードはすべて、swig テンプレート エンジンとして cons.swig を使用します。 swig を使用しているテンプレートに置き換えます。たとえば、hogan.js には cons.hogan、jade には cons.jade などを使用します。識別子の完全なリストにはconsole.log(cons)
使用します。
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
またはオプション/ローカル変数なし:
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
エンジンを動的に渡すには、添え字演算子と変数を使用するだけです。
var cons = require ( 'consolidate' )
, name = 'swig' ;
cons [ name ] ( 'views/page.html' , { user : 'tobi' } , function ( err , html ) {
if ( err ) throw err ;
console . log ( html ) ;
} ) ;
さらに、コールバック関数が提供されていない場合、すべてのテンプレートはオプションで Promise を返します。 Promise は、テンプレートからコンパイルされた文字列に解決されるか、拒否されるテンプレート関数の最終的な結果を表します。 Promise は、Promise の最終値を受け取るコールバックを登録するthen
メソッドと、Promise が実行できなかった理由を示すcatch
メソッドを公開します。 Promise により、より同期に近いコード構造が可能になり、競合状態などの問題が解決されます。
var cons = require ( 'consolidate' ) ;
cons . swig ( 'views/page.html' , { user : 'tobi' } )
. then ( function ( html ) {
console . log ( html ) ;
} )
. catch ( function ( err ) {
throw err ;
} ) ;
キャッシュを有効にするには、 { cache: true }
を渡すだけです。エンジンは、このオプションを使用して、ファイルの内容、コンパイルされたFunction
などを読み取るものをキャッシュすることができます。これをサポートしていないエンジンは、単純に無視する可能性があります。 consolidate.js が I/O を実装するすべてのエンジンは、ファイルの内容をキャッシュするため、運用環境に最適です。 consolidate を直接使用する場合: cons.swig('views/page.html', { user: 'tobi', cache:true }, callback);
サポートされている Express バージョンを使用する: app.locals.cache = true
または NODE_ENV を「production」に設定すると、Express がこれを実行します。
var express = require ( 'express' )
, cons = require ( 'consolidate' )
, app = express ( ) ;
// assign the swig engine to .html files
app . engine ( 'html' , cons . swig ) ;
// set .html as the default extension
app . set ( 'view engine' , 'html' ) ;
app . set ( 'views' , __dirname + '/views' ) ;
var users = [ ] ;
users . push ( { name : 'tobi' } ) ;
users . push ( { name : 'loki' } ) ;
users . push ( { name : 'jane' } ) ;
app . get ( '/' , function ( req , res ) {
res . render ( 'index' , {
title : 'Consolidate.js'
} ) ;
} ) ;
app . get ( '/users' , function ( req , res ) {
res . render ( 'users' , {
title : 'Users' ,
users : users
} ) ;
} ) ;
app . listen ( 3000 ) ;
console . log ( 'Express server listening on port 3000' ) ;
テンプレート エンジンはcons.requires
オブジェクトを介して公開されますが、 cons[engine].render()
メソッドを呼び出すまでインスタンス化されません。フィルター、グローバル、ミックスイン、またはその他のエンジン機能を追加する場合は、事前に手動でインスタンスを作成できます。
var cons = require ( 'consolidate' ) ,
nunjucks = require ( 'nunjucks' ) ;
// add nunjucks to requires so filters can be
// added and the same instance will be used inside the render method
cons . requires . nunjucks = nunjucks . configure ( ) ;
cons . requires . nunjucks . addFilter ( 'foo' , function ( ) {
return 'bar' ;
} ) ;
lib.consolidate.js
のexports.nunjucks.render
関数を見てください。 options.nunjucksEnv
を介して独自のエンジン/環境を渡すことも、Express をサポートしたい場合はoptions.settings.views
渡すことも、別のユースケースがある場合はoptions.nunjucks
を渡すこともできます (詳細についてはコードを参照してください)。options.partials
を使用してパーシャルを渡すことができますoptions.loader
でローダーを渡すことができます。options.filters
使用し、それぞれが名前付きフィルター関数であるプロパティの配列を指定します。フィルター関数は文字列をパラメーターとして受け取り、その変更されたバージョンを返します。options.customTags
使用して、tinyliquid カスタム タグ定義に従うタグ関数の配列を指定します。options.includeDir
を使用します。React
コンテンツを HTML ベース テンプレート (React アプリのindex.html
など) にレンダリングするには、 options.base
でテンプレートのパスを渡します。 開発環境をインストールします。
$ npm install -d
テストを実行します。
$ make test
(MITライセンス)
著作権 (c) 2011-2016 TJ Holowaychuk
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそれを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。いかなる場合においても、作者または著作権所有者は、契約行為、不法行為、またはその他の行為であるかどうかにかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる、いかなる請求、損害、またはその他の責任に対しても責任を負わないものとします。ソフトウェア。