Nodejs高擴展性的模板引擎 functmpl簡介
關(guān)于functmpl
functmpl 是一個基于JavaScript/Nodejs的高擴展性的模板引擎
模板格式
<#包含/>
如果想在一個模板中插入另一個模板,可以使用<#包含/>
比如插入模板 a.ftl :
<#"a.ftl"/>
<@功能/>
除了輸出變量、包含模板外,也可以加入更多自定義的功能,比如:枚舉、賦值
但額外的功能需要自定義。
自定功能的具體格式為
<@功能名稱 參數(shù)名=參數(shù)值/>
<@功能名稱 參數(shù)名=參數(shù)值>
子節(jié)點
</>
其中,參數(shù)名/參數(shù)值可以沒有或者含有多對。
參數(shù)值可以是變量名,或者是JSON
子節(jié)點內(nèi)容可以是普通內(nèi)容、<=輸出/>、<#包含/>或者<@功能/>
<`表達式`>
如果只是執(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>'
//設(shè)置模板位置如果使用<#包含/>,必須要有一個基本的相對位置
ftl.filename = 'template.ftl';
//也可以直接讀取模板文件
ftl.loadFile('template.ftl',function(status){
if (status) {
//讀取文件成功,并且已經(jīng)解析
//調(diào)用模板生成數(shù)據(jù)
ftl.parse(function(text){
//當生成完畢后調(diào)用回調(diào)函數(shù)
console.log("生成完成:\n" + text);
},JSON.parse(data.value));
} else {
//讀取文件失敗
}
});
相關(guān)文章
NodeJS Web應(yīng)用監(jiān)聽sock文件實例
這篇文章主要介紹了NodeJS Web應(yīng)用監(jiān)聽sock文件實例,本文講解 NodeJS 的 TCP 和 HTTP 監(jiān)聽 Domain Socket 文件例子,需要的朋友可以參考下2015-02-02
詳解基于node.js的腳手架工具開發(fā)經(jīng)歷
這篇文章主要介紹了詳解基于node.js的腳手架工具開發(fā)經(jīng)歷,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
剖析Node.js異步編程中的回調(diào)與代碼設(shè)計模式
這篇文章主要介紹了Node.js異步編程中的回調(diào)與代碼設(shè)計模式,雖然大多數(shù)場合回調(diào)編寫時的長串括號不怎么好看,但Node的異步性能確實很好,需要的朋友可以參考下2016-02-02
Nodejs中使用puppeteer控制瀏覽器中視頻播放功能
本項目主要功能為在瀏覽器中自動播放視頻,并且實現(xiàn)音量控制,快進快退,全屏控制,播放暫??刂频裙δ?。對Nodejs中使用puppeteer控制瀏覽器中視頻播放功能感興趣的朋友跟隨小編一起看看吧2019-08-08
node.js的http.createServer過程深入解析
這篇文章主要給大家介紹了關(guān)于node.js的http.createServer過程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習或者使用node.js具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧2019-06-06

