Loading AI tools
Da Wikipédia, a enciclopédia livre
A Template Attribute Language (TAL) é uma linguagem de modelo usada para gerar páginas HTML e XML dinamicamente. Seu principal objetivo é simplificar a colaboração entre programadores e designers. Isto é conseguido pela incorporação de declarações TAL dentro de tags HTML (ou XML, respectivamente) válidas que podem então ser trabalhadas utilizando-se ferramentas de design comuns.
TAL foi criada para o Zope, mas também é usada em outros projetos baseados em Python.
Modelos TAL normalmente são compostos de páginas de resultado com a variável content
sendo substituída por atributos especiais. Por exemplo,
<h1 tal:content="string:Algumas chamadas completamente diferentes">
Uma chamada visível para o designer
</h1>
seria tratada por uma ferramenta de desenvolvimento HTML comum como
<h1>
Uma chamada visível para o designer
</h1>
enquanto que o servidor de aplicações, avaliando o atributo tal:content
, produziria
<h1>
Algumas chamadas completamente diferentes
</h1>
Naturalmente, os literais de cadeia de caracteres não são os casos de uso mais comuns nem os mais úteis. A sintaxe dos possíveis valores de atributo são propriedades da linguagem TAL Expression Syntax (TALES). Em implementações baseadas em Python, é possível usar expressões Python.
Utilizando-se METAL (Macro Expansion TAL) é possível reutilizar código de outros modelos.
Ao gerar documentos XML, é importante especificar o espaço de nomes XML xmlns:tal="http://xml.zope.org/namespaces/tal"
Os seguintes atributos são usados, normalmente prefixados por "tal:
":
tal:attributes="name name; id name"
os atributos nome e id de um campo de entrada podem ser definidos como o valor da variável "name")Se uma tag tem mais de um atributo TAL, elas são avaliadas na ordem (bastante lógica) acima.
Nos casos em que nenhuma tag estiver presente, que se presta para tomar os atributos, tags TAL especiais podem ser utilizadas, tornando o prefixo "tal:
" opcional. Por exemplo:
<tal:if condition="context/itemlist">
...
</tal:if>
faria com que o código dentro das tags tal:if
serem utilizadas sempre que o contexto (seja qual for o servidor de aplicação que define o contexto para ser um objeto, por exemplo) contém a variável "itemlist" com um valor true, por exemplo, uma lista contendo pelo menos um elemento. O identificador depois dos dois pontos é arbitrário. Ele simplesmente precisa estar lá e ser o mesmo para as tags de abertura e fechamento.
A Macro Expansion Template Attribute Language complementa TAL, fornecendo macros que permitem reutilizar o código através de arquivos de modelo (template). Ambas foram criadas para o Zope, mas também são utilizadas em outros projetos Python.
METAL complementa TAL com a habilidade de reutilização de código. Ela permite que o desenvolvedor defina e utilize macros, que por sua vez pode possuir slots. Quando utiliza-se uma macro, o conteúdo variacional pode ser especificado por um slot.
Ao gerar documentos XML, o espaço de nomes XML deve ser especificado (xmlns:metal="http://xml.zope.org/namespaces/metal"
).
Os seguintes atributos são reconhecidos, normalmente requerendo um prefixo „metal:
“:
Normalmente, apenas um destes é usado por vez.
Em casos quando não há nenhuma tag presente, que se presta a tomar os atributos, e em casos especiais, quando mais de um atributo METAL é necessário, tags especiais de METAL podem ser usadas, tornando o prefixo „metal:
“ opcional. Por exemplo (esboçado com o Roundup em mente):
<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>
TAL/TALES/METAL são usados pelos seguintes projetos:
Além da implementação original no Zope, há (não exaustivamente):
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.