ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
twig.php
Go to the documentation of this file.
1<?php
2/*************************************************************************************
3 * twig.php
4 * ----------
5 * Author: Keyvan Akbary (keyvan@kiwwito.com)
6 * Copyright: (c) 2011 Keyvan Akbary (http://www.kiwwito.com/)
7 * Release Version: 1.0.9.0
8 * Date Started: 2011/12/05
9 *
10 * Twig template language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2012/09/28 (1.9.0 by José Andrés Puertas y Javier Eguiluz)
15 * - Added new tags, filters and functions
16 * - Added regexps for variables, objects and properties
17 * - Lots of other minor tweaks (delimites, comments, ...)
18 *
19 * 2011/12/05 (1.0.0 by Keyvan Akbary)
20 * - Initial Release
21 *
22 * TODO
23 * ----
24 *
25 *************************************************************************************
26 *
27 * This file is part of GeSHi.
28 *
29 * GeSHi is free software; you can redistribute it and/or modify
30 * it under the terms of the GNU General Public License as published by
31 * the Free Software Foundation; either version 2 of the License, or
32 * (at your option) any later version.
33 *
34 * GeSHi is distributed in the hope that it will be useful,
35 * but WITHOUT ANY WARRANTY; without even the implied warranty of
36 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37 * GNU General Public License for more details.
38 *
39 * You should have received a copy of the GNU General Public License
40 * along with GeSHi; if not, write to the Free Software
41 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
42 *
43 ************************************************************************************/
44
46 'LANG_NAME' => 'Twig',
47 'COMMENT_SINGLE' => array(),
48 'COMMENT_MULTI' => array('{#' => '#}'),
49 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
50 'QUOTEMARKS' => array("'", '"'),
51 'ESCAPE_CHAR' => '',
52 'KEYWORDS' => array(
53 //TWIG
54 //Tags
55 1 => array(
56 'autoescape',
57 'endautoescape',
58 'block',
59 'endblock',
60 'do',
61 'embed',
62 'endembed',
63 'extends',
64 'filter',
65 'endfilter',
66 'for',
67 'endfor',
68 'from',
69 'if',
70 'else',
71 'elseif',
72 'endif',
73 'import',
74 'include',
75 'macro',
76 'endmacro',
77 'raw',
78 'endraw',
79 'sandbox',
80 'set',
81 'endset',
82 'spaceless',
83 'endspaceless',
84 'use',
85 'verbatim',
86 'endverbatim',
87 'trans',
88 'endtrans',
89 'transchoice',
90 'endtranschoice'
91 ),
92 //Filters
93 2 => array(
94 'abs',
95 'batch',
96 'capitalize',
97 'convert_encoding',
98 'date',
99 'date_modify',
100 'default',
101 'escape',
102 'first',
103 'format',
104 'join',
105 'json_encode',
106 'keys',
107 'last',
108 'length',
109 'lower',
110 'merge',
111 'nl2br',
112 'number_format',
113 'replace',
114 'reverse',
115 'slice',
116 'sort',
117 'split',
118 'striptags',
119 'title',
120 'trim',
121 'upper',
122 'url_encode'
123 ),
124 //Functions
125 3 => array(
126 'attribute',
127 'cycle',
128 'dump',
129 'parent',
130 'random',
131 'range',
132 'source',
133 'template_from_string'
134 ),
135 //Tests
136 4 => array(
137 'constant',
138 'defined',
139 'divisibleby',
140 'empty',
141 'even',
142 'iterable',
143 'null',
144 'odd',
145 'sameas'
146 ),
147 //Operators
148 5 => array(
149 'in',
150 'is',
151 'and',
152 'b-and',
153 'or',
154 'b-or',
155 'b-xor',
156 'not',
157 'into',
158 'starts with',
159 'ends with',
160 'matches'
161 )
162 ),
163 'SYMBOLS' => array(
164 '{{',
165 '}}',
166 '{%',
167 '%}',
168 '+',
169 '-',
170 '/',
171 '/',
172 '*',
173 '**', //Math operators
174 '==',
175 '!=',
176 '<',
177 '>',
178 '>=',
179 '<=',
180 '===', //Logic operators
181 '..',
182 '|',
183 '~',
184 '[',
185 ']',
186 '.',
187 '?',
188 ':',
189 '(',
190 ')', //Other
191 '=' //HTML (attributes)
192 ),
193 'CASE_SENSITIVE' => array(
194 GESHI_COMMENTS => false,
195 //Twig
196 1 => true,
197 2 => true,
198 3 => true,
199 4 => true,
200 5 => true
201 ),
202 'STYLES' => array(
203 'KEYWORDS' => array(
204 1 => 'color: #0600FF;', //Tags
205 2 => 'color: #008000;', //Filters
206 3 => 'color: #0600FF;', //Functions
207 4 => 'color: #804040;', //Tests
208 5 => 'color: #008000;'
209 ),
210 'COMMENTS' => array(
211 'MULTI' => 'color: #008080; font-style: italic;'
212 ),
213 'ESCAPE_CHAR' => array(
214 0 => 'color: #000099; font-weight: bold;'
215 ),
216 'BRACKETS' => array(
217 0 => 'color: #D36900;'
218 ),
219 'STRINGS' => array(
220 0 => 'color: #ff0000;'
221 ),
222 'NUMBERS' => array(
223 0 => 'color: #cc66cc;'
224 ),
225 'METHODS' => array(
226 1 => 'color: #006600;'
227 ),
228 'SYMBOLS' => array(
229 0 => 'color: #D36900;'
230 ),
231 'SCRIPT' => array(
232 0 => '',
233 1 => 'color: #808080; font-style: italic;',
234 2 => 'color: #009000;'
235 ),
236 'REGEXPS' => array(
237 0 => 'color: #00aaff;',
238 1 => 'color: #00aaff;'
239 )
240 ),
241 'URLS' => array(
242 1 => 'http://twig.sensiolabs.org/doc/tags/{FNAMEL}.html',
243 2 => 'http://twig.sensiolabs.org/doc/filters/{FNAMEL}.html',
244 3 => 'http://twig.sensiolabs.org/doc/functions/{FNAMEL}.html',
245 4 => 'http://twig.sensiolabs.org/doc/tests/{FNAMEL}.html',
246 5 => '',
247 ),
248 'OOLANG' => false,
249 'OBJECT_SPLITTERS' => array(
250 1 => '.',
251 ),
252 'REGEXPS' => array(
253 0 => array(
254 GESHI_SEARCH => "([[:space:]])([a-zA-Z_][a-zA-Z0-9_]*)",
255 GESHI_REPLACE => '\\2',
256 GESHI_MODIFIERS => '',
257 GESHI_BEFORE => '\\1',
258 GESHI_AFTER => ''
259 ),
260 1 => array(
261 GESHI_SEARCH => "\.([a-zA-Z_][a-zA-Z0-9_]*)",
262 GESHI_REPLACE => '.\\1',
263 GESHI_MODIFIERS => '',
264 GESHI_BEFORE => '',
265 GESHI_AFTER => ''
266 ),
267 ),
268 'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
269 'SCRIPT_DELIMITERS' => array(
270 0 => array(
271 '{{' => '}}',
272 '{%' => '%}'
273 ),
274 1 => array(
275 '{#' => '#}',
276 )
277 ),
278 'HIGHLIGHT_STRICT_BLOCK' => array(
279 0 => true,
280 1 => true,
281 2 => true
282 ),
283 'PARSER_CONTROL' => array(
284 'KEYWORDS' => array()
285 )
286);
An exception for terminatinating execution or to throw for unit testing.
const GESHI_CAPS_NO_CHANGE
Lowercase keywords found.
Definition: geshi.php:94
const GESHI_BEFORE
The key of the regex array defining what bracket group in a matched search to put before the replacem...
Definition: geshi.php:140
const GESHI_SEARCH
The key of the regex array defining what to search for.
Definition: geshi.php:132
const GESHI_AFTER
The key of the regex array defining what bracket group in a matched search to put after the replaceme...
Definition: geshi.php:143
const GESHI_ALWAYS
Strict mode always applies.
Definition: geshi.php:128
const GESHI_REPLACE
The key of the regex array defining what bracket group in a matched search to use as a replacement.
Definition: geshi.php:135
const GESHI_COMMENTS
Used in language files to mark comments.
Definition: geshi.php:149
const GESHI_MODIFIERS
The key of the regex array defining any modifiers to the regular expression.
Definition: geshi.php:137
$language_data
Definition: twig.php:45