Nodejs高擴(kuò)展性的模板引擎 functmpl簡(jiǎn)介
關(guān)于functmpl
functmpl 是一個(gè)基于JavaScript/Nodejs的高擴(kuò)展性的模板引擎
模板格式
<#包含/>
如果想在一個(gè)模板中插入另一個(gè)模板,可以使用<#包含/>
比如插入模板 a.ftl :
<#"a.ftl"/>
<@功能/>
除了輸出變量、包含模板外,也可以加入更多自定義的功能,比如:枚舉、賦值
但額外的功能需要自定義。
自定功能的具體格式為
<@功能名稱 參數(shù)名=參數(shù)值/>
<@功能名稱 參數(shù)名=參數(shù)值>
子節(jié)點(diǎn)
</>
其中,參數(shù)名/參數(shù)值可以沒(méi)有或者含有多對(duì)。
參數(shù)值可以是變量名,或者是JSON
子節(jié)點(diǎn)內(nèi)容可以是普通內(nèi)容、<=輸出/>、<#包含/>或者<@功能/>
<`表達(dá)式`>
如果只是執(zhí)行表達(dá)式,可以使用<`表達(dá)式`>
<`=輸出`>
如果想輸出一個(gè)變量的值,可以使用<=輸出/>
比如輸出變量 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>
模板解析器實(shí)例
//創(chuàng)建一個(gè)解析器 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è)置模板位置如果使用<#包含/>,必須要有一個(gè)基本的相對(duì)位置 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 Web應(yīng)用監(jiān)聽(tīng)sock文件實(shí)例
這篇文章主要介紹了NodeJS Web應(yīng)用監(jiān)聽(tīng)sock文件實(shí)例,本文講解 NodeJS 的 TCP 和 HTTP 監(jiān)聽(tīng) Domain Socket 文件例子,需要的朋友可以參考下2015-02-02利用node.js實(shí)現(xiàn)反向代理的方法詳解
在實(shí)際工程開(kāi)發(fā)中,會(huì)有前后端分離的需求。為了平滑的完成前端請(qǐng)求到后端各個(gè)獨(dú)立服務(wù),需要一個(gè)中間件實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)的功能,利用Nginx可以實(shí)現(xiàn),在這里使用nodejs實(shí)現(xiàn)一個(gè)反向代理服務(wù)器。本文主要介紹了關(guān)于利用node.js實(shí)現(xiàn)反向代理的相關(guān)資料,需要的朋友可以參考下。2017-07-07詳解基于node.js的腳手架工具開(kāi)發(fā)經(jīng)歷
這篇文章主要介紹了詳解基于node.js的腳手架工具開(kāi)發(fā)經(jīng)歷,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01剖析Node.js異步編程中的回調(diào)與代碼設(shè)計(jì)模式
這篇文章主要介紹了Node.js異步編程中的回調(diào)與代碼設(shè)計(jì)模式,雖然大多數(shù)場(chǎng)合回調(diào)編寫(xiě)時(shí)的長(zhǎng)串括號(hào)不怎么好看,但Node的異步性能確實(shí)很好,需要的朋友可以參考下2016-02-02Nodejs中使用puppeteer控制瀏覽器中視頻播放功能
本項(xiàng)目主要功能為在瀏覽器中自動(dòng)播放視頻,并且實(shí)現(xiàn)音量控制,快進(jìn)快退,全屏控制,播放暫??刂频裙δ?。對(duì)Nodejs中使用puppeteer控制瀏覽器中視頻播放功能感興趣的朋友跟隨小編一起看看吧2019-08-08node.js的http.createServer過(guò)程深入解析
這篇文章主要給大家介紹了關(guān)于node.js的http.createServer過(guò)程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06