Nodejs高擴展性的模板引擎 functmpl簡介
關于functmpl
functmpl 是一個基于JavaScript/Nodejs的高擴展性的模板引擎
模板格式
<#包含/>
如果想在一個模板中插入另一個模板,可以使用<#包含/>
比如插入模板 a.ftl :
<#"a.ftl"/>
<@功能/>
除了輸出變量、包含模板外,也可以加入更多自定義的功能,比如:枚舉、賦值
但額外的功能需要自定義。
自定功能的具體格式為
<@功能名稱 參數名=參數值/>
<@功能名稱 參數名=參數值>
子節(jié)點
</>
其中,參數名/參數值可以沒有或者含有多對。
參數值可以是變量名,或者是JSON
子節(jié)點內容可以是普通內容、<=輸出/>、<#包含/>或者<@功能/>
<`表達式`>
如果只是執(zhí)行表達式,可以使用<`表達式`>
<`=輸出`>
如果想輸出一個變量的值,可以使用<=輸出/>
比如輸出變量 val 的值
<\`=val\`>
如何使用
獲得functmpl
使用npm 或者 git
npm install functmpl git clone git@github.com:wangchenxunum/functmpl.git git clone git@git.oschina.net:wangchenxunum/functmpl.git
引入到Nodejs
let functmpl = require('functmpl');
引入到瀏覽器
<script src="functmpl.js"></script>
模板解析器實例
//創(chuàng)建一個解析器
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 {
//讀取文件失敗
}
});
相關文章
Nodejs進階:如何將圖片轉成datauri嵌入到網頁中去實例
這篇文章主要介紹了Nodejs進階:如何將圖片轉成datauri嵌入到網頁中去,有興趣的可以了解一下。2016-11-11

