forked from NewLifeX/XTemplate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
说明.txt
45 lines (35 loc) · 1.99 KB
/
说明.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2013-12-13
1,T4语法增强,比如<#-表示消去前一个换行,-#>表示消去后一个换行
2011-12-05
1,考虑模版引擎支持资源,这样子,编译的时候,就可以把某些文件当作资源嵌入到DLL里面
2011-11-19
1,可以考虑使用xslt来实现标签式模版
2,不行,用xslt的话,尖括号都得转义,太麻烦了
2011-10-01
1,考虑在项目里面使用T4,然后调用XTemplate,生成代码。T4只是作为桥梁,为此,XTemplate应该为这个调用提供方便。
2011-09-01 07:25
1,可以仿照vt那样设计标签
<vt:set var="data" value="$db.GetData()" />
<vt:foreach from="$db.GetData()" item="data">.......</vt:foreach>
为了外部扩展,可以通用解析这样子的标签:
<x:elm[ name=value]>...</x:elm>
其中x可以指定,XTemplate默认的标签,可以用x,然后每个系统的标签,比如xcms等
2,VTemplate里面有很好的语句
<vt:for from="1" to="9" index="i">
<vt:for from="1" to="$i" index="j">
<vt:expression var="r" args="$i" args="$j" expression="{0}*{1}" />{$:i}*{$:j}={$:r}
</vt:for>
<br />
</vt:for>
标签里面可以使用常量和$开头的变量,标签内容可以使用{$:i}之类的变量
XTemplate如果这样做的话,应该分三次处理:平衡组正则递归匹配标签元素、非标签内容变量元素匹配(如{$:i})、T4解析
3,VTemplate的标签可以指定id和name
ElementCollection<Tag> ListCt = this.Document.DocumentElement.GetChildTagsByName("Category");
这个可以定位到模版里面的某一个标签,这是取模板里所有名为 Category 的标签
这个设计,显然是仿照浏览器Dom的
4,高级的变量表达式
{$user.name length="5" bytelength="8"}
{$user.last format="yyyy-MM-dd HH:mm:ss"}
5,很好的架构,标签可以由订制的标签解析器完成解析
6,XTemplate也应该考虑可以注册函数,允许模版调用外部方法
7,XTemplate应该开放更多的接口