html-template-pro 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+