模板引擎art-tempalte及其关联应用实现

1,032 阅读2分钟

模板引擎

为了让开发者更加友好的方式拼接字符串,使项目更加易于维护,引入的第三方模块

art-template

const template=require('art-template');
路径要用绝对路径
const path=require('path')
const views=path.join(__dirname,'views','index.art')
const html = template(views,{
name:'haha'})

对于template模板,我们需要知道art文件的绝对路径,所以会作为第一个参数,第二个参数是即将传入模板的数据

对于html标签进行解析,所谓的解析就是将数据中的标签进行解析,如html的标签 {{@content}}

条件判断

{{if age>18}} 年龄大于18{{/if}}

{{each 数据}}<li>dfajkhdfk</li>{{/each}}

{{$index}} {{$value}}分别是索引和返回对象

子模版

可以将公共区块,抽离到单独的文件中

标准语法{{include '模板'}}

这是将子模板的引入,其中模板路径为相对路径

模板继承

使用模板继承可以将网站骨架抽离到单独文件中,其他页面模板可以继承骨架文件

首页模板

利用{{extend './layout.art'}}继承主模板的框架

利用{{block 'head'}}<link rel="stylesheet" href=custom.css"">{{/block}}

向预留的位置填充信息

主模板:主要预留block信息,并且一定标注好名字

子模版:继承主模板的骨架,然后利用block中间的信息,向主模板中的预留位置填充信息

模板配置

向模板中导入变量template.defaults.imports.变量名=变量值

在模板中就可以调用方法,对模板进行处理,就是一个可以调用的方法

设置模板根目录

template.defaults.root=path.join(__dirname,'views')

可以直接在template(直接写路径

配置默认后缀

template.defaults.extname='.art'

一个第三方模块

const dateFormat=require('dataformat');

这个模块可以格式化事件

dataformat(new Date,'格式')

对于模板中希望展示的模板数据,我想想要去除html标签

{{$value.content.replace(/正则表达式/,'').substr(截取起始,末尾}}

@表示原文输出