node.js的一流的樹枝引擎
我們認為,一流的樹枝發動機應該能夠使任何模板與官方PHP引擎完全相同。這意味著它應該實現由語言規格定義的100%語法,並且應該使用PHP邏輯渲染該語法。
我們還認為,當樹枝規格不斷發展時,一流的樹枝發動機應該能夠輕鬆趕上。然後,其代碼架構和理念應與PHP實施盡可能近。
最後,我們認為,一流的樹枝引擎應允許用戶在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 {{names}}}!'}!'});讓Twing = new Twingenvorirnment( loader); Twing; Twing。渲染('index.twig',{名稱:'fabien'})。
扭曲和表達的工作很好。請查看文檔以使用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的目的是完美地實施樹枝規格,而無需妥協。由於樹枝規格的性質,這不是一件容易的事:它們不正式存在,只能從公共文檔,源代碼文檔和PHP參考實現的測試套件中推導。有時會遇到不屬於文檔或測試套件的一部分的東西,突然變成了諸如filter
標籤或宏返工問題之類的規格的一部分,將TWING和所有其他非參考實現置於不舒服的位置隨著潛在的破壞變化。由於Twig的團隊沒有計劃發布該語言的一些官方規格,因此我們不能指望該問題很快就會解決。
TWING的策略是嚴格遵守語義版本控制規則,並且切勿將破壞變化引入次要版本 - 其廣泛的測試套件,具有100%的代碼覆蓋範圍,可以保證這一點。如果錯誤是微不足道的,則會通過發出已知問題來管理樹木團隊的錯誤,或者如果不是這樣,則會遇到新的主要版本。
這是TWIG和樹枝規格級別的次要版本之間的兼容性圖,以及每個樹枝規格級別提供的顯著特徵的摘要。請注意,樹枝次要版本並不總是提供與語言相關的新功能(因為Twig的團隊會延續其Twig和他們的參考實現TwigPHP之間的混淆)。
Twing版本 | 樹枝規格級別 | 值得注意的功能 |
---|---|---|
3.0 | 2.11 | 宏觀範圍 |
2.3 | 2.10 | spaceless , column , filter , map 和reduce 過濾器, apply 標籤, line whitespace trimming 空間控制修飾符 |
2.2 | 2.6 | deprecated 標籤 |
1.3 | 2.5 | spaceless 和block 的折舊 |
1.0 | 2.4 |
強烈建議始終使用最新版本的TWING,因為錯誤修復程序始終針對最新版本。
您可以在此處找到有關樹枝規格實現的已知問題的列表。請注意,在下一個主要版本的TWING中保證已知問題可以解決。
閱讀文檔以獲取更多信息。
吐灣:用墨西哥毛刺編譯樹枝模板。建立在Twing上。
Twing-Loader:使用TWING編譯樹枝模板的WebPack加載程序。
叉這個存儲庫
代碼
使用磁帶實施測試
發出拉動請求,請記住所有拉的請求都必須在問題隊列中引用問題
版權所有©2018 Eric Morand。根據2條規定的BSD許可發布。