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许可发布。