node.jsのファーストクラス小枝エンジン
ファーストクラスの小枝エンジンは、公式のPHPエンジンとまったく同じ結果にテンプレートをレンダリングできるはずだと考えています。つまり、言語仕様によって定義された構文の100%を実装し、PHPロジックを使用してその構文をレンダリングする必要があります。
また、Twigの仕様が進化すると、ファーストクラスの小枝エンジンが簡単に追いつくことができるはずです。そのコードアーキテクチャと哲学は、PHPの実装と同じくらいできるだけ近いはずです。
最後に、ファーストクラスのTwigエンジンは、ユーザーがTwigphpでの経験に基づいて構築し、それに付随する巨大なコミュニティからサポートを得ることができると考えています。
それがTwingです。 TwigPHP統合テストの100%を渡すメンテナビリティファーストエンジンは、コード構造に可能な限り近く、アクセス可能なAPIを公開します。
Twingは、実行するには少なくともnode.js 8.0.0が必要です。
Twingをインストールする推奨方法は、NPM経由です。
npm install twing --save
const {twingenvironment、twingloaderarray} = require( 'twing'); let loader = new twingloaderArray({'index.twig': 'hello {{name}}}}) render( 'index.twig'、{name: 'fabien'})。
TwingとExpressは非常にうまく機能します。 Expressを使用した使用例については、ドキュメントをご覧ください。
バージョン2.0.0から始めて、Twingは妥協がほとんどないWebブラウザーで使用できます。ファイルシステムコンポーネントは明らかに使用できません(つまり、ファイルシステムローダーとキャッシュ)が、他のすべては完全にサポートされています。
モジュールバンドラーは、Twingモジュールがインポートされると、ブラウザ固有のTwingのブラウザ固有のフレーバーを自動的につかみます。 const {TwingEnvironment} = require('twing');
またはimport {TwingEnvironment} from 'twing';
Node.jsとブラウザの両方で動作します - 後者の場合にバンドルされたら。
JSDELIVR CDNを使用して、HTMLドキュメントにTwingを含めます。
<script src="https://cdn.jsdelivr.net/npm/twing/dist/lib.min.js"></script>
ブラウザでロードされると、TwingはグローバルTwing
変数の下で利用できます。
Twingは、妥協することなく、Twigの仕様を完全に実装することを目指しています。これは、小枝の仕様の性質のために簡単な作業ではありません。公式には存在せず、PHP参照実装の公開文書、ソースコードドキュメント、テストスイートからのみ推測できます。ドキュメントやテストスイートの一部ではないものが突然、 filter
タグやマクロの再加工の問題などの仕様の一部になることがあります。潜在的な壊れた変化があります。 Twigのチームは、言語の公式仕様をリリースする予定はないため、問題がすぐに解決されるとは期待できません。
ここでのTwingの戦略は、セマンティックバージョンのルールに厳密に固執することであり、マイナーバージョンに壊れた変更を導入しないことです。100%のコードカバレッジが保証された広範なテストスイートです。 Twigチームの間違いは、間違いが些細な場合、またはそうでない場合は新しいメジャーバージョンにぶつかる場合、既知の問題を発行することによって管理されます。
TwingとTwigの仕様レベルのマイナーバージョン間の互換性チャートと、各Twig仕様レベルが提供する顕著な機能の概要は次のとおりです。 Twigのマイナーバージョンは、常に新しい言語関連の機能を提供するとは限らないことに注意してください(TwigのチームがTwigと参照実装、Twigphpの間の混乱を永続させているため)。
Twingバージョン | Twig仕様レベル | 注目すべき機能 |
---|---|---|
3.0 | 2.11 | マクロスコーピング |
2.3 | 2.10 | spaceless 、 column 、 filter 、 map 、 reduce 、タグ、 line whitespace trimming ホワイトスパース制御修飾子apply |
2.2 | 2.6 | deprecated タグ |
1.3 | 2.5 | spaceless およびblock 関連の非推奨 |
1.0 | 2.4 |
バグ修正は常に最新バージョンをターゲットにするため、利用可能なTwingの最新バージョンを常に使用することを強くお勧めします。
Twig仕様の実装に関するTwingの既知の問題のリストは、こちらをご覧ください。既知の問題は、Twingの次のメジャーバージョンバンプで対処されることが保証されていることに注意してください。
詳細については、ドキュメントをお読みください。
Gulp-Twing:Twig TemplatesをGulpでコンパイルします。 Twingの上に構築されます。
Twing-Roader:Twingを使用してTwigテンプレートをコンパイルするWebパックローダー。
このリポジトリをフォークします
コード
テープを使用してテストを実装します
すべてのプルリクエストは、問題のキューの問題を参照する必要があることに留意してください。
Copyright©2018 Eric Morand。 2節BSDライセンスの下でリリースされました。