テンプレートエンジンtemplate.js

7899 ワード

artTemplate-3.0
次世代javascriptテンプレートエンジン
目次
  • 特性
  • 快速上手
  • テンプレート文法
  • ダウンロード
  • メソッド
  • NodeJS
  • プリコンパイルを使用する
  • 更新ログ
  • ライセンスプロトコル
  • 特性
  • は性能が優れており、実行速度は通常Mustacheとtmplの20倍以上(性能試験)
  • である.
  • は運転時のデバッグをサポートしています.異常テンプレートのあるステートメントを正確に位置決めできます.
  • 対NodeJS Express友好サポート
  • 安全で、デフォルトでは出力を転送し、サンドボックスでコンパイルされたコードを実行します.(Nodeバージョンはユーザアップロードのテンプレートを安全に実行できます.)
  • サポートinclude
  • は、ブラウザ側で経路別にテンプレート(詳細)をロードすることを実現することができる
  • .
  • はプリコンパイルをサポートし、テンプレートを非常にシンプルなjsファイル
  • に変換することができます.
  • テンプレート文は簡潔で、プレフィックス参照データを必要とせず、簡潔なバージョンと元の構文バージョンがある場合はオプション
  • である.
  • は、すべての流行のブラウザ
  • をサポートします.
    手っ取り早い
    テンプレートを作成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.js(簡潔な文法版、2.7 kb)
  • template-native.js(原生文法版、2.3 kb)
  • 方法
    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
    ボロアfalseHTMLの空き文字を圧縮しますか?
    プリコンパイルを使う
    ブラウザの制限を突破して、フロントエンドのテンプレートにバックエンドのテンプレートと同じ同期の「ファイル」ローディング能力を持たせることができます.
    一、ファイルとディレクトリでテンプレートを組織する
    template('tpl/home/main', data)
    
    二、テンプレートサポートのサブテンプレートの導入
    {{include '../public/header'}}
    
    プリコンパイルに基づいて:
  • は、テンプレートを非常にシンプルなjsファイルに変換することができる(エンジンに依存しない)
  • .
  • 同期テンプレートローディングインターフェース
  • を使用する.
  • は様々なjsモジュールの出力をサポートします.AMD、CMD、Common JS
  • は、GuntJSプラグインとして
  • を構築することをサポートしています.
  • フロントエンドテンプレートは、NodeJS実行
  • に共有できます.
  • 自動圧縮パッキン
  • プリコンパイルツール:TmodJS
    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+Express
    var 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パラメータ
  • をサポートしていません.
  • helper方法は原文出力を強制しなくなり、符号化するかどうかはテンプレート文
  • に依存する.
  • template.helpersの中の$string$escape$eachtemplate.utilsの中の
  • に移動しました.
  • template()方法は、着信テンプレートの直接コンパイル
  • をサポートしていない.
    アップグレードの方法
  • js原生文法をテンプレート言語として使い続けたいなら、template-native.js
  • を使ってください.
  • 検索項目template.rendertemplate
  • に置き換えられます.
  • は、以前の構成
  • を置き換えるために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.2
  • 配管文法を解決するには、スペース区切りを使用しなければならない問題
  • v 3.0.1
  • は、express 3.xと4.xに適合し、経路BUG
  • を修復する.
    v 3.0.0
  • は、ノードJSの専属バージョンを提供し、パスを使用してテンプレートをロードすることをサポートし、テンプレートのinclude文も相対パス
  • をサポートする.
  • 適応expressフレーム
  • は、複数のパラメータ
  • に入ることをサポートするprint文を内蔵する.
  • は、グローバルキャッシュ構成
  • をサポートする.
  • シンプルシンタックス版は、パイプラインスタイルのhelper呼び出しをサポートします.例えば、{{time | dateFormat:'yyyy MM dd hh:mm:ss'}}
  • 現在のバージョンのインターフェースは調整があります.アップグレードの参考を読んでください.
    artTemplateプリコンパイルツールTmodJSが更新されました.
    v 2.0.4
  • 低バージョンのAndroidブラウザのコンパイルを修復すると、文法エラーが発生する可能性があります.
    v 2.0.3
  • 補助方法の性能を最適化する
  • NodeJSユーザは、npmでartTemplateを取得することができます.$ npm install art-template -g
  • 変換されない出力ステートメントは、( v2.0.3 ), {{#value}}
  • dist/template-simple.js
  • v2.0.2

    1. [ ] , {{}}を することを しています.
    2. のバグを する.
    3. は、コンパイルされた
    4. にアクセスできる キャッシュを している.
    5. は、 キャッシュを し、template.cacheを して
    6. にアクセスすることができる.
    7. を しました.
      v 2.0.1
    8. テンプレート の を するBUG
    9. v 2.0レレス
    10. コンパイルツールはatcに され、artTemplateのサブプロジェクトとして で されます.https://github.com/cdc-im/atc
    11. v 2.0 beta 5
    12. リペアコンパイルツールには の があります.ありがとうございます.
    13. において、プリコンパイルtemplate.helpersの は、コンテキストの を じ る を する.ありがとうございます.
    14. コンパイルツールは、ドラッグファイルを して にコンパイルすることをサポートしています.
      v 2.0 beta 4
    15. ツールが テンプレートでHTMLが せぬ を き こす があるという を する.ありがとうございます.
    16. は、 なるディレクトリ のテンプレートネスティング
    17. をサポートするコンパイルツールを しています.
    18. カスタム プラグインを に できなかったコンパイルツールを するための
    19. .
      v 2.0 beta 1
    20. は、String、Numberタイプではないデータを せず、Functionタイプの を めて する.
    21. は、デフォルトでは、これを し、 はincludeを することができます.
    22. include ( :v2.0.3 ), template.defaults.escape = false
    23. js , RequireJS、SeaJS 。
    24. Released under the MIT, BSD, and GPL Licenses

      ============

      |

      © tencent.com

      142