fbpx
Wikipedia

Template Attribute Language

The Template Attribute Language (TAL) is a templating language used to generate dynamic HTML and XML pages. Its main goal is to simplify the collaboration between programmers and designers. This is achieved by embedding TAL statements inside valid HTML (or XML) tags which can then be worked on using common design tools.

TAL was created for Zope but is used in other Python-based projects as well.

Attributes edit

The following attributes are used, normally prefixed by "tal:":

define
creates local variables, valid in the element bearing the attribute (including contained elements)
condition
decides whether or not to render the tag (and all contained text)
repeat
creates a loop variable and repeats the tag iterating a sequence, e.g. for creating a selection list or a table
content
replaces the content of the tag
replace
replaces the tag (and therefore is not usable together with content or attributes)
attributes
replaces the given attributes (e. g. by using tal:attributes="name name; id name" the name and id attributes of an input field could be set to the value of the variable "name")
omit-tag
allows to omit the start and end tag and only render the content if the given expression is true.
on-error
if an error occurs, this attribute works like the content tag.

If a tag has more than one TAL attributes, they are evaluated in the above (fairly logical) order.

In cases when no tag is present which lends itself to take the attributes, special TAL tags can be used, making the "tal:" prefix optional. e.g.:

<tal:if condition="context/itemlist"> ... </tal:if> 

would cause the code inside the tal:if tags to be used whenever the context (whatever the application server defines the context to be, e.g. an object) contains variable "itemlist" with a true value, e.g. a list containing at least one element. The identifier following the colon is arbitrary; it simply needs to be there, and to be the same for the opening and closing tag.

METAL edit

The Macro Expansion Template Attribute Language (METAL) complements TAL, providing macros which allow the reuse of code across template files. Both were created for Zope but are used in other Python projects as well.

METAL complements TAL with the ability to reuse code. It allows the developer to define and use macros, which in turn may have slots; when using a macro, variational content can be specified for a slot.

When generating XML documents, the XML namespace must be specified (xmlns:metal="http://xml.zope.org/namespaces/metal").

METAL attributes edit

The following attributes are recognised, normally requiring a „metal:“ prefix:

define-macro
creates a macro
define-slot
creates a slot inside a macro
use-macro
uses a macro (normally given via a TALES path expression)
fill-slot
when using a macro, replaces the default content of the given slot
extend-macro
since Zope v3: extends a macro, comparable to subclassing, by redefining of slots

Normally, just one of those is used at a time.

In cases when no tag is present which lends itself to take the attributes, and in special cases when more than one METAL attribute is needed, special METAL tags can be used, making the „metal:“ prefix optional. E. g. (sketched with Roundup in mind):

 <html metal:define-macro="icing"> ... <metal:myslot define-slot="optional-form"> ... </html> <html metal:use-macro="templates/page/macros/icing"> <form metal:fill-slot="optional-form" action="." tal:attributes="action context/designator"> ... </form> </html> 

Usage edit

TAL/TALES/METAL are used by the following projects:

Other implementations edit

Besides the original Zope implementation, there are (not exhaustive):

Python edit

C# edit

  • SharpTAL

Go (Golang) edit

  • tal, a native Go implementation of TAL, TALES and METAL

JavaScript edit

  • template-tal, TAL Implementation for NodeJs
  • jstal
  • Distal
  • DomTal
  • ZPT-JS

Java edit

  • JPT: Java Page Templates
  • JavaZPT
  • ZPT-Java

Perl edit

  • PETAL, the Perl Template Attribute Language
  • Template-TAL

Raku edit

  • Flower, a Raku implementation of TAL, with some Petal and PHPTAL extensions.

PHP edit

  • PHPTAL
  • Twital
  • Biscuit
  • zTAL

XSL edit

  • XSLTal, transforming TAL via XSLT to XSLT

Common Lisp edit

  • TALCL: A library that implements the TAL template language for common lisp

Similar implementations edit

  • ATal – Not really a TAL implementation, but inspired on TAL concepts
  • Thymeleaf - Not a TAL implementation, but a similar "natural template" language

References edit

External links edit

  • Zope Page Templates Reference (Zope Book)

template, attribute, language, this, article, multiple, issues, please, help, improve, discuss, these, issues, talk, page, learn, when, remove, these, template, messages, this, article, does, cite, sources, please, help, improve, this, article, adding, citatio. This article has multiple issues Please help improve it or discuss these issues on the talk page Learn how and when to remove these template messages This article does not cite any sources Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Template Attribute Language news newspapers books scholar JSTOR January 2012 Learn how and when to remove this template message The topic of this article may not meet Wikipedia s general notability guideline Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention If notability cannot be shown the article is likely to be merged redirected or deleted Find sources Template Attribute Language news newspapers books scholar JSTOR January 2012 Learn how and when to remove this template message Learn how and when to remove this template message The Template Attribute Language TAL is a templating language used to generate dynamic HTML and XML pages Its main goal is to simplify the collaboration between programmers and designers This is achieved by embedding TAL statements inside valid HTML or XML tags which can then be worked on using common design tools TAL was created for Zope but is used in other Python based projects as well Contents 1 Attributes 2 METAL 2 1 METAL attributes 3 Usage 4 Other implementations 4 1 Python 4 2 C 4 3 Go Golang 4 4 JavaScript 4 5 Java 4 6 Perl 4 7 Raku 4 8 PHP 4 9 XSL 4 10 Common Lisp 4 11 Similar implementations 5 References 6 External linksAttributes editThe following attributes are used normally prefixed by tal define creates local variables valid in the element bearing the attribute including contained elements condition decides whether or not to render the tag and all contained text repeat creates a loop variable and repeats the tag iterating a sequence e g for creating a selection list or a table content replaces the content of the tag replace replaces the tag and therefore is not usable together with content or attributes attributes replaces the given attributes e g by using tal attributes name name id name the name and id attributes of an input field could be set to the value of the variable name omit tag allows to omit the start and end tag and only render the content if the given expression is true on error if an error occurs this attribute works like the content tag If a tag has more than one TAL attributes they are evaluated in the above fairly logical order In cases when no tag is present which lends itself to take the attributes special TAL tags can be used making the tal prefix optional e g lt tal if condition context itemlist gt lt tal if gt would cause the code inside the tal if tags to be used whenever the context whatever the application server defines the context to be e g an object contains variable itemlist with a true value e g a list containing at least one element The identifier following the colon is arbitrary it simply needs to be there and to be the same for the opening and closing tag METAL editThe Macro Expansion Template Attribute Language METAL complements TAL providing macros which allow the reuse of code across template files Both were created for Zope but are used in other Python projects as well METAL complements TAL with the ability to reuse code It allows the developer to define and use macros which in turn may have slots when using a macro variational content can be specified for a slot When generating XML documents the XML namespace must be specified xmlns metal http xml zope org namespaces metal METAL attributes edit The following attributes are recognised normally requiring a metal prefix define macro creates a macro define slot creates a slot inside a macro use macro uses a macro normally given via a TALES path expression fill slot when using a macro replaces the default content of the given slot extend macro since Zope v3 extends a macro comparable to subclassing by redefining of slotsNormally just one of those is used at a time In cases when no tag is present which lends itself to take the attributes and in special cases when more than one METAL attribute is needed special METAL tags can be used making the metal prefix optional E g sketched with Roundup in mind lt html metal define macro icing gt lt metal myslot define slot optional form gt lt html gt lt html metal use macro templates page macros icing gt lt form metal fill slot optional form action tal attributes action context designator gt lt form gt lt html gt Usage editTAL TALES METAL are used by the following projects Zope web application server Roundup issue tracker Other implementations editBesides the original Zope implementation there are not exhaustive Python edit SimpleTAL OpenTAL ZPT a standalone version of Zope Page Templates Chameleon a fast reimplementation of Zope Page TemplatesC edit SharpTALGo Golang edit tal a native Go implementation of TAL TALES and METALJavaScript edit template tal TAL Implementation for NodeJs jstal Distal DomTal ZPT JSJava edit JPT Java Page Templates JavaZPT ZPT JavaPerl edit PETAL the Perl Template Attribute Language Template TALRaku edit Flower a Raku implementation of TAL with some Petal and PHPTAL extensions PHP edit PHPTAL Twital Biscuit zTALXSL edit XSLTal transforming TAL via XSLT to XSLTCommon Lisp edit TALCL A library that implements the TAL template language for common lispSimilar implementations edit ATal Not really a TAL implementation but inspired on TAL concepts Thymeleaf Not a TAL implementation but a similar natural template languageReferences editExternal links editZope Page Templates Reference Zope Book Retrieved from https en wikipedia org w index php title Template Attribute Language amp oldid 1161362706, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.