| 1 | = Markup Templates = |
| 2 | |
| 3 | The `markup` package provides a template engine that is compatible with Kid (http://kid.lesscode.org) to a |
| 4 | certain extent. |
| 5 | |
| 6 | Differences include: |
| 7 | * No generation of Python code for a template; the template is "interpreted" |
| 8 | * No support for <?python ?> processing instructions |
| 9 | * Expressions are evaluated in a more flexible manner, meaning you can use e.g. attribute access notation to access items in a dictionary, etc |
| 10 | * Use of XInclude and match templates instead of Kid's py:extends/py:layout directives |
| 11 | * Real (thread-safe) search path support |
| 12 | * No dependency on ElementTree (due to the lack of position reporting) |
| 13 | * The original location of parse events is kept throughout the processing pipeline, so that errors can be tracked back to a specific line/column in the template file |
| 14 | * py:match directives use (basic) XPath expressions to match against input nodes, making match templates more powerful while keeping the syntax simple |