El lenguaje de atributos de plantilla (TAL) es un lenguaje de plantillas utilizado para generar documentos HTML y XML dinámicos . Está diseñado para facilitar una clara separación entre la lógica de presentación y la lógica de aplicación, lo que permite la colaboración entre diseñadores y programadores. [ 1 ] Esto se logra expresando la lógica de la plantilla mediante atributos definidos en un espacio de nombres XML , que se añaden a elementos HTML o XML válidos. Al utilizar atributos estructurados en lugar de código incrustado arbitrario, las plantillas siguen siendo documentos bien formados que pueden visualizarse y editarse con sistemas de autoría XML o HTML estándar . [ 2 ]
TAL fue creado para Zope , pero también se utiliza en otros proyectos basados en Python . [ 3 ]
TASFIA
Se utilizan los siguientes atributos, normalmente precedidos por " tal:":
- definir
- crea variables locales, válidas en el elemento que contiene el atributo (incluidos los elementos contenidos).
- condición
- decide si se debe mostrar o no la etiqueta (y todo el texto que contiene).
- repetir
- crea una variable de bucle y repite la etiqueta iterando una secuencia, por ejemplo, para crear una lista de selección o una tabla.
- contenido
- reemplaza el contenido de la etiqueta
- reemplazar
- reemplaza la etiqueta (y por lo tanto no se puede usar junto con contenido o atributos)
- atributos
- reemplaza los atributos dados (por ejemplo, usando
tal:attributes="name name; id name"los atributos de nombre e id de un campo de entrada se podría establecer al valor de la variable "name") - etiqueta de omisión
- Permite omitir la etiqueta de inicio y la de fin, y solo renderizar el contenido si la expresión dada es verdadera.
- por error
- Si se produce un error, este atributo funciona como la etiqueta de contenido.
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 haya ninguna etiqueta presente que se preste a tomar los atributos, se pueden usar etiquetas TAL especiales, haciendo que el tal:prefijo " " sea opcional. Por ejemplo:
<tal:if condition= "context/itemlist" > ... </tal:if>Esto provocaría que el código dentro de las tal:ifetiquetas se utilizara siempre que el contexto (cualquiera que sea la definición 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 presente y ser el mismo para la etiqueta de apertura y la de cierre.
METAL
El lenguaje de atributos de plantillas de expansión de macros (METAL) complementa a TAL, proporcionando macros que permiten la reutilización de código en diferentes archivos de plantilla. Ambos fueron creados para Zope , pero también se utilizan en otros proyectos de Python .
METAL complementa TAL con la capacidad de reutilizar código. Permite al desarrollador definir y usar macros, que a su vez pueden tener ranuras ; al usar una macro, se puede especificar contenido variable para una ranura.
Al generar documentos XML , se debe especificar el espacio de nombres XML ( xmlns:metal="http://xml.zope.org/namespaces/metal").
atributos del METAL
Se reconocen los siguientes atributos, que normalmente requieren un metal:prefijo „ “:
- definir-macro
- crea una macro
- definir ranura
- crea una ranura dentro de una macro
- usar macro
- utiliza una macro (normalmente proporcionada mediante una expresión de ruta TALES)
- ranura de llenado
- Cuando se utiliza una macro, reemplaza el contenido predeterminado de la ranura especificada.
- macro de extensión
- Desde Zope v3: extiende una macro, comparable a la subclase , mediante la redefinición de ranuras.
Normalmente, solo se utiliza uno de ellos a la vez.
En los casos en que no haya ninguna etiqueta presente que se preste a tomar los atributos, y en casos especiales en los que se necesite más de un atributo METAL, se pueden usar etiquetas METAL especiales, haciendo que el prefijo "metal:" sea opcional. Por ejemplo (diseñado pensando en Roundup ):
< 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>Uso
TAL/TALES/METAL se utilizan en los siguientes proyectos:
- Zope (servidor de aplicaciones web)
- Resumen (seguimiento de incidencias)
Otras implementaciones
Además de la implementación original de Zope , existen (lista no exhaustiva):
Pitón
- SimpleTAL
- OpenTAL
- ZPT, una versión independiente de las plantillas de página de Zope.
- Chameleon, una rápida reimplementación de las plantillas de página de Zope.
DO#
- SharpTAL
Go (Golang)
- tal, una implementación nativa en Go de TAL, TALES y METAL.
JavaScript
- plantilla-tal , implementación de TAL para Node.js
- jstal
- Distal
- DomTal
- ZPT-JS
Java
- JPT: Plantillas de página Java
- JavaZPT
- ZPT-Java
Perl
- PETAL, el lenguaje de atributos de plantilla de Perl
- Plantilla-TAL
Raku
- Flower, una implementación de TAL basada en Raku , con algunas extensiones de Petal y PHPTAL.
PHP
- PHPTAL
- Twital
- Galleta
- zTAL
XSL
Lisp común
- TALCL: Una biblioteca que implementa el lenguaje de plantillas TAL para Common Lisp.
Implementaciones similares
- ATal – No es propiamente una implementación de TAL, pero está inspirado en los conceptos de TAL.
- Thymeleaf : no es una implementación de TAL, pero es un lenguaje de "plantilla natural" similar.
Referencias
- ↑ Flores, Francesc Campoy; Quint, Vincent; Vatton, Irene (2006). Plantillas, microformatos y edición estructurada . Actas del Simposio ACM de 2006 sobre Ingeniería Documental. Association for Computing Machinery . págs. 188–197 . doi : 10.1145/1166160.1166211 .
- ↑ Champin, Pierre-Antoine (2009). Tal4Rdf: Presentación ligera para la Web Semántica (PDF) . Actas del Taller CEUR. Vol. 449.
- ^ Klever, Nik (2003). XML y Zope . XMIDX 2003, Tecnologías XML para middleware – Middleware para modificaciones XML. Gesellschaft für Informatik . págs. 57 a 70. ISBN 3-88579-353-9.
Enlaces externos
- Referencia de plantillas de página de Zope (Libro de Zope)
- Zope
- Motores de plantillas