Genshi é um mecanismo de template para vocabulários baseados em XML escrito em Python. Genshi é usado para inserir, de maneira simples, a saída gerada em linguagens baseadas em XML, normalmente HTML, e reutilizar elementos entre documentos. É baseado no Kid e visa a implementação de algumas de suas funcionalidades ao passo que processa templates mais rápido.
Este artigo não cita fontes confiáveis. (Agosto de 2021) |
Genshi pode ser usado com vários frameworks web Python, como CherryPy, TurboGears, Pylons e web2py. Genshi substituiu o Kid no framework web TurboGears 2.x.
Marcação no Genshi
Ganshi utiliza espaços de nomes para embutir instruções no HTML. Uma instrução típica é dada como um atributo, com uma expressão Python dentro das aspas. Por exemplo, o seguinte código apresentará um parágrafo que mostra 4:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/">
<body>
<p py:content="2 + 2">Isto será substituído com 4</p>
</body>
</html>
Devido ao uso de espaços de nomes, Genshi pode ser usado em editores HTML WYSIWYG.
Diferenças entre Kid e Genshi
- Genshi interpreta diretamente os templates (diferente de Kid, que gera código Python)
- Genshi utiliza XInclude para reutilização de template
- Genshi adiciona atributos que Kid não possui, como
py:choose
Ligações externas
- Sítio web oficial do Genshi (inglês)
- Tutorial do Genshi (inglês)