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.

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 editar

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 editar

  • 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 editar