tal:attributes syntax:
argument ::= attribute_statement [';' attribute_statement]*
attribute_statement ::= attribute_name expression
attribute_name ::= [namespace ':'] Name
namespace ::= Name
*Note: If you want to include a semi-colon (;) in an expression,
it must be escaped by doubling it (;;).*
The tal:attributes statement replaces the value of an attribute
(or creates an attribute) with a dynamic value. You can qualify an
attribute name with a namespace prefix, for example html:table, if
you are generating an XML document with multiple namespaces. The
value of each expression is converted to a string, if necessary.
If the expression associated with an attribute assignment evaluates to nothing, then that attribute is deleted from the statement element. If the expression evaluates to default, then that attribute is left unchanged. Each attribute assignment is independent, so attributes may be assigned in the same statement in which some attributes are deleted and others are left alone.
If you use tal:attributes on an element with an active
tal:replace command, the tal:attributes statement is ignored.
If you use tal:attributes on an element with a tal:repeat
statement, the replacement is made on each repetition of the
element, and the replacement expression is evaluated fresh for each
repetition.
Replacing a link:
<a href="/sample/link.html"
tal:attributes="href here/sub/absolute_url">
Replacing two attributes:
<textarea rows="80" cols="20"
tal:attributes="rows request/rows;cols request/cols">