Genshi (templating language)
Developer(s) | Edgewall Software |
---|---|
Initial release | August 3, 2006 |
Stable release | 0.6 / April 22, 2010 |
Operating system | Cross-platform |
Type | Template Engine |
Website | genshi.edgewall.org |
Genshi is a template engine for XML-based vocabularies written in Python. Genshi is used to easily insert generated output into XML-based languages, usually HTML, and reuse elements between documents. Genshi is based on Kid and aims to implement some of its functionality while processing templates faster.[1]
Genshi can be used with several Python web frameworks, such as CherryPy,[2][3] TurboGears,[4] Pylons[5] and web2py.[6] Genshi has replaced Kid in the TurboGears 2.x web framework.[7]
Genshi markup
Genshi makes use of namespaces to embed instructions into HTML. A typical instruction is given as an attribute, with a Python expression inside the quotes. For example, the following will render a paragraph that shows 4:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/"> <body> <p py:content="2 + 2">This will be replaced with 4</p> </body> </html>
Because of the use of namespaces, Genshi can be used in WYSIWYG HTML editors.[8][9]
Differences between Kid and Genshi
- Genshi directly interprets templates (unlike Kid, which generates Python code)[10]
- Genshi uses XInclude for template reuse[10]
- Genshi adds attributes Kid does not have, like
py:choose
[10]
References
- ↑ "What is Genshi?". Retrieved 2008-01-20.
- ↑ "CherryPy – Genshi". Retrieved 2009-09-26.
- ↑ "Genshi - CherryPy Tools - Trac". Retrieved 2009-09-26.
- ↑ "Genshi Templating". Retrieved 2008-01-20.
- ↑ "Genshi Templates - Pylons Cookbook". Retrieved 2008-01-20.
- ↑ "web2py: Enterprise Web Framework". Retrieved 2009-09-26.
- ↑ Ramm, Mark. "TurboGears 1.1 and Beyond". Retrieved 2008-01-20.
- ↑ "Choosing a templating language". Retrieved 2010-05-30.
- ↑ "Choosing a templating language". Retrieved 2008-01-20.
- ↑ 10.0 10.1 10.2 "Comparing Genshi to Kid". Retrieved 2008-01-20.