STL模闆語言
STL,全稱爲 XYCMS站群系統模版标簽語言,你可以把STL語言理解爲帶有特定意義的占位符,這(zhè)些占位符通過(guò)标簽(元素及實體)來标記出需要調取并顯示的網站數據及功能(néng);在生成(chéng)靜态頁面(miàn)的過(guò)程中,XYCMS 系統通過(guò)STL解析引擎解析這(zhè)些占位符,從站點中獲取對(duì)應的數據,最終將(jiāng)占位符替換爲帶有數據或功能(néng)的HTML标簽并在服務器中生成(chéng)對(duì)應的靜态頁面(miàn)文件。
XYCMS站群系統的核心由内容管理與内容解析兩(liǎng)部分組成(chéng),STL語言就(jiù)是内容管理與内容解析的橋梁,將(jiāng)後(hòu)台管理的各種(zhǒng)動态數據最終解析爲用戶能(néng)訪問的靜态頁面(miàn)。
除了將(jiāng)後(hòu)台的動态數據解析爲前台的靜态頁面(miàn),STL語言還(hái)能(néng)夠實現諸如功能(néng)互動、動态顯示、數據統計、數據庫解析等一系列功能(néng);除了 XYCMS 系統自帶的STL标簽,各類插件也擁有自己的STL标簽,用以實現不同的功能(néng)。
語言規則
和 HTML 語言一樣,STL語言也是一種(zhǒng)标準通用标記語言,采用與 HTML 語言一緻的語法和規則。
STL語言并不複雜,但功能(néng)強大,其主要規則如下:
标簽不區分大小寫 STL标簽是不區分大小寫的,和 HTML 标簽一樣,
<stl:a>
和<STL:A>
是相同的。屬性值區分大小寫 STL标簽的屬性值是區分大小寫的,例如
<stl:a channelIndex="News">
和<stl:a channelIndex="NEWS">
是不同的。結束标記可以省略 與 HTML 一樣,在沒(méi)有子标簽的情況下,STL 可以省略結束标記。例如
<stl:value></stl:value>
與<stl:value />
是一緻的。标簽可以嵌套标簽 與 HTML 一樣,STL 的标簽可以相互嵌套,將(jiāng)一個或多個STL标簽放到其他STL标簽内部。例如
<stl:a><stl:content type="title"></stl:content></stl:a>
。
元素與實體
STL标簽由元素與實體組成(chéng),元素以尖括号 <>
作爲标記,實體以大括号 {}
作爲标記。
例如顯示内容标題可以采用STL 元素: <stl:content type="title"></stl:content>
也可以采用STL 實體: {stl:content type="title"}
或者内容實體的簡寫: {content.title}
。
STL元素和STL實體的最大區别在于元素能(néng)夠嵌套子标簽而實體無法嵌套子标簽,例如鏈接标簽 <stl:a channelIndex="新聞">News</stl:a>
(將(jiāng)解析爲HTML A标簽)無法通過(guò)實體 {stl:a channelIndex="新聞"}
(將(jiāng)解析爲對(duì)應的鏈接地址字符串)表示。
在模闆中你可以使用元素也可以使用實體,通常情況下在獨立使用時(shí)采用STL元素,在嵌入标簽屬性時(shí)采用STL實體,例如獨立使用時(shí)采用:<stl:content type="summary"></stl:content>
,嵌入屬性時(shí)采用:<stl:a title="{stl:content type=summary}">
。
STL标簽的屬性值使用英文雙引号标識,例如:<stl:content type="title"></stl:content>
,STL實體的屬性可以使用英文雙引号、英文單引号或者無标識,例如:{stl:content type="title"}
,{stl:content type='title'}
或者{stl:content type=title}
均爲正确的寫法。
地址通配符
在STL标簽中,地址使用通配符(“~”)和(“@”)來進(jìn)行存儲和讀取,您可以使用通配符(“~”)來表示應用程序的根目錄,使用通配符(“@”)來表示當前站點的域名地址,而不需要將(jiāng)地址硬編碼爲文件的絕對(duì)地址。
例如,您可以使用 <stl:a href="index2.html">主站</stl:a>
生成(chéng)指向(xiàng)到主站點index.html文件的鏈接,使用 <stl:a href="@/index.html">本站</stl:a>
生成(chéng)指向(xiàng)到當前站點index.html文件的鏈接。
插件标簽
《STL語言參考手冊》僅列出了系統自帶标簽,不包含具體插件的标簽使用說(shuō)明,如需要使用插件标簽,請查看具體的插件使用說(shuō)明和插件源碼。