[svn] added groupby filter and fixed some small bugs
[jinja2.git] / CHANGES
1 Jinja Changelog
2 ===============
3
4 Version 1.2
5 -----------
6 (codename to be selected, release date unknown)
7
8 - environments now have a `translator_factory` parameter that allows
9   to change the translator without subclassing the environment.
10
11 - fixed bug in buffet plugin regarding the package loader
12
13 - once again improved debugger.
14
15 - added `groupby` filter.
16
17
18 Version 1.1
19 -----------
20 (codename: sinka, released Jun 1, 2007)
21
22 - blocks now support ``{{ super() }}`` to render the parent output.
23
24 - debugging system improved, smaller filesize for the cached files.
25   Debugging works now well for any module using linecache.
26
27 - ``{{ debug() }}`` can now be used to get a list of filters and
28   tags.
29
30 - the template lexer keeps not track of brace, parenthesis and
31   bracket balance in order to not break variable tags apart if they
32   are configured to look like this: ``${expr}``. This also fixes
33   the problem with nested dicts in variable expressions.
34
35 - it's now possible to configure the variable blocks to look the
36   same as the block delimiters. Thus you can set the syntax to something
37   like ``{ / }`` for both blocks and variables.
38
39 - added whitespace management system for the template designer.
40
41 - some small bugfixes.
42
43 - improved security system regarding function calls and variable
44   assignment in for loops.
45
46 - added `lipsum` function to generate random text.
47
48 - strings without unicode characters are processed as binary strings now
49   to workaround problems with `datetime.strftime` which only accepts
50   binary strings.
51
52 - it's now possible to use newlines in string literals
53
54 - developer friendly traceback is now toggleable
55
56 - the variable failure is now pluggable by replacing the undefined
57   singleton for an environment instance
58
59 - fixed issue with old-style classes not implementing `__getitem__`
60   (thanks to Axel Böhm for discovering that bug)
61
62 - added a bunch of new docstrings to the Jinja classes. Makes fun now to
63   use pydoc :-)
64
65 - fixed severe memcaching bug. Formerly it wasn't possible to use memcaching
66   without enabling disk cache.
67
68 - fixed a bug that allowed users to override the special names `_`, `true` etc.
69
70 - added `batch` and `slice` filters for batching or slicing sequences
71
72 - added `sum`, `abs`, `round` and `sort` filters. This fixes #238
73
74 - added `striptags` and `xmlattr` filters for easier SGML/XML processing
75
76 - the trans tag does not need explicit naming for variables with the same
77   name any more. You can now use ``{% trans foo %}`` instead of the verbose
78   version ``{% trans foo=foo %}``.
79
80 - reimplemented Buffet plugin so that it works at least for pylons
81
82 - added `Environment.get_translations_for_string`
83
84 - fixed a bug in the parser that didn't unescape keyword arguments. (thanks
85   to Alexey Melchakov for reporting)
86
87 - You can now use the environment to just tokenize a template. This can
88   be useful for syntax highlighting or other purposes.
89
90 - added optional C-implementation of the context baseclass.
91
92 - you can now use optional parentheses around macro defintions. Thus it's
93   possible to write ``{% macro foo(a, b, c) %}`` instead of ``{% macro
94   foo a, b, c %}``.
95
96 - additional macro arguments now end up in `varargs`.
97
98 - implemented the `{% call %}` block. `call` and `endcall` can still be used
99   as identifiers until Jinja 1.3
100
101 - it's now possible to stream templates.
102
103 - fixed a corner case when defining a block inside of a condition
104
105 - the cached loader mixin is now able to cache multiple templates from
106   different loaders in the same cache folder.
107
108 - Translatable strings returned by ``_()`` will leave their string formatting
109   signs untouched. Thanks to Stefan Ebner for reporting.
110
111 - ``{% block name "data" %}`` is now an alias for
112   ``{% block name %}data{% endblock %}``. Note that the second argument can
113   be an expression. As soon as you specify an expression as second argument
114   the closing tag has to be omitted.
115
116 - It's now possible to iterate over iterators additionally to sequences.
117   If the iterator is inifite it will crash however, so makes sure you don't
118   pass something like that to a template!
119
120 - added `rendetemplate` to render included templates in an isolated
121   environment and get the outout back.
122
123 - added `simplefilter` decorator.
124
125 - improved ChoiceLoader error reporting (thanks to Bryan McLemore)
126
127 - fixed extended slicing
128
129 - reworked loader layer. All the cached loaders now have "private" non cached
130   baseclasses so that you can easily mix your own caching layers in.
131
132 - added `MemcachedLoaderMixin` and `MemcachedFileSystemLoader` contributed
133   by Bryan McLemore.
134
135
136 Version 1.0
137 -----------
138 (codename: siyutusan, released Mar 23, 2007)
139
140 - Initial release