art-template

使用

const template = require('art-template')const view = path.join(__dirname,'views','index.art')let ret = template(view,{    name:'cxk',    age:18})
<!-- index.art --><body>    姓名:{{name}}    年龄:{{age}}</body>

模板语法

标准语法: {{ 数据 }}原始语法:<%=数据 %>

输出

<!-- 标准语法 --><h2>{{value}}</h2><h2>{{a ? b : c}}</h2><h2>{{a + b}}</h2><!-- 原始语法 --><h2><%= value %></h2><h2><%= a ? b : c %></h2><h2><%= a + b %></h2>

原文输出

 <!-- 标准语法 --> <h2>{{@ value }}</h2> <!-- 原始语法 --> <h2><%- value %></h2>

条件

<!-- 标准 -->{{if age==18}}    <span>沉鱼落雁</span>{{else if age == 20}}    <span>闭月羞花</span>{{/if}}<!-- 原始 --><%if (age==18) {%>    <span>沉鱼落雁</span><% } else if( age==20 ) {%>    <span>闭月羞花</span><% } %>

循环

let ret = template(view,{    name:'<h1>cxk</h1>',    age:20,    skills:['唱','跳','rap','篮球']})
<!-- 标准 -->{{each skills}}    <div><span>技能{{$index}}:</span>{{$value}}</div>{{/each}}<!-- 原始 --><% for (var i =0;i<skills.length;i++){ %>     <div><span>技能<%=i%>:</span><%=skills[i]%></div><% }%>

子模板

<!-- 标准 -->{{include './header.art'}}<!-- 原始 --><%-include('./header.art')%>

模板继承

 <!doctype html> <html>     <head>         <meta charset="utf-8">         <title>HTML骨架模板</title>         {{block 'head'}}{{/block}}     </head>     <body>         {{block 'content'}}{{/block}}     </body> </html>

其他模板可以继承这个模板,填充占位符里的内容

{{extend './layout.art'}}{{block 'head'}} <link rel="stylesheet" href="./style.css"/> {{/block}}{{block 'content'}} <div>test</div> {{/block}}

渲染结果

<!doctype html><html>    <head>        <meta charset="utf-8">        <title>HTML骨架模板</title>         <link rel="stylesheet" href="./style.css"/>    </head>    <body>         <div>test</div>    </body></html>

模板配置

template.defaults.imports.random = ()=>{    return Math.random()}
{{random()}}