Genshi (templating language)

Genshi
Developer(s) Edgewall Software
Initial release August 3, 2006 (2006-08-03)
Stable release
0.7 / January 27, 2013 (2013-01-27)
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's syntax is based on Kid, but its architecture is different. Genshi aims to implement some of its functionality while processing templates faster, by dynamically processing templates using a stream based API, instead of compiling templates to Python code.[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

References

  1. "What is Genshi?". Retrieved 2008-01-20.
  2. "CherryPy – Genshi". Retrieved 2009-09-26.
  3. "Genshi - CherryPy Tools - Trac". Retrieved 2009-09-26.
  4. "Genshi Templating". Retrieved 2008-01-20.
  5. "Genshi Templates - Pylons Cookbook". Retrieved 2008-01-20.
  6. "web2py: Enterprise Web Framework". Retrieved 2009-09-26.
  7. Ramm, Mark. "TurboGears 1.1 and Beyond". Retrieved 2008-01-20.
  8. "Choosing a templating language". Retrieved 2010-05-30.
  9. "Choosing a templating language". Retrieved 2008-01-20.
  10. 1 2 3 4 "Comparing Genshi to Kid". Retrieved 2008-01-20.

External links

This article is issued from Wikipedia - version of the 1/16/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.