Python XML-based template engine with Genshi-like syntax and Jinja-style blocks
Because Kajiki’s input is XML, it can ensure that your HTML/XML output is
well-formed. The Genshi-like syntax, based on XML attributes or tags, is simply
beautiful and easily understood (or ignored) by web designers.
But instead of the slow performance of Genshi_, Kajiki compiles
templates to Python code that renders with blazing-fast speed, so Kajiki can
compete with the speed of Jinja_, Mako_, Chameleon_ and others.
Also, one of Genshi’s misfeatures – py:match – is replaced with blocks which
work like Jinja’s blocks.
By combining the best ideas out there – XML input,
Genshi’s syntax and features, Jinja’s template inheritance and final
compilation to Python --, Kajiki is ready to become
the most widely used templating engine for web development in Python.
And more features are coming soon; stay tuned!
… code:: python
>>> import kajiki
>>> Template = kajiki.XMLTemplate('''<html>
... <head><title>$title</title></head>
... <body>
... <h1>$title</h1>
... <ul>
... <li py:for="x in range(repetitions)">$title</li>
... </ul>
... </body>
... </html>''')
>>> print(Template(dict(title='Kajiki is teh awesome!', repetitions=3)).render())
<html>
<head><title>Kajiki is teh awesome!</title></head>
<body>
<h1>Kajiki is teh awesome!</h1>
<ul>
<li>Kajiki is teh awesome!</li><li>Kajiki is teh awesome!</li><li>Kajiki is teh awesome!</li>
</ul>
</body>
</html>
Documentation_
Kajiki is licensed under an MIT-style license_.
The git repository and issue tracker
_ are at GitHub_. Previously the project
used SourceForge_ for the hg repository, issue tracker and forums.
… _Documentation: https://docs.kajiki.io/
… _license: https://github.com/jackrosenthal/kajiki/blob/master/LICENSE.rst
… _issue tracker
: https://github.com/jackrosenthal/kajiki/issues
… _GitHub: https://github.com/jackrosenthal/kajiki
… _SourceForge: http://sourceforge.net/p/kajiki/
… _Genshi: https://pypi.python.org/pypi/Genshi
… _Jinja: https://pypi.python.org/pypi/Jinja2
… _Mako: https://pypi.python.org/pypi/Mako
… _Chameleon: https://pypi.python.org/pypi/Chameleon