This shows you the differences between two versions of the page.
en:public:developer:template_system:start [2012/11/20 11:37] admin |
en:public:developer:template_system:start [2012/11/20 11:38] (current) admin |
||
---|---|---|---|
Line 84: | Line 84: | ||
is even more verbose and fragile than PHP code! It is perfect for computers, but horrible for humans. | is even more verbose and fragile than PHP code! It is perfect for computers, but horrible for humans. | ||
ArKadia is about being easy to read, understand and maintain. | ArKadia is about being easy to read, understand and maintain. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Templates ===== | ||
- | |||
- | Template is simply a text file. It can generate any text-based format (HTML, XML, CSV, etc.). | ||
- | A template contains variables, which get replaced with values when the template is evaluated, | ||
- | and tags, which control the logic of the template. Below is a minimal template that illustrates a | ||
- | few basics. Each element will be explained later in this document.: | ||
- | |||
- | <code html> | ||
- | <#doctype> | ||
- | <html> | ||
- | <head> | ||
- | <#meta_title> | ||
- | <#meta_description> | ||
- | </head> | ||
- | <body> | ||
- | <#frame name="topframe"> | ||
- | </body> | ||
- | </html> | ||
- | </code> | ||
- | |||
- | Why use a text-based template instead of an XML-based one (like Zope's TAL)? We wanted ArKadia's template | ||
- | language to be usable for more than just XML/HTML templates. We use it for emails, JavaScript and CSV. | ||
- | You can use the template language for any text-based format. | ||
- | |||
- | ===== Variables ===== | ||
- | |||
- | Variables look like this: <#variable>. When the template engine encounters a variable, it | ||
- | evaluates that variable and replaces it with the result. Variable names consist of any | ||
- | combination of alphanumeric characters and the underscore ("_"). The dot (".") also appears | ||
- | in variable sections, although that has a special meaning, as indicated below. Importantly, | ||
- | you cannot have spaces or punctuation characters in variable names. | ||
- | |||
- | Use a dot (.) to access attributes of a variable. <#section.title> will be replaced with the | ||
- | title attribute of the section object. If you use a variable that doesn't exist, the template | ||
- | system will insert '' (the empty string) by default. | ||
- | |||
- | ===== Filters ===== | ||
- | |||
- | You can modify variables for display by using filters. Filters look like this: <#name lowercase="1"> | ||
- | This displays the value of the <#name> variable after being filtered through the lower filter, | ||
- | which converts text to lowercase. To give you a taste of what's available, here are some of the more | ||
- | commonly used template filters: | ||
- | |||
- | === default === | ||
- | |||
- | If a variable is false or empty, use given default. Otherwise, use the value of the variable | ||
- | For example: | ||
- | <code html> | ||
- | <#value default="nothing"> | ||
- | </code> | ||
- | |||
- | === lowercase === | ||
- | |||
- | === uppercase === | ||
- | |||
- | === xmlencode === | ||
- | |||
- | === htmlencode === | ||
- | |||
- | === httpencode === | ||
- | |||
- | === JavascriptEncode === | ||
- | |||
- | === rtfencode === | ||
- |