模擬頁面模板引擎

2021-08-03 23:32:20 字數 722 閱讀 1942

目標:將帶有模板符號的html經過f()函式之後輸出普通html

exec()函式

用於檢索字串中的正規表示式的匹配

返回乙個陣列,其中存放匹配的結果

此陣列的第 0 個元素是與正規表示式相匹配的文字,第 1 個元素是與 regexpobject 的第 1 個子表示式相匹配的文字(如果有的話),第 2 個元素是與 regexpobject 的第 2 個子表示式相匹配的文字(如果有的話),以此類推。除了陣列元素和 length 屬性之外,exec() 方法還返回兩個屬性。index 屬性宣告的是匹配文字的第乙個字元的位置

var templateengine = function(tpl,data)))(.*)?/g;//匹配<%..%>內的語句

var code = 'var arr=;\n';

var cursor=0;//指標

//新增的內容的雙引號轉義

var add = function(line,js)

while(match = re.exec(tpl))

add(tpl.slice(cursor,tpl.length));

code += 'return arr.join("");';

//轉換資料

}

主要的思想就是正規表示式匹配模板符號取出內容,轉換成data的資料。

核心是new function()可以執行js字串

thymeleaf引擎模板公共頁面抽取

1 抽取公共片段 2 引入公共片段 模板名 選擇器 模板名 片段名3 預設效果 insert的公共片段在div標籤中 如果使用th insert等屬性進行引入,可以不用寫 行內寫法可以加上 三種引入公共片段的th屬性 th insert 將公共片段整個插入到宣告引入的元素中 th replace 將...

FreeMarker模板引擎實現頁面靜態化

一 使用情景 公司的cms產品,最近正在做功能遷移,而我正好負責將老後台的文章發布功能遷移到新後台。文章發布使用到的核心技術是頁面靜態化。發布的時候,會生成對應的靜態頁面,並將靜態檔案儲存到指定路徑下 同時,重新整理cdn,實現修改同步。二 頁面靜態化說明 技術原理靜態化一般使用在這種場景 將經常訪...

NVelocity模板引擎

因此決定自學一下nvelocity的使用 拋開monorail 安裝後,在其下的bin目錄中可找到nvelocity.dll net專案中將用到 並將其複製出來放到我的測試web bin目錄下。到castleproject上看了一下using it大致有四步 先要引入以下命名空間 using com...