annotate .cms/lib/codemirror/mode/smarty/index.html @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 <!doctype html>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3 <title>CodeMirror: Smarty mode</title>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 <meta charset="utf-8"/>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 <link rel=stylesheet href="../../doc/docs.css">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 <link rel="stylesheet" href="../../lib/codemirror.css">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 <script src="../../lib/codemirror.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 <script src="../xml/xml.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 <script src="smarty.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 <div id=nav>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 <a href="https://codemirror.net/5"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png" alt=""></a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 <ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 <li><a href="../../index.html">Home</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 <li><a href="../../doc/manual.html">Manual</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 <li><a href="https://github.com/codemirror/codemirror5">Code</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 </ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 <ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 <li><a href="../index.html">Language modes</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 <li><a class=active href="#">Smarty</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 </ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 <article>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 <h2>Smarty mode</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 <form><textarea id="code" name="code">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 {extends file="parent.tpl"}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 {include file="template.tpl"}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 {* some example Smarty content *}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 {if isset($name) && $name == 'Blog'}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 This is a {$var}.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 {$integer = 451}, {$array[] = "a"}, {$stringvar = "string"}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 {assign var='bob' value=$var.prop}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 {elseif $name == $foo}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 {function name=menu level=0}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 {foreach $data as $entry}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 {if is_array($entry)}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 - {$entry@key}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 {menu data=$entry level=$level+1}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 {else}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 {$entry}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 {/if}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 {/foreach}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 {/function}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 {/if}</textarea></form>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 <p>Mode for Smarty version 2 or 3, which allows for custom delimiter tags.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 <p>Several configuration parameters are supported:</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 <ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 <li><code>leftDelimiter</code> and <code>rightDelimiter</code>,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 which should be strings that determine where the Smarty syntax
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 starts and ends.</li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 <li><code>version</code>, which should be 2 or 3.</li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 <li><code>baseMode</code>, which can be a mode spec
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 like <code>"text/html"</code> to set a different background mode.</li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 </ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 <p><strong>MIME types defined:</strong> <code>text/x-smarty</code></p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 <h3>Smarty 2, custom delimiters</h3>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 <form><textarea id="code2" name="code2">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 {--extends file="parent.tpl"--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 {--include file="template.tpl"--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 {--* some example Smarty content *--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 {--if isset($name) && $name == 'Blog'--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 This is a {--$var--}.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 {--$integer = 451--}, {--$array[] = "a"--}, {--$stringvar = "string"--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 {--assign var='bob' value=$var.prop--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 {--elseif $name == $foo--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 {--function name=menu level=0--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 {--foreach $data as $entry--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 {--if is_array($entry)--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 - {--$entry@key--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 {--menu data=$entry level=$level+1--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 {--else--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 {--$entry--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 {--/if--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 {--/foreach--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 {--/function--}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 {--/if--}</textarea></form>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 <h3>Smarty 3</h3>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 <textarea id="code3" name="code3">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 Nested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 <script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 function test() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 console.log("Smarty 3 permits single curly braces followed by whitespace to NOT slip into Smarty mode.");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 </script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 {assign var=foo value=[1,2,3]}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 {assign var=foo value=['y'=>'yellow','b'=>'blue']}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 {assign var=foo value=[1,[9,8],3]}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 {$foo=$bar+2} {* a comment *}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 {$foo.bar=1} {* another comment *}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 {$foo = myfunct(($x+$y)*3)}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 {$foo = strlen($bar)}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108 {$foo.bar.baz=1}, {$foo[]=1}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 Smarty "dot" syntax (note: embedded {} are used to address ambiguities):
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 {$foo.a.b.c} => $foo['a']['b']['c']
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 {$foo.a.$b.c} => $foo['a'][$b]['c']
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 {$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c']
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 {$foo.a.{$b.c}} => $foo['a'][$b['c']]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 {$object->method1($x)->method2($y)}</textarea>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 <script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 lineNumbers: true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 mode: "smarty"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 var editor = CodeMirror.fromTextArea(document.getElementById("code2"), {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 lineNumbers: true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 mode: {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 name: "smarty",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 leftDelimiter: "{--",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129 rightDelimiter: "--}"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 var editor = CodeMirror.fromTextArea(document.getElementById("code3"), {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 lineNumbers: true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 mode: {name: "smarty", version: 3, baseMode: "text/html"}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 </script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 </article>