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()}}
- 设置模板根目录 template.defaults.root = 模板目录
- 设置模板默认后缀 template.defaults.extname = '.art'