Genshi (templating language)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Genshi
Developer(s) Edgewall Software
Initial release August 3, 2006; 18 years ago (2006-08-03)
Stable release 0.7 / January 27, 2013; 12 years ago (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 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

<templatestyles src="Reflist/styles.css" />

Cite error: Invalid <references> tag; parameter "group" is allowed only.

Use <references />, or <references group="..." />

External links

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • 10.0 10.1 10.2 Lua error in package.lua at line 80: module 'strict' not found.