| Jinja Changelog |
| =============== |
| |
| Version 1.3 |
| ----------- |
| (codename to be selected, release around February 2007) |
| |
| Version 1.2 |
| ----------- |
| (codename to be hatsuyuki, released Nov 17th 2007) |
| |
| .. admonition:: Backwards Incompatible Changes |
| |
| - `call` is a keyword now |
| - the internal parser AST changed |
| - `extends` must be the first tag in a template |
| - the tuple literal yields tuples now, instead of lists. |
| |
| - environments now have a `translator_factory` parameter that allows |
| to change the translator without subclassing the environment. |
| |
| - fixed bug in buffet plugin regarding the package loader |
| |
| - once again improved debugger. |
| |
| - added `groupby` filter. |
| |
| - added `sameas` test function. |
| |
| - standalone parser. Jinja does not use the python parser any more and will |
| continue having the same semantics in any future python versions. This |
| was done in order to simplify updating Jinja to 2.6 and 3.0 and to support |
| non python syntax. |
| |
| - added support for ``expr1 if test else expr2`` (conditional expressions) |
| |
| - ``foo.0`` as alias for ``foo[0]`` is possible now. This is mainly for |
| django compatibility. |
| |
| - the filter operators has a much higher priority now which makes it |
| possible to do ``foo|filter + bar|filter``. |
| |
| - new AST. the return value of `Environment.parse` is now a Jinja AST and not |
| a Jinja-Python AST. This is also the only backwards incompatible change but |
| should not affect many users because this feature is more or less |
| undocumented and has few use cases. |
| |
| - tuple syntax returns tuples now and not lists any more. |
| |
| - the print directive and ``{{ variable }}`` syntax now accepts and implicit |
| tuple like the `for` and `cycle` tags. (``{{ 1, 2 }}`` is an implicit alias |
| for ``{{ (1, 2) }}` like ``{% for a, b in seq %}`` is for |
| ``{% for (a, b) in seq %}``. |
| |
| - tests called with *one* parameter don't need parentheses. This gives a more |
| natural syntax for the `sameas` test and some others: |
| ``{{ foo is sameas bar }}`` instead of ``{{ foo is sameas(bar) }}``. If you |
| however want to pass more than one argument you have to use parentheses |
| because ``{{ foo is sometest bar, baz }}`` is handled as |
| ``{{ (foo is sometest(bar), baz) }}``, so as tuple expression. |
| |
| - removed support for octal character definitions in strings such as |
| ``'\14'``, use ``'\x0c'`` now. |
| |
| - added regular expression literal. ``@/expr/flags`` equals |
| ``re.compile(r'(?flags)expr')``. This is useful for the `matching` test and |
| probably some others. |
| |
| - added set literal. We do not use python3's {1, 2} syntax because |
| this conflicts with the dict literal. To be compatible with the regex |
| literal we use ``@(1, 2)`` instead. |
| |
| - fixed bug in `get_attribute` that disallowed retreiving attributes of objects |
| without a `__class__` such as `_sre.SRE_Pattern`. |
| |
| - addded `django.contrib.jinja` which provides advanced support for django. |
| (thanks Bryan McLemore) |
| |
| - debugger is now able to rewrite the whole traceback, not only the first |
| frame. (requires the optional debugger c module which is compiled |
| automatically on installation if possible) |
| |
| - if the set that is postfixed with a bang (!) it acts like the python 3 |
| "nonlocal" keyword. This means that you can now override variables |
| defined in the outer scope from within a loop. |
| |
| - ``foo ~ bar`` is now a simpler alternative to ``foo|string + bar|string`` |
| |
| - `PackageLoader` can now work without pkg_resources too |
| |
| - added `getattribute` and `getitem` filter. |
| |
| - added support for the `pretty` library. |
| |
| - changed the way the `MemcachedLoaderMixin` creates the class so that it's |
| possible to hook your own client in. |
| |
| |
| Version 1.1 |
| ----------- |
| (codename: sinka, released Jun 1, 2007) |
| |
| - 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 now 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) |
| |
| - fixed extended slicing |
| |
| - reworked loader layer. All the cached loaders now have "private" non cached |
| baseclasses so that you can easily mix your own caching layers in. |
| |
| - added `MemcachedLoaderMixin` and `MemcachedFileSystemLoader` contributed |
| by Bryan McLemore. |
| |
| |
| Version 1.0 |
| ----------- |
| (codename: siyutusan, released Mar 23, 2007) |
| |
| - Initial release |