首页 > 编程 > JavaScript > 正文

Nodejs高扩展性的模板引擎 functmpl简介

2019-11-19 17:37:27
字体:
来源:转载
供稿:网友

关于functmpl

functmpl 是一个基于JavaScript/Nodejs的高扩展性的模板引擎

模板格式

<#包含/>

如果想在一个模板中插入另一个模板,可以使用<#包含/>

比如插入模板 a.ftl :

<#"a.ftl"/>

<@功能/>

除了输出变量、包含模板外,也可以加入更多自定义的功能,比如:枚举、赋值

但额外的功能需要自定义。

自定功能的具体格式为

<@功能名称 参数名=参数值/>
<@功能名称 参数名=参数值>
    子节点
</>
其中,参数名/参数值可以没有或者含有多对。

参数值可以是变量名,或者是JSON

子节点内容可以是普通内容、<=输出/>、<#包含/>或者<@功能/>

<`表达式`>

如果只是执行表达式,可以使用<`表达式`>

<`=输出`>

如果想输出一个变量的值,可以使用<=输出/>

比如输出变量 val 的值

</`=val/`>

如何使用

获得functmpl

使用npm 或者 git

npm install functmplgit clone git@github.com:wangchenxunum/functmpl.gitgit clone git@git.oschina.net:wangchenxunum/functmpl.git

引入到Nodejs

let functmpl = require('functmpl');

引入到浏览器

<script src="functmpl.js"></script>

模板解析器实例

//创建一个解析器let ftl = functmpl();//加入功能处理器ftl.use(functmpl.func);//模板解析ftl.template = '<!DOCTYPE html>/n/<html>/n/<head>/n/  <title><`=title`></title>/n/</head>/n/<body>/n/  <@enum key="key" value="value" var=list>/n/    <@scope>/n/      <@set key="key" value="1" type="create"/>/n/      <`=key`>:<`=value`><br>/n/    </>/n/    <`=key`>:<`=value`><br>/n/  </>/n/</body>/n/</html>'//设置模板位置如果使用<#包含/>,必须要有一个基本的相对位置ftl.filename = 'template.ftl';//也可以直接读取模板文件ftl.loadFile('template.ftl',function(status){  if (status) {    //读取文件成功,并且已经解析    //调用模板生成数据    ftl.parse(function(text){      //当生成完毕后调用回调函数      console.log("生成完成:/n" + text);    },JSON.parse(data.value));  } else {    //读取文件失败  }});

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表