Nodejs高擴(kuò)展性的模板引擎 functmpl簡介
關(guān)于functmpl
functmpl 是一個基于JavaScript/Nodejs的高擴(kuò)展性的模板引擎
模板格式
<#包含/>
如果想在一個模板中插入另一個模板,可以使用<#包含/>
比如插入模板 a.ftl :
<#"a.ftl"/>
<@功能/>
除了輸出變量、包含模板外,也可以加入更多自定義的功能,比如:枚舉、賦值
但額外的功能需要自定義。
自定功能的具體格式為
<@功能名稱 參數(shù)名=參數(shù)值/>
<@功能名稱 參數(shù)名=參數(shù)值>
子節(jié)點
</>
其中,參數(shù)名/參數(shù)值可以沒有或者含有多對。
參數(shù)值可以是變量名,或者是JSON
子節(jié)點內(nèi)容可以是普通內(nèi)容、<=輸出/>、<#包含/>或者<@功能/>
<`表達(dá)式`>
如果只是執(zhí)行表達(dá)式,可以使用<`表達(dá)式`>
<`=輸出`>
如果想輸出一個變量的值,可以使用<=輸出/>
比如輸出變量 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>'
//設(shè)置模板位置如果使用<#包含/>,必須要有一個基本的相對位置
ftl.filename = 'template.ftl';
//也可以直接讀取模板文件
ftl.loadFile('template.ftl',function(status){
if (status) {
//讀取文件成功,并且已經(jīng)解析
//調(diào)用模板生成數(shù)據(jù)
ftl.parse(function(text){
//當(dāng)生成完畢后調(diào)用回調(diào)函數(shù)
console.log("生成完成:\n" + text);
},JSON.parse(data.value));
} else {
//讀取文件失敗
}
});
相關(guān)文章
Nodejs進(jìn)階:如何將圖片轉(zhuǎn)成datauri嵌入到網(wǎng)頁中去實例
這篇文章主要介紹了Nodejs進(jìn)階:如何將圖片轉(zhuǎn)成datauri嵌入到網(wǎng)頁中去,有興趣的可以了解一下。2016-11-11
Node 搭建一個靜態(tài)資源服務(wù)器的實現(xiàn)
這篇文章主要介紹了Node 搭建一個靜態(tài)資源服務(wù)器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

