- 修复 npm 包 index.d.ts 丢失的问题
- 修复在某些情况 runtime 提示 window 未定义的问题 #553
- 修复 #483
- 修复过滤器不能使用包含空的格字符串参数的问题
bail
默认为true
- 修复过滤器不支持 javascript 表达式的问题 #430
include
、extend
支持使用函数表达式。例如{{include(file, {list[]})}}
#414- 修复
options.escape=false
不生效的 BUG
- 修复与 art-template-loader 兼容问题 art-template-loader#9
rule.use
函数第一个传入数据类型由“类String
”对象改为真正的String
对象
- 修复标准语法的 BUG #408,并且不再兼容 v3 的辅助方法调用:
{{helper args}}
- 修复 EJS
<%- include(src) %>
语句兼容问题
- 增强调试功能:日志输出错误行号以及上下文
- 修复子模板没有继承父模板编译 options 问题
- 渲染函数参数可以为空
- 修复低版本 NodeJS 报错问题
- 过滤器支持在运行时注入 #4
- 过滤器语法可以直接使用全局对象,无需特别声明。例如
{{url | encodeURIComponent}}
- 增加
ignore
配置,可以让模板编译器忽略指定的变量初始化 - 增加
htmlMinifierOptions
配置,可对 htmlMinifie 压缩器进行配置
$escape()
函数提高 4 倍性能- 支持输出 sourceMap: sourcesContent
- 修复
{{/if}}
语句不支持头尾空格的问题 - 修复 NodeJS 版本兼容问题 #393
- 支持对
options.imports
的深拷贝 #1 - 支持对
options.rules
的覆盖
- 兼容 IE8
- 修正
root
配置的行为,如果 filename 为全局模块路径,会直接根据root
来定位 - 修复多行模板逻辑表达式下 sourceMap 行号记录不准确的 BUG
- 标准化错误处理
- 预编译 API 支持输出 sourceMap
- 修复 web 版本无法被 requirejs 加载问题
- 修复预编译 API 默认配置
imports
错误问题
- NodeJS: 支持预编译 API
- 适配器
loader
、onerror
、htmlMinifier
第二个参数接收options
- 支持 HTML、CSS、JS 压缩(
minimize: true
)。同时废弃compressor
字段 - 修复配置
debuger
拼写错误,debuger
更名为onerror
- 将模板全局变量
$options
私有化
- 支持 layout
- 修复
{{if else value}}
语句 BUG - 修复多个
include
语句共存导致路径的 BUG
- 调试功能增强:支持编译阶段捕获语法错误具体行
template.config()
方法取消,请直接读写template.defaults
template.helpers
更改为template.defaults.imports
template.defaults.debuger
选项可以定制输出的调试信息template.defaults.parser
被取消,使用更强大的template.defaults.rules
代替- 兼容 EJS 的模板
- 使用 ECMA5 构建,低于 IE9 的浏览器需要使用 ECMA5 补丁以及 JSON 库支持才可以运行
<%=value%>
语句支持输出 JSON
- 修复
template.runder()
方法与文档表现不一致的问题 - 去掉鸡肋的
fs.watch
特性
- 解决
template.helper()
方法传入的数据被转成字符串的问题 #96 - 解决
{{value || value2}}
被识别为管道语句的问题 #105 aui/tmodjs#48
解决管道语法必须使用空格分隔的问题
- 适配 express3.x 与 4.x,修复路径 BUG
- 提供 NodeJS 专属版本,支持使用路径加载模板,并且模板的
include
语句也支持相对路径 - 适配 express 框架
- 内置
print
语句支持传入多个参数 - 支持全局缓存配置
- 简洁语法版支持管道风格的 helper 调用,例如:
{{time | dateFormat:'yyyy年 MM月 dd日 hh:mm:ss'}}
当前版本接口有调整,请阅读 升级参考
artTemplate 预编译工具 TmodJS 已更新
- 修复低版本安卓浏览器编译后可能产生语法错误的问题(因为此版本浏览器 js 引擎存在 BUG)
- 优化辅助方法性能
- NodeJS 用户可以通过 npm 获取 artTemplate:
$ npm install art-template -g
- 不转义输出语句推荐使用
<%=#value%>
(兼容 v2.0.3 版本之前使用的<%==value%>
),而简版语法则可以使用{{#value}}
- 提供简版语法的合并版本 dist/template-simple.js
- 优化自定义语法扩展,减少体积
- [重要]为了最大化兼容第三方库,自定义语法扩展默认界定符修改为
{{
与}}
。 - 修复合并工具的BUG #25
- 公开了内部缓存,可以通过
template.cache
访问到编译后的函数 - 公开了辅助方法缓存,可以通过
template.helpers
访问到 - 优化了调试信息
- 修复模板变量静态分析的BUG
编译工具更名为 atc,成为 artTemplate 的子项目单独维护:https://github.com/cdc-im/atc
- 修复编译工具可能存在重复依赖的问题。感谢 @warmhug
- 修复预编译
include
内部实现可能产生上下文不一致的问题。感谢 @warmhug - 编译工具支持使用拖拽文件进行单独编译
- 修复编译工具在压缩模板可能导致 HTML 意外截断的问题。感谢 @warmhug
- 完善编译工具对
include
支持支持,可以支持不同目录之间模板嵌套 - 修复编译工具没能正确处理自定义语法插件的辅助方法
- 对非 String、Number 类型的数据不输出,而 Function 类型求值后输出。
- 默认对 html 进行转义输出,原文输出可使用
<%==value%>
(备注:v2.0.3 推荐使用<%=#value%>
),也可以关闭默认的转义功能template.defaults.escape = false
。 - 增加批处理工具支持把模板编译成不依赖模板引擎的 js 文件,可通过 RequireJS、SeaJS 等模块加载器进行异步加载。