Wikipedia

Genshi (templating language)

Genshi
Developer(s)Edgewall Software
Initial releaseAugust 3, 2006
Stable release
0.7 / January 27, 2013 (2013-01-27)
Repository Edit this at Wikidata
Operating systemCross-platform
TypeTemplate Engine
Websitegenshi.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

  • 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]
  • Genshi templates are easier to debug, because it tracks template source file names and line numbers, and errors from Genshi's interpreter produce more comprehensible stack traces than from Kid's generated code. [10]

References

  1. ^ "What is Genshi?". Retrieved 2008-01-20.
  2. ^ "CherryPy – Genshi". Retrieved 2009-09-26.
  3. ^ "Genshi - CherryPy Tools - Trac". Archived from the original on 2012-07-04. Retrieved 2009-09-26.
  4. ^ "Genshi Templating". Archived from the original on 2012-07-04. Retrieved 2008-01-20.
  5. ^ "Genshi Templates - Pylons Cookbook". Archived from the original on 2012-07-04. Retrieved 2008-01-20.
  6. ^ "web2py: Enterprise Web Framework". Retrieved 2009-09-26.
  7. ^ Ramm, Mark. "TurboGears 1.1 and Beyond". Archived from the original on 2012-07-04. Retrieved 2008-01-20.
  8. ^ "Choosing a templating language". Archived from the original on 2010-06-16. Retrieved 2010-05-30.
  9. ^ "Choosing a templating language". Archived from the original on 2008-01-17. Retrieved 2008-01-20.
  10. ^ a b c d "Comparing Genshi to Kid". Retrieved 2008-01-20.

External links

This article is copied from an article on Wikipedia® - the free encyclopedia created and edited by its online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of Wikipedia® encyclopedia articles provide accurate and timely information, please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.

Copyright © 2003-2025 Farlex, Inc Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.