El lenguaje de atributos de plantilla (TAL) es un lenguaje de plantillas que se utiliza para generar páginas HTML y XML dinámicas . Su objetivo principal es simplificar la colaboración entre programadores y diseñadores. Esto se logra incorporando declaraciones TAL dentro de etiquetas HTML (o XML) válidas, en las que luego se puede trabajar utilizando herramientas de diseño comunes.
TAL fue creado para Zope pero también se utiliza en otros proyectos basados en Python .
Se utilizan los siguientes atributos, normalmente prefijados con " tal:
":
tal:attributes="name name; id name"
los atributos de nombre e id de un campo de entrada se podría establecer el valor de la variable " name
")Si una etiqueta tiene más de un atributo TAL, se evalúan en el orden anterior (bastante lógico).
En los casos en que no hay ninguna etiqueta que se preste para tomar los atributos, se pueden utilizar etiquetas TAL especiales, haciendo que el tal:
prefijo " " sea opcional. Por ejemplo:
<tal:if condición= "contexto/lista de elementos" > ...</tal:si>
haría que el código dentro de las tal:if
etiquetas se use siempre que el contexto (cualquiera que sea la definición del contexto por parte del servidor de aplicaciones, por ejemplo, un objeto) contenga la variable " itemlist
" con un valor verdadero , por ejemplo, una lista que contenga al menos un elemento. El identificador que sigue a los dos puntos es arbitrario; simplemente debe estar allí y ser el mismo para la etiqueta de apertura y de cierre.
El lenguaje de atributos de plantilla de expansión de macros (METAL) complementa a TAL y proporciona macros que permiten la reutilización de código en archivos de plantilla. Ambos fueron creados para Zope , pero también se utilizan en otros proyectos de Python .
METAL complementa a TAL con la capacidad de reutilizar código. Permite al desarrollador definir y utilizar macros, que a su vez pueden tener espacios ; al utilizar una macro, se puede especificar contenido variacional para un espacio.
Al generar documentos XML , se debe especificar el espacio de nombres XML ( xmlns:metal="http://xml.zope.org/namespaces/metal"
).
Se reconocen los siguientes atributos, que normalmente requieren el metal:
prefijo " ":
Normalmente sólo se utiliza uno de ellos a la vez.
En los casos en los que no hay ninguna etiqueta que se preste a tomar los atributos, y en casos especiales en los que se necesita más de un atributo METAL, se pueden usar etiquetas METAL especiales, haciendo que el prefijo "metal:" sea opcional. Por ejemplo (dibujado teniendo en cuenta Roundup ):
< html metal:define-macro = "glaseado" > ... < metal:myslot define-slot = "formulario-opcional" > ... </html> < html metal:use-macro = "plantillas/página/macros/glaseado" > < form metal:fill-slot = "formulario-opcional" action = "." tal:attributes = "contexto/designador de la acción" > ... </form> </html>
TAL/TALES/METAL se utilizan en los siguientes proyectos:
Además de la implementación original de Zope , existen (no exhaustivamente):