art-template

art-template是一个简约、超快的模板引擎。

它采用作用域预声明的技术来优化模板渲染速度,从而获得接近JavaScript极限的运行性能,并且同时支持nodejs和浏览器。

标准语法:

{{if user}}
<h2> {{user.name}} </h2>
{{/if}}

原始语法:

<% if (user)>
{%>
<h2><%= user.name %></h2>
<%}
<%>

渲染模板:

var template = require('art-template');
var html = template(__dirname +'/tpl-user.art',{
user:{
    name:'aui'
}
});

核心方法:

// 基于模板名渲染模板
template(filename, data);

// 将模板源代码编译成函数
template.compile(source, options);

// 将模板源代码编译成函数并立刻执行
template.render(source, data, options);

语法:

输出

标准语法

{{value}}
{{data.key}}
{{data['key']}}
{{a?b:c}}
{{a+b}}

原文输出

标准语法

{{@ value }}

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

条件

{{ if value }} ... {{/if}}
{{if v1}} ... {{else if v2}} ... {{/if}}

循环

{{each target}}
    {{$index}} {{$value}}
{{/each}}

变量

{{set temp = data.sub.content}}

字模板

{{ include './header.art' }}
{{ include './header.art' data}}
  1. data 数默认值为 $data;标准语法不支持声明 object 与 array,只支持引用变量,而原始语法不受限制。
  2. art-template 内建 HTML 压缩器,请避免书写 HTML 非正常闭合的子模板,否则开启压缩后标签可能会被意外“优化。

过滤器

template.defaults.imports.dateFormat = function(date, format){/*[code..]*/};
template.defaults.imports.timestamp = function(value){return value * 1000};

{{date | timestamp | dateFormat 'yyyy-MM-dd hh:mm:ss'}}

内置变量清单

  • $data 传入模板的数据
  • $imports 外部导入的变量以及全局变量
  • print 字符串输出函数
  • include 子模板载入函数
  • extend 模板继承模板导入函数
  • block 模板块声明函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值