Directive tags are instructions to process a template and will not be output. They use an HTML-like syntax:
The format of the parameters depends on the directive used.
Some directives (e.g. package) do not accept nested content,
i.e. code between start tag and end tag.
In that case, you only need to use the start tag (e.g. [#package myPackage]).
The tag delimiter characters are '[' and ']'.
This is particulary useful to generate HTML or XML file, to avoid confusion between TGL directives and HTML tags:
[#template GenerateXMLFile(option : boolean)] <?xml version="1.0" encoding="UTF-8"?> <contents> [#if option] <on/> [#else] <off/> [#/if] </contents> [/#template]
| Most commonly used directives | |
| guard | Conditionally skips the evaluation of a text template or of a script body. |
| file | Defines the name of the file where the text generated by a text template will be written. |
| foreach, break | Processes a section of the template for each element contained within a collection. |
| if, else, elseif | Conditionally skips a section of the template. |
| import | Makes the referenced element (text template, ruleset or Java type) directly available in the template. |
| include | Evaluates a referenced text template and inserts the resulting text at the current position. |
| metatype | Specifies the metatype for which the contained scripts apply. |
| package | Defines the namespace of text templates and of scripts. |
| protectedStartTag protectedEndTag |
Specifies sections in the generated text where any user manual modification must be preserved. |
| script | Defines the signature of a script, as well as the contents to be generated. |
| set | Declares and initializes variables for use within the template. |
| template | Defines the signature of a text template, as well as the contents to be generated. |
| while, break | Processes a section of the template while a condition is true. |
| Advanced directives | |
| attempt, recover | Provides alternate processing in case an error occurs. |
| compress | Removes superfluous white-space for white-space insensitive formats (e.g. HTML or XML). |
| library | Defines the name of the library, as well as the macros it contains. |
| macro | Defines the signature of a macro, as well as the contents to be generated |
| noparse | Causes the contained text to be skipped by the parser and output directly |
| stop | Aborts the evaluation process. |
| tab | Shifts right using a tab character a section of the template. |
| trim, ltrim, rtrim, notrim | Instructs the engine to ignore certain whitespace characters in the line of the directive. |
| using | Makes the macros defined in the referenced library directly available in the template. |