-
Notifications
You must be signed in to change notification settings - Fork 2
/
README
118 lines (86 loc) · 2.79 KB
/
README
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
TODO:
1. Optimize the compiled function by abandoning using keyword "with".
( Every commit will be considered )
( 欢迎任何人提交代码 )
Feature:
1. Support comment
<%# comment %>
2. Support encodeURIComponent
<%:u=href %>
3. Support encodeHTML
<% var s = "<script>var s= 'encodeHTML'<\/script>"; %>
<%:h=str %>
4. Support developers custom template function
var template = '<% output("custom function"); %>';
app.tpl(template, {}, {
fns : {
output : 'function(str){__s += str}'
}
})
5. Good performance
6. Support error tips
使用方法:
语法类似JSP,在JSP的基础上增加了一些特性,当然也去掉了很多
1. 注释
<%# comment %>
<% /* comment */ %>
<% /** comment */ %>
不支持(Not support) <% //comment %>
2. 普通语句
<%
var s = 'template'; /* 代码块里是JavaScript语句 */
if(s == 'template'){
%>
template
<%
}
%>
3. 输出变量
a. 直接输出
<% var str = "HelloWorld!"; %>
<%=str %>
程序将直接输出"HelloWorld!"
b. encodeURIComponent
<% var str = "HelloWorld! "; %>
<%:u=str %>
程序将输出"HelloWorld!%20"
c. encodeHTML
<% var str = "<script>var s = 'HelloWorld!';<\/script>"; %>
<%:h=str %>
程序将输出"<script>var s = 'HelloWorld!';</script>"
4. 内置模板函数
目前内置了两个模板函数,分别是print和encodeHTML
a. print
<%
var s = "HelloWorld!";
print(s);
%>
等价于
<%
var s = "HelloWorld!";
%>
<%=s%>
b. encodeHTML
<%
var str = "<script>var s = 'HelloWorld!';<\/script>";
print(encodeHTML(str));
%>
等价于
<%
var str = "<script>var s = 'HelloWorld!';<\/script>";
%>
<%:h=str %>
5. 自定义模板函数
开发者可以根据自己的喜好,自定义模板内可使用的函数,如下:
<%
var str = "<script>var s = 'HelloWorld!';<\/script>";
encodeHTMLAndPrint(str);
%>
app.tpl(template, {}, {
fns : {
encodeHTMLAndPrint : 'function(s){print(encodeHTML(s))}'
}
});
在这里encodeHTMLAndPrint函数为开发者自定义函数,调用了内置函数print和encodeHTML输出一个转义好的字符串
注意:开发者尽量不要应用内置变量"__s"
Good Luck