html-template-pro 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (222) hide show
  1. data/.autotest +9 -0
  2. data/ARTISTIC +131 -0
  3. data/History.txt +4 -0
  4. data/LGPL +504 -0
  5. data/Manifest.txt +221 -0
  6. data/README.rdoc +52 -0
  7. data/Rakefile +18 -0
  8. data/benchmark.rb +136 -0
  9. data/config/website.yml +2 -0
  10. data/ext/html/template/internal/Pro.xs +679 -0
  11. data/ext/html/template/internal/builtin_findfile.inc +361 -0
  12. data/ext/html/template/internal/calc.h +26 -0
  13. data/ext/html/template/internal/calc.inc +120 -0
  14. data/ext/html/template/internal/callback_stubs.inc +63 -0
  15. data/ext/html/template/internal/expr.c +2267 -0
  16. data/ext/html/template/internal/expr.y +476 -0
  17. data/ext/html/template/internal/expr_iface.c +94 -0
  18. data/ext/html/template/internal/exprpstr.h +36 -0
  19. data/ext/html/template/internal/exprpstr.inc +144 -0
  20. data/ext/html/template/internal/exprtool.h +99 -0
  21. data/ext/html/template/internal/exprtool.inc +289 -0
  22. data/ext/html/template/internal/exprtype.h +62 -0
  23. data/ext/html/template/internal/exprval.h +30 -0
  24. data/ext/html/template/internal/extconf.rb +6 -0
  25. data/ext/html/template/internal/internal.c +449 -0
  26. data/ext/html/template/internal/loadfile.h +11 -0
  27. data/ext/html/template/internal/loadfile.inc +171 -0
  28. data/ext/html/template/internal/pabidecl.h +54 -0
  29. data/ext/html/template/internal/pabstract.h +426 -0
  30. data/ext/html/template/internal/parse_expr.h +15 -0
  31. data/ext/html/template/internal/pbuffer.c +76 -0
  32. data/ext/html/template/internal/pbuffer.h +31 -0
  33. data/ext/html/template/internal/pmiscdef.h +54 -0
  34. data/ext/html/template/internal/pparam.h +101 -0
  35. data/ext/html/template/internal/ppport.h +1098 -0
  36. data/ext/html/template/internal/procore.c +1189 -0
  37. data/ext/html/template/internal/procore.h +18 -0
  38. data/ext/html/template/internal/proparam.c +443 -0
  39. data/ext/html/template/internal/proparam.h +571 -0
  40. data/ext/html/template/internal/proscope.h +32 -0
  41. data/ext/html/template/internal/proscope.inc +107 -0
  42. data/ext/html/template/internal/prostate.h +49 -0
  43. data/ext/html/template/internal/prostate.inc +24 -0
  44. data/ext/html/template/internal/provalue.h +14 -0
  45. data/ext/html/template/internal/pstring.h +60 -0
  46. data/ext/html/template/internal/pstrutils.h +25 -0
  47. data/ext/html/template/internal/pstrutils.inc +150 -0
  48. data/ext/html/template/internal/tagstack.h +30 -0
  49. data/ext/html/template/internal/tagstack.inc +65 -0
  50. data/ext/html/template/internal/tmpllog.c +62 -0
  51. data/ext/html/template/internal/tmpllog.h +27 -0
  52. data/ext/html/template/internal/tmplpro.h +218 -0
  53. data/ext/html/template/internal/tmplpro_version.c +35 -0
  54. data/lib/html/template/pro.rb +225 -0
  55. data/script/console +10 -0
  56. data/script/destroy +14 -0
  57. data/script/generate +14 -0
  58. data/script/txt2html +71 -0
  59. data/tasks/extconf.rake +13 -0
  60. data/tasks/extconf/tmplpro.rake +43 -0
  61. data/templates-Pro/a.incl +1 -0
  62. data/templates-Pro/empty.incl +0 -0
  63. data/templates-Pro/include/1/a.incl +1 -0
  64. data/templates-Pro/include/2.out +3 -0
  65. data/templates-Pro/include/2.tmpl +1 -0
  66. data/templates-Pro/include/2/a.incl +1 -0
  67. data/templates-Pro/include/3.tmpl +1 -0
  68. data/templates-Pro/include/4.tmpl +1 -0
  69. data/templates-Pro/include/a.incl +1 -0
  70. data/templates-Pro/test_broken.tmpl +25 -0
  71. data/templates-Pro/test_broken1.out +1 -0
  72. data/templates-Pro/test_broken1.tmpl +1 -0
  73. data/templates-Pro/test_esc1.out +4 -0
  74. data/templates-Pro/test_esc1.tmpl +4 -0
  75. data/templates-Pro/test_esc2.out +5 -0
  76. data/templates-Pro/test_esc2.tmpl +6 -0
  77. data/templates-Pro/test_esc3.out +4 -0
  78. data/templates-Pro/test_esc3.tmpl +4 -0
  79. data/templates-Pro/test_esc4.out +3 -0
  80. data/templates-Pro/test_esc4.tmpl +4 -0
  81. data/templates-Pro/test_expr1.out +26 -0
  82. data/templates-Pro/test_expr1.tmpl +26 -0
  83. data/templates-Pro/test_expr2.out +34 -0
  84. data/templates-Pro/test_expr2.tmpl +34 -0
  85. data/templates-Pro/test_expr3.out +6 -0
  86. data/templates-Pro/test_expr3.tmpl +6 -0
  87. data/templates-Pro/test_expr4.out +4 -0
  88. data/templates-Pro/test_expr4.tmpl +4 -0
  89. data/templates-Pro/test_expr5.out +18 -0
  90. data/templates-Pro/test_expr5.tmpl +18 -0
  91. data/templates-Pro/test_expr6.out +18 -0
  92. data/templates-Pro/test_expr6.tmpl +18 -0
  93. data/templates-Pro/test_expr7.out +44 -0
  94. data/templates-Pro/test_expr7.tmpl +20 -0
  95. data/templates-Pro/test_expr8.out +15 -0
  96. data/templates-Pro/test_expr8.tmpl +15 -0
  97. data/templates-Pro/test_if1.out +25 -0
  98. data/templates-Pro/test_if1.tmpl +28 -0
  99. data/templates-Pro/test_if2.out +17 -0
  100. data/templates-Pro/test_if2.tmpl +25 -0
  101. data/templates-Pro/test_if3.out +12 -0
  102. data/templates-Pro/test_if3.tmpl +14 -0
  103. data/templates-Pro/test_if4.out +15 -0
  104. data/templates-Pro/test_if4.tmpl +31 -0
  105. data/templates-Pro/test_if5.out +16 -0
  106. data/templates-Pro/test_if5.tmpl +16 -0
  107. data/templates-Pro/test_if6.out +15 -0
  108. data/templates-Pro/test_if6.tmpl +31 -0
  109. data/templates-Pro/test_if7.out +14 -0
  110. data/templates-Pro/test_if7.tmpl +18 -0
  111. data/templates-Pro/test_include1.out +23 -0
  112. data/templates-Pro/test_include1.tmpl +7 -0
  113. data/templates-Pro/test_include2.out +120 -0
  114. data/templates-Pro/test_include2.tmpl +10 -0
  115. data/templates-Pro/test_include3.out +8 -0
  116. data/templates-Pro/test_include3.tmpl +8 -0
  117. data/templates-Pro/test_include4.out +7 -0
  118. data/templates-Pro/test_include4.tmpl +6 -0
  119. data/templates-Pro/test_include5.out +7 -0
  120. data/templates-Pro/test_include5.tmpl +6 -0
  121. data/templates-Pro/test_loop1.erb +17 -0
  122. data/templates-Pro/test_loop1.out +12 -0
  123. data/templates-Pro/test_loop1.tmpl +16 -0
  124. data/templates-Pro/test_loop2.erb +19 -0
  125. data/templates-Pro/test_loop2.out +40 -0
  126. data/templates-Pro/test_loop2.tmpl +19 -0
  127. data/templates-Pro/test_loop3.out +38 -0
  128. data/templates-Pro/test_loop3.tmpl +40 -0
  129. data/templates-Pro/test_loop4.out +44 -0
  130. data/templates-Pro/test_loop4.tmpl +20 -0
  131. data/templates-Pro/test_loop5.out +9 -0
  132. data/templates-Pro/test_loop5.tmpl +11 -0
  133. data/templates-Pro/test_loop6.out +33 -0
  134. data/templates-Pro/test_loop6.tmpl +15 -0
  135. data/templates-Pro/test_malloc.tmpl +1 -0
  136. data/templates-Pro/test_userfunc1.out +14 -0
  137. data/templates-Pro/test_userfunc1.tmpl +14 -0
  138. data/templates-Pro/test_userfunc2.out +35 -0
  139. data/templates-Pro/test_userfunc2.tmpl +5 -0
  140. data/templates-Pro/test_userfunc3.out +5 -0
  141. data/templates-Pro/test_userfunc3.tmpl +5 -0
  142. data/templates-Pro/test_userfunc4.out +10 -0
  143. data/templates-Pro/test_userfunc4.tmpl +10 -0
  144. data/templates-Pro/test_userfunc5.out +4 -0
  145. data/templates-Pro/test_userfunc5.tmpl +4 -0
  146. data/templates-Pro/test_userfunc6.out +4 -0
  147. data/templates-Pro/test_userfunc6.tmpl +4 -0
  148. data/templates-Pro/test_var1.erb +23 -0
  149. data/templates-Pro/test_var1.out +20 -0
  150. data/templates-Pro/test_var1.tmpl +23 -0
  151. data/templates-Pro/test_var2.erb +7 -0
  152. data/templates-Pro/test_var2.out +6 -0
  153. data/templates-Pro/test_var2.tmpl +7 -0
  154. data/templates-Pro/test_var3.out +14 -0
  155. data/templates-Pro/test_var3.tmpl +16 -0
  156. data/templates/case_loop.tmpl +3 -0
  157. data/templates/context.tmpl +3 -0
  158. data/templates/counter.tmpl +2 -0
  159. data/templates/default.tmpl +1 -0
  160. data/templates/default_escape.tmpl +4 -0
  161. data/templates/double_loop.tmpl +7 -0
  162. data/templates/escape.tmpl +5 -0
  163. data/templates/global-loops.tmpl +9 -0
  164. data/templates/globals.tmpl +11 -0
  165. data/templates/if.tmpl +7 -0
  166. data/templates/ifelse.tmpl +6 -0
  167. data/templates/include.tmpl +14 -0
  168. data/templates/include_path/a.tmpl +2 -0
  169. data/templates/include_path/b.tmpl +1 -0
  170. data/templates/include_path/inner.tmpl +1 -0
  171. data/templates/include_path/one.tmpl +2 -0
  172. data/templates/include_path2/inner.tmpl +1 -0
  173. data/templates/included.tmpl +4 -0
  174. data/templates/included2.tmpl +3 -0
  175. data/templates/js.tmpl +1 -0
  176. data/templates/long_loops.tmpl +307 -0
  177. data/templates/loop-context.tmpl +2 -0
  178. data/templates/loop-if.tmpl +9 -0
  179. data/templates/medium.tmpl +217 -0
  180. data/templates/multiline_tags.tmpl +7 -0
  181. data/templates/newline_test1.tmpl +1 -0
  182. data/templates/newline_test2.tmpl +1 -0
  183. data/templates/other-loop.tmpl +7 -0
  184. data/templates/outer.tmpl +3 -0
  185. data/templates/query-test.tmpl +21 -0
  186. data/templates/query-test2.tmpl +12 -0
  187. data/templates/recursive.tmpl +2 -0
  188. data/templates/searchpath/included.tmpl +4 -0
  189. data/templates/searchpath/three.tmpl +1 -0
  190. data/templates/searchpath/two.tmpl +2 -0
  191. data/templates/simple-loop-nonames.tmpl +13 -0
  192. data/templates/simple-loop.tmpl +12 -0
  193. data/templates/simple.tmpl +9 -0
  194. data/templates/unless.tmpl +5 -0
  195. data/templates/urlescape.tmpl +3 -0
  196. data/templates/vanguard1.tmpl +2 -0
  197. data/templates/vanguard2.tmpl +3 -0
  198. data/test/templates/complex.tmpl +24 -0
  199. data/test/templates/foo.tmpl +6 -0
  200. data/test/templates/func.tmpl +2 -0
  201. data/test/templates/loop.tmpl +14 -0
  202. data/test/templates/negative.tmpl +1 -0
  203. data/test/templates/numerics.tmpl +6 -0
  204. data/test/templates/register.tmpl +2 -0
  205. data/test/test_basic.rb +23 -0
  206. data/test/test_coderefs.rb +16 -0
  207. data/test/test_complex.rb +106 -0
  208. data/test/test_helper.rb +3 -0
  209. data/test/test_html_template.rb +583 -0
  210. data/test/test_html_template_internal_extn.rb +10 -0
  211. data/test/test_html_template_pro.rb +177 -0
  212. data/test/test_path_like_variable_scope.rb +59 -0
  213. data/test/test_random.rb +21 -0
  214. data/test/test_realloc.rb +16 -0
  215. data/test/test_register.rb +25 -0
  216. data/test/test_tmplpro.rb +9 -0
  217. data/test/tests.rb +9 -0
  218. data/website/index.txt +57 -0
  219. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  220. data/website/stylesheets/screen.css +159 -0
  221. data/website/template.html.erb +50 -0
  222. metadata +303 -0
@@ -0,0 +1,20 @@
1
+ <HTML>
2
+ <body>
3
+ <H1> test_loop4 </H1>
4
+
5
+ We test inner loop variables
6
+
7
+ <table>
8
+ <TMPL_LOOP NAME=HASHREF1>
9
+ <tr>
10
+ <td>first:<tmpl_var NAME="__first__"></td>
11
+ <td>last: <tmpl_var NAME="__last__"></td>
12
+ <td>odd:<tmpl_var NAME="__odd__"></td>
13
+ <td>inner:<tmpl_var NAME="__inner__"></td>
14
+ <td>count:<tmpl_var NAME="__counter__"></td>
15
+ </tr>
16
+ </tmpl_loop>
17
+ </table>
18
+
19
+ </body>
20
+ </HTML>
@@ -0,0 +1,9 @@
1
+ <H1> test_loop5 </H1>
2
+
3
+
4
+ should be VAR1 should be VAR1
5
+
6
+ should be VAR1 should be VAR1
7
+
8
+
9
+ <H1> end test_loop5 </H1>
@@ -0,0 +1,11 @@
1
+ <H1> test_loop5 </H1>
2
+
3
+ <TMPL_LOOP
4
+
5
+ NAME=HASHREF2>
6
+ <tmpl_var
7
+ VAR1> should be VAR1 <tmpl_var
8
+ VAR1> should be VAR1
9
+ </TMPL_LOOP>
10
+
11
+ <H1> end test_loop5 </H1>
@@ -0,0 +1,33 @@
1
+ <H1> test_loop6: global vars inside a loop </H1>
2
+
3
+ Inside a Loop
4
+
5
+ 1
6
+
7
+ A
8
+
9
+ B
10
+
11
+
12
+ 2
13
+
14
+ A
15
+
16
+ B
17
+
18
+
19
+ 3
20
+
21
+ A
22
+
23
+ B
24
+
25
+
26
+ Outside a Loop
27
+
28
+ A
29
+
30
+ B
31
+
32
+
33
+ <H1> end test_loop6 </H1>
@@ -0,0 +1,15 @@
1
+ <H1> test_loop6: global vars inside a loop </H1>
2
+
3
+ Inside a Loop
4
+ <TMPL_LOOP NAME="OUTER">
5
+ <TMPL_VAR NAME="TEST">
6
+ <TMPL_LOOP NAME="INNER">
7
+ <TMPL_VAR NAME="TST">
8
+ </TMPL_LOOP>
9
+ </TMPL_LOOP>
10
+ Outside a Loop
11
+ <TMPL_LOOP NAME="INNER">
12
+ <TMPL_VAR NAME="TST">
13
+ </TMPL_LOOP>
14
+
15
+ <H1> end test_loop6 </H1>
@@ -0,0 +1 @@
1
+ <tmpl_var name=text escape=HTML>
@@ -0,0 +1,14 @@
1
+ <HTML><BODY>
2
+ <H1> test expr with perl-supplied functions </H1>
3
+ hello('dad')=hi, dad!
4
+ lc('DAD')=dad
5
+ lc(ONE)=1
6
+ sprintf('1+1=%d', TWO)=1+1=2
7
+ <H1> test expr with user-defined functions </H1>
8
+ registered_func('self')=self
9
+ hello_string()=hello!
10
+ arglist()=[]
11
+ arglist('')=[]
12
+ arglist('','')=[][]
13
+ arglist('a','b')=[a][b]
14
+ </body></html>
@@ -0,0 +1,14 @@
1
+ <HTML><BODY>
2
+ <H1> test expr with perl-supplied functions </H1>
3
+ hello('dad')=<tmpl_var expr="hello('dad')">
4
+ lc('DAD')=<tmpl_var expr="lc('DAD')">
5
+ lc(ONE)=<tmpl_var expr="lc(ONE)">
6
+ sprintf('1+1=%d', TWO)=<TMPL_VAR EXPR="sprintf('1+1=%d', TWO)">
7
+ <H1> test expr with user-defined functions </H1>
8
+ registered_func('self')=<tmpl_var expr="registered_func('self')">
9
+ hello_string()=<tmpl_var expr="hello_string()">
10
+ arglist()=<tmpl_var expr="arglist()">
11
+ arglist('')=<tmpl_var expr="arglist('')">
12
+ arglist('','')=<tmpl_var expr="arglist('','')">
13
+ arglist('a','b')=<tmpl_var expr="arglist('a','b')">
14
+ </body></html>
@@ -0,0 +1,35 @@
1
+ <HTML><BODY>
2
+ <H1> test_expr5 (include) </H1>
3
+ <HTML><BODY>
4
+ <H1> test_if2 </H1>
5
+ undefined (TRUE)
6
+ (if test 1)
7
+
8
+ undefined (FALSE)
9
+ (if test 2)
10
+
11
+ defined (if test 3 level 1) HIDDEN
12
+
13
+
14
+
15
+ <H1> END test_if2 </H1>
16
+ </body></html>
17
+
18
+ <H1> test_if1 </H1>
19
+
20
+
21
+
22
+
23
+
24
+
25
+ ------------------ <hr>
26
+ defined (TRUE)
27
+ (if test 1)
28
+
29
+ defined (FALSE)
30
+ (if test 2)
31
+
32
+
33
+
34
+
35
+ </body></html>
@@ -0,0 +1,5 @@
1
+ <HTML><BODY>
2
+ <H1> test_expr5 (include) </H1>
3
+ <tmpl_include EXPR="sprintf('test_if%d.tmpl',TWO)">
4
+ <tmpl_include EXPR="FILE">
5
+ </body></html>
@@ -0,0 +1,5 @@
1
+ <HTML><BODY>
2
+ <H1> test_expr6 (per_object_call) </H1>
3
+ Z-arg
4
+ Z-arg
5
+ </body></html>
@@ -0,0 +1,5 @@
1
+ <HTML><BODY>
2
+ <H1> test_expr6 (per_object_call) </H1>
3
+ <tmpl_var EXPR="per_object_call('Z')">
4
+ <tmpl_var EXPR="perobjectcall2('Z')">
5
+ </body></html>
@@ -0,0 +1,10 @@
1
+ <HTML><BODY>
2
+ <H1> test unescape in func args </H1>
3
+ arglist('\'','s\a\\nki')=['][sa\nki]
4
+ arglist('\'','\a\\n')=['][a\n]
5
+ arglist('\'','\a\\')=['][a\]
6
+ arglist('\a\\')=[a\]
7
+ arglist('\a')=[a]
8
+ arglist('\\')=[\]
9
+ arglist('\'')=[']
10
+ </body></html>
@@ -0,0 +1,10 @@
1
+ <HTML><BODY>
2
+ <H1> test unescape in func args </H1>
3
+ arglist('\'','s\a\\nki')=<tmpl_var expr="arglist('\'','s\a\\nki')">
4
+ arglist('\'','\a\\n')=<tmpl_var expr="arglist('\'','\a\\n')">
5
+ arglist('\'','\a\\')=<tmpl_var expr="arglist('\'','\a\\')">
6
+ arglist('\a\\')=<tmpl_var expr="arglist('\a\\')">
7
+ arglist('\a')=<tmpl_var expr="arglist('\a')">
8
+ arglist('\\')=<tmpl_var expr="arglist('\\')">
9
+ arglist('\'')=<tmpl_var expr="arglist('\'')">
10
+ </body></html>
@@ -0,0 +1,4 @@
1
+ <HTML><BODY>
2
+ <H1> test on nested functions </H1>
3
+ F1: 1 F2: 2 3
4
+ </body></html>
@@ -0,0 +1,4 @@
1
+ <HTML><BODY>
2
+ <H1> test on nested functions </H1>
3
+ <TMPL_VAR EXPR="f1(ONE, f2(TWO), THREE)">
4
+ </body></html>
@@ -0,0 +1,4 @@
1
+ <HTML><BODY>
2
+ <H1> test on nested functions </H1>
3
+ 1
4
+ </body></html>
@@ -0,0 +1,4 @@
1
+ <HTML><BODY>
2
+ <H1> test on nested functions </H1>
3
+ <TMPL_VAR EXPR="fUNDEF()==fUNDEF()">
4
+ </body></html>
@@ -0,0 +1,23 @@
1
+ <H1> test_var1 </H1>
2
+ ------------------ <br>
3
+ <bar Name>
4
+
5
+ <%= params[:VAR1] %> step1
6
+
7
+ <%=
8
+ params[:VAR1] %> <%= params[:VAR1] %> step3 <%= params[:VAR1] %> <%=
9
+ params[:VAR2] %> step5 <%=
10
+ params[:VAR3] %> step6 <%= params[:VAR10] %> step7
11
+ <BR> <%= params[:VAR10] %> step8 <%= params[:VAR10] %> step9
12
+
13
+ <%= params[:VAR1] %> step10
14
+
15
+ <%= params[:VAR4] || "test 1 passed. ':)" %>
16
+
17
+ template tags could be decorated as html comments
18
+ <%= params[:VAR4] || "test 2 passed. ':)" %>
19
+
20
+ template tags could also be decorated as xml (starting from version 0.90)
21
+ <%= params[:VAR1] %> no trailing slash here.
22
+ ----- end ------- <br>
23
+ <H1> end test_var1 </H1>
@@ -0,0 +1,20 @@
1
+ <H1> test_var1 </H1>
2
+ ------------------ <br>
3
+ <bar Name>
4
+
5
+ VAR1 step1
6
+
7
+ VAR1 VAR1 step3 VAR1 VAR2 step5 VAR3 step6 VAR10 step7
8
+ <BR> VAR10 step8 VAR10 step9
9
+
10
+ VAR1 step10
11
+
12
+ test 1 passed. ':)
13
+
14
+ template tags could be decorated as html comments
15
+ test 2 passed. ':)
16
+
17
+ template tags could also be decorated as xml (starting from version 0.90)
18
+ VAR1 no trailing slash here.
19
+ ----- end ------- <br>
20
+ <H1> end test_var1 </H1>
@@ -0,0 +1,23 @@
1
+ <H1> test_var1 </H1>
2
+ ------------------ <br>
3
+ <bar Name>
4
+
5
+ <tmPl_var VAR1> step1
6
+
7
+ <tmpl_var
8
+ "VAR1"> <tmpl_var NAME= "VAR1" > step3 <Tmpl_var NAME ="VAR1" > <TMPL_vAr
9
+ NAME ="VAR2" > step5 <tmpl_Var NAME
10
+ ="VAR3" > step6 <tmpl_var NAME= VAR10 > step7
11
+ <BR> <tmpl_var NAME=VAR10 > step8 <tmpl_var NAME =VAR10> step9
12
+
13
+ <tmpl_var NAME= 'VAR1' > step10
14
+
15
+ <tmpl_var NAME = "VAR4" default="test 1 passed. ':)">
16
+
17
+ template tags could be decorated as html comments
18
+ <!-- tmpl_var NAME = "VAR4" default="test 2 passed. ':)" -->
19
+
20
+ template tags could also be decorated as xml (starting from version 0.90)
21
+ <tmpl_var name="VAR1" /> no trailing slash here.
22
+ ----- end ------- <br>
23
+ <H1> end test_var1 </H1>
@@ -0,0 +1,7 @@
1
+ <HTML><BODY>
2
+ <H1> test_var2 </H1>
3
+ <% if params[:VAR4] %> <%= params[:VAR4] || "test failed" %>
4
+ <% else %> <%= params[:VAR4] || "test passed" %>
5
+ <% end %>
6
+ <H1> END test_var2 </H1>
7
+ </body></html>
@@ -0,0 +1,6 @@
1
+ <HTML><BODY>
2
+ <H1> test_var2 </H1>
3
+ test passed
4
+
5
+ <H1> END test_var2 </H1>
6
+ </body></html>
@@ -0,0 +1,7 @@
1
+ <HTML><BODY>
2
+ <H1> test_var2 </H1>
3
+ <tmpl_iF VAR4> <tmpl_var DEFAULT="test failed" naMe="VAR4">
4
+ <tmpl_else> <tmpl_var DEFAULT="test passed" naMe="VAR4">
5
+ </tmpl_if>
6
+ <H1> END test_var2 </H1>
7
+ </body></html>
@@ -0,0 +1,14 @@
1
+ <HTML><BODY>
2
+ <H1> test_var3 </H1>
3
+ \<>"; %FAhidden:
4
+ end
5
+
6
+ \%3C%3E%22%3B%20%25FAhidden%3A%0D%0Aend
7
+
8
+ \&lt;&gt;&quot;; %FAhidden:
9
+ end
10
+
11
+ \\<>\"; %FAhidden:\r\nend
12
+
13
+ <H1> END test_var3 </H1>
14
+ </body></html>
@@ -0,0 +1,16 @@
1
+ <HTML><BODY>
2
+ <H1> test_var3 </H1>
3
+ <tmpl_iF VAR4> <tmpl_var escape=0 DEFAULT="test failed" NAME="STUFF1">
4
+ <tmpl_else> <tmpl_var DEFault="test failed" name="STUFF1" ESCApe=0>
5
+ </tmpl_if>
6
+ <tmpl_iF VAR4> <tmpl_var escape="URL" DEFAULT="test failed" NAME="STUFF1">
7
+ <tmpl_else> <tmpl_var DEFault="test failed" name="STUFF1" ESCApe="URL">
8
+ </tmpl_if>
9
+ <tmpl_iF VAR4> <tmpl_var escape='HTML' DEFAULT="test failed" NAME="STUFF1">
10
+ <tmpl_else> <tmpl_var DEFault="test failed" name="STUFF1" ESCApe="HTML">
11
+ </tmpl_if>
12
+ <tmpl_iF VAR4> <tmpl_var escape="JS" DEFAULT="test failed" NAME="STUFF1">
13
+ <tmpl_else> <tmpl_var DEFault="test failed" name="STUFF1" ESCApe='js'>
14
+ </tmpl_if>
15
+ <H1> END test_var3 </H1>
16
+ </body></html>
@@ -0,0 +1,3 @@
1
+ <tmpl_loop name="loop"><tmpl_var foo> <tmpl_var FOO>
2
+ </tmpl_loop>
3
+
@@ -0,0 +1,3 @@
1
+ <TMPL_LOOP FRUIT><TMPL_IF __LAST__>and </TMPL_IF><TMPL_VAR KIND><TMPL_UNLESS __LAST__>, <TMPL_ELSE>.</TMPL_UNLESS></TMPL_LOOP>
2
+
3
+ <TMPL_LOOP PINGPONG><TMPL_IF __ODD__>ping<TMPL_ELSE>pong</TMPL_IF></TMPL_LOOP>
@@ -0,0 +1,2 @@
1
+ <tmpl_loop foo><tmpl_var __counter__><tmpl_var a></tmpl_loop>
2
+ <tmpl_loop outer><tmpl_var __counter__><tmpl_loop inner><tmpl_var __counter__><tmpl_var a></tmpl_loop></tmpl_loop>
@@ -0,0 +1 @@
1
+ cause it's <tmpl_var name=a default=getting> hard to <tmpl_var default=think b>, and <tmpl_var c default=my> <tmpl_var name=cl default=clots> are <tmpl_var name=start escape=1 default=foo>ing to <tmpl_var escape=html name=sh default=shrink>
@@ -0,0 +1,4 @@
1
+ <TMPL_VAR STUFF>
2
+ <TMPL_LOOP LOOP><TMPL_VAR MORE_STUFF></TMPL_LOOP>
3
+
4
+ be<TMPL_INCLUDE default.tmpl>
@@ -0,0 +1,7 @@
1
+ <tmpl_loop myloop>
2
+ One of David's numbers is <tmpl_var var>.
3
+ </tmpl_loop>
4
+
5
+ <tmpl_loop myloop>
6
+ VAR TIME: <tmpl_var var>
7
+ </tmpl_loop>
@@ -0,0 +1,5 @@
1
+ This should be a bunch of HTML-escaped stuff:
2
+ <TMPL_VAR ESCAPE=1 STUFF>
3
+ <TMPL_VAR ESCAPE=HTML STUFF>
4
+ <TMPL_VAR ESCAPE="HTML" STUFF>
5
+ <TMPL_VAR ESCAPE="HtMl" STUFF>
@@ -0,0 +1,9 @@
1
+ global: <tmpl_var global>
2
+ <tmpl_loop outer_loop>
3
+ outer loop foo: <tmpl_var foo>
4
+ <tmpl_loop inner_loop>
5
+ inner loop bar: <tmpl_var bar>
6
+ inner loop foo: <tmpl_var foo>
7
+ inner loop global: <tmpl_var global>
8
+ </tmpl_loop>
9
+ </tmpl_loop>
@@ -0,0 +1,11 @@
1
+
2
+ Some global var: <TMPL_VAR GLOBAL>
3
+
4
+ Some Loop.
5
+ <TMPL_LOOP OUTER_LOOP>
6
+ <TMPL_LOOP LOOP>
7
+ Some local data <TMPL_VAR LOCAL><TMPL_VAR GLOBAL>
8
+ Something global, but hidden <TMPL_IF HIDDEN_GLOBAL>Hidden!</TMPL_IF>
9
+ </TMPL_LOOP>
10
+ </TMPL_LOOP>
11
+
@@ -0,0 +1,7 @@
1
+ This is a line outside the if.
2
+ <TMPL_IF BOOL>
3
+ INSIDE the if
4
+ </TMPL_IF>
5
+ <TMPL_UNLESS BOOL>
6
+ unless
7
+ </tmpl_unless>
@@ -0,0 +1,6 @@
1
+ This is a line outside the if.
2
+ <TMPL_IF BOOL>
3
+ INSIDE IF
4
+ <TMPL_ELSE>
5
+ INSIDE ELSE
6
+ </TMPL_IF>
@@ -0,0 +1,14 @@
1
+ 1
2
+ 1
3
+ 1
4
+ 2
5
+ 2
6
+ 2
7
+ 3
8
+ 3
9
+ 3
10
+ <TMPL_INCLUDE NAME="included.tmpl">
11
+ 6
12
+ 6
13
+ 6
14
+