關(guān)于functmpl
創(chuàng)新互聯(lián)的團(tuán)隊(duì)成員不追求數(shù)量、追求質(zhì)量。我們經(jīng)驗(yàn)豐富并且專業(yè),我們之間合作時(shí)就好像一個(gè)人,協(xié)同一致毫無保留。成都創(chuàng)新互聯(lián)公司珍視想法,同時(shí)也看重過程轉(zhuǎn)化帶來的沖擊力和影響力,在我們眼中,任何細(xì)節(jié)都不容小覷。一直致力于為企業(yè)提供從申請(qǐng)域名、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都做商城網(wǎng)站、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷服務(wù)。
functmpl 是一個(gè)基于JavaScript/Nodejs的高擴(kuò)展性的模板引擎
模板格式
<#包含/>
如果想在一個(gè)模板中插入另一個(gè)模板,可以使用<#包含/>
比如插入模板 a.ftl :
<#"a.ftl"/>
<@功能/>
除了輸出變量、包含模板外,也可以加入更多自定義的功能,比如:枚舉、賦值
但額外的功能需要自定義。
自定功能的具體格式為
<@功能名稱 參數(shù)名=參數(shù)值/>
<@功能名稱 參數(shù)名=參數(shù)值>
子節(jié)點(diǎn)
>
其中,參數(shù)名/參數(shù)值可以沒有或者含有多對(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');
引入到瀏覽器
模板解析器實(shí)例
//創(chuàng)建一個(gè)解析器 let ftl = functmpl(); //加入功能處理器 ftl.use(functmpl.func); //模板解析 ftl.template = '\n\ \n\ \n\<`=title`> \n\ \n\ \n\ <@enum key="key" value="value" var=list>\n\ <@scope>\n\ <@set key="key" value="1" type="create"/>\n\ <`=key`>:<`=value`>
\n\ >\n\ <`=key`>:<`=value`>
\n\ >\n\ \n\ ' //設(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 { //讀取文件失敗 } });