Jinja Changelog =============== Version 1.1 ----------- (codename to be selected, release date unknown) - blocks now support ``{{ super() }}`` to render the parent output. - debugging system improved, smaller filesize for the cached files. Debugging works now well for any module using linecache. - ``{{ debug() }}`` can now be used to get a list of filters and tags. - the template lexer keeps not track of brace, parenthesis and bracket balance in order to not break variable tags apart if they are configured to look like this: ``${expr}``. This also fixes the problem with nested dicts in variable expressions. - it's now possible to configure the variable blocks to look the same as the block delimiters. Thus you can set the syntax to something like ``{ / }`` for both blocks and variables. - added whitespace management system for the template designer. - some small bugfixes. - improved security system regarding function calls and variable assignment in for loops. - added `lipsum` function to generate random text. - strings without unicode characters are processed as binary strings now to workaround problems with `datetime.strftime` which only accepts binary strings. - it's now possible to use newlines in string literals - developer friendly traceback is now toggleable - the variable failure is now pluggable by replacing the undefined singleton for an environment instance - fixed issue with old-style classes not implementing `__getitem__` (thanks to Axel Böhm for discovering that bug) - added a bunch of new docstrings to the Jinja classes. Makes fun now to use pydoc :-) - fixed severe memcaching bug. Formerly it wasn't possible to use memcaching without enabling disk cache. - fixed a bug that allowed users to override the special names `_`, `true` etc. - added `batch` and `slice` filters for batching or slicing sequences - added `sum`, `abs`, `round` and `sort` filters. This fixes #238 - added `striptags` and `xmlattr` filters for easier SGML/XML processing - the trans tag does not need explicit naming for variables with the same name any more. You can now use ``{% trans foo %}`` instead of the verbose version ``{% trans foo=foo %}``. - reimplemented Buffet plugin so that it works at least for pylons - added `Environment.get_translations_for_string` - fixed a bug in the parser that didn't unescape keyword arguments. (thanks to Alexey Melchakov for reporting) - You can now use the environment to just tokenize a template. This can be useful for syntax highlighting or other purposes. - added optional C-implementation of the context baseclass. - you can now use optional parentheses around macro defintions. Thus it's possible to write ``{% macro foo(a, b, c) %}`` instead of ``{% macro foo a, b, c %}``. - additional macro arguments now end up in `varargs`. - implemented the `{% call %}` block. `call` and `endcall` can still be used as identifiers until Jinja 1.3 - it's not possible to stream templates. - fixed a corner case when defining a block inside of a condition - the cached loader mixin is now able to cache multiple templates from different loaders in the same cache folder. - Translatable strings returned by ``_()`` will leave their string formatting signs untouched. Thanks to Stefan Ebner for reporting. - ``{% block name "data" %}`` is now an alias for ``{% block name %}data{% endblock %}``. Note that the second argument can be an expression. As soon as you specify an expression as second argument the closing tag has to be omitted. - It's now possible to iterate over iterators additionally to sequences. If the iterator is inifite it will crash however, so makes sure you don't pass something like that to a template! - added `rendetemplate` to render included templates in an isolated environment and get the outout back. - added `simplefilter` decorator. - improved ChoiceLoader error reporting (thanks to Bryan McLemore) Version 1.0 ----------- (released Mar 23, 2007) - Initial release