Nodejs高擴充性的模板引擎 functmpl簡介,nodejsfunctmpl

來源:互聯網
上載者:User

Nodejs高擴充性的模板引擎 functmpl簡介,nodejsfunctmpl

關於functmpl

functmpl 是一個基於JavaScript/Nodejs的高擴充性的模板引擎

模板格式

<#包含/>

如果想在一個模板中插入另一個模板,可以使用<#包含/>

比如插入模板 a.ftl :

<#"a.ftl"/>

<@功能/>

除了輸出變數、包含模板外,也可以加入更多自訂的功能,比如:枚舉、賦值

但額外的功能需要自訂。

自定功能的具體格式為

<@功能名稱 參數名=參數值/>
<@功能名稱 參數名=參數值>
    子節點
</>
其中,參數名/參數值可以沒有或者含有多對。

參數值可以是變數名,或者是JSON

子節點內容可以是普通內容、<=輸出/>、<#包含/>或者<@功能/>

<`運算式`>

如果只是執行運算式,可以使用<`運算式`>

<`=輸出`>

如果想輸出一個變數的值,可以使用<=輸出/>

比如輸出變數 val 的值

<\`=val\`>

如何使用

獲得functmpl

使用npm 或者 git

npm install functmplgit clone git@github.com:wangchenxunum/functmpl.gitgit clone git@git.oschina.net:wangchenxunum/functmpl.git

引入到Nodejs

let functmpl = require('functmpl');

引入到瀏覽器

<script src="functmpl.js"></script>

模板解析器執行個體

//建立一個解析器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 {    //讀取檔案失敗  }});

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.