テンプレートエンジンtemplate.js
7899 ワード
artTemplate-3.0
次世代javascriptテンプレートエンジン
目次特性 快速上手 テンプレート文法 ダウンロード メソッド NodeJS プリコンパイルを使用する 更新ログ ライセンスプロトコル 特性は性能が優れており、実行速度は通常Mustacheとtmplの20倍以上(性能試験) である.は運転時のデバッグをサポートしています.異常テンプレートのあるステートメントを正確に位置決めできます. 対NodeJS Express友好サポート 安全で、デフォルトでは出力を転送し、サンドボックスでコンパイルされたコードを実行します.(Nodeバージョンはユーザアップロードのテンプレートを安全に実行できます.) サポート は、ブラウザ側で経路別にテンプレート(詳細)をロードすることを実現することができる .はプリコンパイルをサポートし、テンプレートを非常にシンプルなjsファイル に変換することができます.テンプレート文は簡潔で、プレフィックス参照データを必要とせず、簡潔なバージョンと元の構文バージョンがある場合はオプション である.は、すべての流行のブラウザ をサポートします.
手っ取り早い
テンプレートを作成
テンプレート文法
二つのバージョンのテンプレート文法が選択できます.
簡潔な文法
使うことを勧めて、文法は簡単で実用的で、読み書きに有利です.
げんせい文法
ダウンロード template.js(簡潔な文法版、2.7 kb) template-native.js(原生文法版、2.3 kb) 方法
template(id,data)
IDに基づいてテンプレートを描画します.内部は
dataパラメータがない場合、レンダリング関数を返します.
template.
レンダリング関数を返します.プレゼンテーション
template.
レンダリングの結果を返します.
template.
補助方法を追加します.
時間フォーマット:プレゼンテーション
template.
エンジンのデフォルトの設定を変更します.
フィールド
タイプ
標準値
説明
openTag
String
closeTag
String
エスケープ
ボロア
cache
ボロア
compless
ボロア
プリコンパイルを使う
ブラウザの制限を突破して、フロントエンドのテンプレートにバックエンドのテンプレートと同じ同期の「ファイル」ローディング能力を持たせることができます.
一、ファイルとディレクトリでテンプレートを組織するは、テンプレートを非常にシンプルなjsファイルに変換することができる(エンジンに依存しない) .同期テンプレートローディングインターフェース を使用する.は様々なjsモジュールの出力をサポートします.AMD、CMD、Common JS は、GuntJSプラグインとして を構築することをサポートしています.フロントエンドテンプレートは、NodeJS実行 に共有できます.自動圧縮パッキン プリコンパイルツール:TmodJS
NodeJS
インストール
NodeJSバージョンは下記のデフォルト設定を追加しました.
フィールド
タイプ
標準値
説明
ベース
String
extname
String
encoding
String
設定
アップグレードの参考
NodeJS expressに適合するために、artTemplate v 3.0インターフェースに調整があります.
インターフェースの変更デフォルトでは、簡潔な文法を使用します. である.は、新しい構成インターフェース がある. をサポートしていません. helper方法は原文出力を強制しなくなり、符号化するかどうかはテンプレート文 に依存する. に移動しました. をサポートしていない.
アップグレードの方法 js原生文法をテンプレート言語として使い続けたいなら、template-native.js を使ってください.検索項目 に置き換えられます.は、以前の構成 を置き換えるために に変更しました.
ログを更新
v 3.0.3 解決 v 3.0.2配管文法を解決するには、スペース区切りを使用しなければならない問題 v 3.0.1は、express 3.xと4.xに適合し、経路BUG を修復する.
v 3.0.0は、ノードJSの専属バージョンを提供し、パスを使用してテンプレートをロードすることをサポートし、テンプレートの をサポートする.適応expressフレーム は、複数のパラメータ に入ることをサポートするは、グローバルキャッシュ構成 をサポートする.シンプルシンタックス版は、パイプラインスタイルのhelper呼び出しをサポートします.例えば、 現在のバージョンのインターフェースは調整があります.アップグレードの参考を読んでください.
artTemplateプリコンパイルツールTmodJSが更新されました.
v 2.0.4低バージョンのAndroidブラウザのコンパイルを修復すると、文法エラーが発生する可能性があります.
v 2.0.3 補助方法の性能を最適化する NodeJSユーザは、npmでartTemplateを取得することができます. 変換されない出力ステートメントは、
次世代javascriptテンプレートエンジン
目次
include
文手っ取り早い
テンプレートを作成
type="text/html"
のscript
タグを使用してテンプレートを保存します.
<h1>{{title}}</h1>
<ul>
{{each list as value i}}
<li> {{i + 1}} :{{value}}</li>
{{/each}}
</ul>
レンダリングテンプレートvar data = {
title: ' ',
list: [' ', ' ', ' ', ' ', ' ', ' ', ' ']
};
var html = template('test', data);
document.getElementById('content').innerHTML = html;
プレゼンテーションテンプレート文法
二つのバージョンのテンプレート文法が選択できます.
簡潔な文法
使うことを勧めて、文法は簡単で実用的で、読み書きに有利です.
{{if admin}}
{{include 'admin_content'}}
{{each list}}
{{$index}}. {{$value.user}}
{{/each}}
{{/if}}
文法とプレゼンテーションを表示げんせい文法
.
文法とプレゼンテーションを表示ダウンロード
template(id,data)
IDに基づいてテンプレートを描画します.内部は
document.getElementById(id)
に従ってテンプレートを検索します.dataパラメータがない場合、レンダリング関数を返します.
template.
compile
(source,options)レンダリング関数を返します.プレゼンテーション
template.
render
(source,options)レンダリングの結果を返します.
template.
helper
(name,calback)補助方法を追加します.
時間フォーマット:プレゼンテーション
template.
config
(name,value)エンジンのデフォルトの設定を変更します.
フィールド
タイプ
標準値
説明
openTag
String
'{{'
論理文法開始フラグcloseTag
String
"}}"
論理文法終了フラグエスケープ
ボロア
true
出力HTML文字をエンコードしますか?cache
ボロア
true
キャッシュを開くかどうか(Ooptionsのfilenameフィールドに依存)compless
ボロア
false
HTMLの空き文字を圧縮しますか?プリコンパイルを使う
ブラウザの制限を突破して、フロントエンドのテンプレートにバックエンドのテンプレートと同じ同期の「ファイル」ローディング能力を持たせることができます.
一、ファイルとディレクトリでテンプレートを組織する
template('tpl/home/main', data)
二、テンプレートサポートのサブテンプレートの導入{{include '../public/header'}}
プリコンパイルに基づいて:NodeJS
インストール
npm install art-template
使用var template = require('art-template');
var data = {list: ["aui", "test"]};
var html = template(__dirname + '/index/main', data);
設定NodeJSバージョンは下記のデフォルト設定を追加しました.
フィールド
タイプ
標準値
説明
ベース
String
''
テンプレートディレクトリを指定extname
String
'.html'
テンプレートの拡張子を指定します.encoding
String
'utf-8'
テンプレートのエンコーディングを指定します設定
base
は、テンプレートディレクトリを指定することにより、テンプレートのパスを短縮することができ、include
文が、任意のパスにアクセスして、セキュリティ上の潜在的な危険を回避することができる.template.config('base', __dirname);
var html = template('index/main', data)
NodeJS+Expressvar template = require('art-template');
template.config('base', '');
template.config('extname', '.html');
app.engine('.html', template.__express);
app.set('view engine', 'html');
//app.set('views', __dirname + '/views');
運行デモ:node demo/node-template-express.js
js原生文法をテンプレート文法として使うなら、require('art-template/node/template-native.js')
に変えてください.アップグレードの参考
NodeJS expressに適合するために、artTemplate v 3.0インターフェースに調整があります.
インターフェースの変更
template.render()
方法の最初のパラメータはIDではなく、テンプレート文字列template.config()
を使用し、フィールド名に変更があるtemplate.compile()
方法は、idパラメータtemplate.helpers
の中の$string
、$escape
、$each
はtemplate.utils
の中のtemplate()
方法は、着信テンプレートの直接コンパイルアップグレードの方法
template.render
はtemplate
template.config(name, value)
を使用する.template()
方法で直接に導入されたテンプレートをtemplate.compile()
(v 2初期バージョン)ログを更新
v 3.0.3
template.helper()
方法で入力されたデータを文字列に変換する問題を解決します.{{value || value2}}
パイプステートメントとして認識される問題https://github.com/aui/tmodjs/issues/48 v 3.0.0
include
文も相対パスprint
文を内蔵する.{{time | dateFormat:'yyyy MM dd hh:mm:ss'}}
artTemplateプリコンパイルツールTmodJSが更新されました.
v 2.0.4
v 2.0.3
$ npm install art-template -g
( v2.0.3 ), {{#value}}
dist/template-simple.js
v2.0.2
- ,
- [ ] ,
{{
と}}
を することを しています. - のバグを する.
- は、コンパイルされた
にアクセスできる キャッシュを している.- は、 キャッシュを し、
template.cache
を して にアクセスすることができる.- を しました.
v 2.0.1 - テンプレート の を するBUG
v 2.0レレス- コンパイルツールはatcに され、artTemplateのサブプロジェクトとして で されます.https://github.com/cdc-im/atc
v 2.0 beta 5- リペアコンパイルツールには の があります.ありがとうございます.
- において、プリコンパイル
template.helpers
の は、コンテキストの を じ る を する.ありがとうございます. - コンパイルツールは、ドラッグファイルを して にコンパイルすることをサポートしています.
v 2.0 beta 4 - ツールが テンプレートでHTMLが せぬ を き こす があるという を する.ありがとうございます.
- は、 なるディレクトリ のテンプレートネスティング
をサポートするコンパイルツールを しています.- カスタム プラグインを に できなかったコンパイルツールを するための
.
v 2.0 beta 1- は、String、Numberタイプではないデータを せず、Functionタイプの を めて する.
- は、デフォルトでは、これを し、 は
include
を することができます. include
( :v2.0.3 ), template.defaults.escape = false
- js , RequireJS、SeaJS 。
Released under the MIT, BSD, and GPL Licenses
============
|
© tencent.com
142