Kajiki is the new template engine born within TurboGears framework as a replacement for Genshi. Kajiki combines speed with template validation: you won’t discover broken HTML at render time, but the engine will report errors to you; also its syntax allows designers to edit the template in WYSIWYG tools.
This talk aims at introducing the audience to the various kind of template engines existing in the Python ecosystem, then a little bit of history about why Kajiki was created and its role within the TurboGears framework. Once you have a good understanding of the context where Kajiki was born and of its needs it will deep dive into the template engine itself, explaining how it works and how it’s implemented.
The talk will provide an overview of the templating syntax and cover all the engine features like:
- Automatic escaping of user inputs to protect from XSS
- HTML validation and error detection
- Automatic i18n
- debuggers integration
Last it will dive into how the template engine intermediate language works and how we could use Cython to make our templates lightning fast as in the end Kajiki generates Python which we can compile with Cython itself.