<h1 tal:content="context/title">Título del template</h1>
<html>
<body>
<p>
Hola, <b tal:content="template/title">título</b>!
</p>
</body>
</html>
<p tal:content="context/objectValues"></p>
<p tal:content="python:context.objectValues(['Folder'])"></p>
<p tal:content="string:El usuario actual es ${user/getUserName}."></p>
Tal:content nos permite sustituir el texto completo de un tag de HTML. Si queremos insertar texto dentro de una frase, la práctica común es utilizar la etiqueta span para colocar el texto de reemplazo:
<p>El URL es <span tal:replace="request/URL">
http://www.example.com</span>.</p>
Repeat nos permite repetir una etiqueta, de manera similar a un ciclo for:
<table border="1" width="100%">
<tr>
<th>Id</th>
<th>Meta-Type</th>
<th>Título</th>
</tr>
<tr tal:repeat="item context/objectValues">
<td tal:content="item/getId">Id</td>
<td tal:content="item/meta_type">Meta-Type</td>
<td tal:content="item/title">Título</td>
</tr>
</table>
Condition nos permite evaluar una condición y mostrar o no un tag dependiendo de si es falsa o verdadera:
<table tal:condition="python: context.objectValues(['Folder'])"
border="1" width="100%">
<tr>
<th>Id</th>
<th>Meta-Type</th>
<th>Título</th>
</tr>
<tr tal:repeat="item python: context.objectValues(['Folder'])">
<td tal:content="item/getId">Id</td>
<td tal:content="item/meta_type">Meta-Type</td>
<td tal:content="item/title">Título</td>
</tr>
</table>
En ocasiones no es el texto dentro de la etiqueta lo que queremos cambiar, sino uno de los atributos de la misma:
<td><img src="/misc_/OFSP/File_icon.gif"
tal:attributes="src item/icon" />
<span tal:replace="item/meta_type">Meta-Type</span></td>
Para reutilización de templates:
<p metal:define-macro="copyright">
Copyright 2007, <em>Biblioteca del Congreso Nacional de Chile</em> Inc.
</p>
<b metal:use-macro="container/master_page/macros/copyright">
Aquí va el macro
</b>
Los slots definen espacios que pueden llenarse dinámicamente dentro de un template:
<div metal:define-macro="sidebar">
<div metal:define-slot="links">
Links
<ul>
<li><a href="http://www.bcn.cl/lc/tinterna/index_html">Tratados
Internacionales</a></li>
<li><a href="http://www.bcn.cl/siit/">Información Territorial</a></li>
<li><a href="http://www.bcn.cl/bcn_legislativa/index_html">
Boletín Legislativo</a></li>
<span metal:define-slot="additional_links"></span>
</ul>
</div>
<span metal:define-slot="additional_info"></span>
</div>
<span metal:use-macro="container/master_page/macros/sidebar">
<p metal:fill-slot="additional_links">
<li><a href="http://asiapacifico.bcn.cl/">Portal Asia-Pacífico</a></li>
</p>
<p metal:fill-slot="additional_info">
Gracias por visitar nuestro sitio web.
</p>
</span>
ZPT evalúa primero los macros y después cualquier expresión dentro de ellos.
<ul metal:define-macro="links"
tal:repeat="link context/getLinks">
<li>
<a href="url del link"
tal:attributes="href link/url"
tal:content="link/name">nombre del link</a>
</li>
</ul>
<html metal:define-macro="page">
<head>
<title>BCN: <span tal:replace="context/title">Título</span></title>
</head>
<body>
<h1 metal:define-slot="headline"
tal:content="context/title">título</h1>
<p metal:define-slot="body">
Cuerpo del documento.
</p>
<span metal:define-slot="footer">
<p>Copyright 2007 Biblioteca del Congreso Nacional de Chile</p>
</span>
</body>
</html>
El código fuente de este archivo esta hospedado en GitHub. Todos pueden actualizar y corregir errores en este documento con unos clic - sin necesidad de descargar.
Para mas información básica acerca de como actualizar este manual y referencia a sintaxis Sphinx, por favor consulte la guía Escribiendo y actualizando el manual.