模板引擎

AuxUI 概览,下载、使用,模板示例,二次开发……

art-template 是一个简约、超快的模板引擎。它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能。

auxui 的模板引擎模板,取材于art-template-4.1x ,我们只是简单的封装,更多文档请参阅 art-template 官方文档:https://aui.github.io/art-template/zh-cn/docs/index.html

需要加载template模块,可通过下列方式加载


实例

渲染数据


兼容性

E8+(IE8 需要补丁才能运行 )详情示例:


语法

支持标准语法与原始语法。标准语法可以让模板易读写,而原始语法拥有强大的逻辑表达能力。

标准语法支持基本模板语法以及基本 JavaScript 表达式;原始语法支持任意 JavaScript 语句,这和 EJS 一样。


标准语法


原始语法



模板一级特殊变量可以使用 $data 加下标的方式访问:{{$data['user list']}}

原文输出

标准语法


原始语法

原文输出语句不会对 HTML 内容进行转义处理,可能存在安全风险,请谨慎使用。


条件

标准语法


原始语法


循环

标准语法


原始语法


1.target 支持 array 与 object 的迭代,其默认值为 $data。

2.$value 与 $index 可以自定义:{{each target val key}}。

变量

标准语法


原始语法


模板继承

标准语法


原始语法


子模板

标准语法


原始语法


1.data 数默认值为 $data;标准语法不支持声明 object 与 array,只支持引用变量,而原始语法不受限制。

2.内建 HTML 压缩器,请避免书写 HTML 非正常闭合的子模板,否则开启压缩后标签可能会被意外“优化。

过滤器

注册过滤器


标准语法

{{value | filter}} 过滤器语法类似管道操作符,它的上一个输出作为下一个输入。


原始语法

如果想修改 {{ }} 与 <% %>


模板变量

模板通过 $imports 可以访问到模板外部的全局变量与导入的变量

导入变量


内置变量清单:

$data 传入模板的数据

$imports 外部导入的变量以及全局变量

print 字符串输出函数

include 子模板载入函数

extend 模板继承模板导入函数

block 模板块声明函数

修改界定符


它们是一个正则表达式,你可以只修改界定符部分。例如修改 <% %> 为


选项

参数选项 说明 默认值
caseSensitive 以区分大小写的方式处理属性(对自定义HTML标记很有用) false
collapseBooleanAttributes 从布尔属性中省略属性值 false
collapseInlineTagWhitespace display:inline;折叠时不要在元素之间留下任何空格。必须与。一起使用collapseWhitespace=true false
collapseWhitespace 折叠有助于文档树中文本节点的空白区域 false
conservativeCollapse 始终折叠到1个空格(永远不要完全删除)。必须与。一起使用collapseWhitespace=true false
customAttrAssign 允许支持自定义属性赋值表达式的正则表达式数组(例如'<div flex?="{{mode != cover}}"></div>') []
customAttrCollapse 正则表达式,指定自定义属性以从中删除换行符(例如/ng-class/)
customAttrSurround 允许支持自定义属性环绕表达式的正则表达式数组(例如<input {{#if value}}checked="checked"{{/if}}>) []
customEventAttributes 允许支持自定义事件属性的正则表达式数组minifyJS(例如ng-click) [ /^on[a-z]{3,}$/ ]
decodeEntities 尽可能使用直接Unicode字符 false
html5 根据HTML5规范解析输入 true
ignoreCustomComments 一组正则表达式,允许在匹配时忽略某些注释 [ /^!/ ]
ignoreCustomFragments egex'es允许忽略某些片段的阵列,当一致时(例如,{{ ... }}等) [ /<%[\s\S]*?%>/, /<\?[\s\S]*?\?>/ ]
includeAutoGeneratedTags 插入HTML解析器生成的标签 true
keepClosingSlash 在单例元素上保留尾部斜杠 false
maxLineLength 指定最大行长度。压缩输出将在有效的HTML分割点按换行符分割
minifyCSS 在样式元素和样式属性中缩小CSS(使用clean-css) false(可能是true,Object,Function(text, type))
minifyJS 缩小脚本元素和事件属性中的JavaScript(使用UglifyJS) false(可能是true,Object,Function(text, inline))
minifyURLs 缩小各种属性中的URL(使用relatedurl) false(可能是String,Object,Function(text))
preserveLineBreaks 当标记之间的空格包含换行符时,始终折叠为1换行符(从不完全删除它)。必须与。一起使用collapseWhitespace=true false
preventAttributesEscaping 防止转义属性值 false
processConditionalComments 通过minifier处理条件注释的内容 false
processScripts 对应于类型脚本的元素串的阵列通过minifier处理(例如text/ng-template,text/x-handlebars-template等) [ ]
quoteCharacter 用于属性值的引用类型('或“)
removeAttributeQuotes 尽可能删除属性周围的引号 false
removeComments 隔离HTML false
removeEmptyAttributes 使用仅限空白的值删除所有属性 false(可能是true,Function(attrName, tag))
removeEmptyElements 删除所有带有空内容的元素 false
removeOptionalTags 删除可选标签 false
removeRedundantAttributes 值匹配默认值时删除属性。 false
removeScriptTypeAttributes type="text/javascript"从script标签中删除。其他type属性值保持不变 false
removeStyleLinkTypeAttributes 删除type="text/css"从style和link标签。其他type属性值保持不变 false
removeTagWhitespace 尽可能删除属性之间的空间。请注意,这将导致HTML无效! false
sortAttributes 按频率对属性排序 false
sortClassName 按频率对样式类进行排序 false
trimCustomFragments 修剪周围的白色空间ignoreCustomFragments false
useShortDoctype doctype用短(HTML5)doctype 替换 false

方法

名称 描述 实例
.template(filename, content) 根据模板名渲染模板
.compile(source, options) 编译模板并返回一个渲染函数
.render(source, data, options) 编译并返回渲染结果
.defaults(Object) 模板引擎默认配置。参考 选项