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'