功能支持
Lite 是一个模板平台,而不仅仅是一个模板系统,我们可以在这个平台上自己设计模板语法。 在现有基础上,我们可以通过如下三种形式扩展模板语法。
- 扩展名称空间标签语法。
- 扩展名称空间属性语法。
- 扩展文本语法。
API结构
Lite 一共有9中中间代码,一个通用的结束指令,一个批量条件接口,一个静态文本添加接口,共有12个中间指令操作接口。 他们分别是:
-
append(text)
用于添加静态文本。 执行
-
appendEL(el)
用于添加一段表达式输出(不编码) '}"]; // 执行
-
appendIf(el)
用于开始一个条件判断(结束用appendEnd()) 执行
-
appendElse(el)
用于开始一个条件判断(结束用appendEnd()) 执行
-
appendEnd()
通用的结束符(用于结束一个if语法,for循环,plugin等等...)
-
appendFor(varName, el, status)
开始一个for循环,el表达式需要是一个符合javascript语法规则的表达式(不允许Core:for 标签中的 .. 语法)
el值类型只能有 list(Array),number(循环次数),map(Object,循环key 相当于 JavaScript的 for in 语法) 执行
-
appendXA(attrName, el)
添加一个XML 属性,当attrName 为空时,只做属性编码输出,不做属性语法输出(输出判断+属性名="..")。 执行
-
appendXT(el)
添加一个XML文本输出
-
appendVar(varName, el)
申明一个模板变量
-
appendCapture(varName)
捕捉一段输出,将结果申明为指定变量名
-
appendPlugin(pluginClass, pluginConfig)
添加插件
-
appendAll(list)
将一组中间代码,批量添加进来。
示例1
有没有为javascript多行字符串申明苦恼过?我们可以写一个模板扩展,让这个事情顺利一点。
示例2
有时候,我们需要吧一些有换行的文本显示成换行,但是,有希望代码是编码安全的。通常,这种功能只能通过内置函数实现。 现在,我们尝试用一个插件解决这个问题。
真实运用示例 [ 展开示例 ]
代码着色语法书写形式如下:
这个插件的实现在吗在layout.xhtml 中。摘录如下:
该文档系统中,有个常用的模板语法扩展:代码着色语法就是通过模板扩展来方便书写的。