blob: 2a0a9532da4cad4cc643d4ef582508c942d9f96b [file] [log] [blame]
Armin Ronachera22a53d2007-03-31 20:44:33 +02001Jinja Changelog
2===============
3
Armin Ronachera7804ef2007-06-15 18:03:21 +02004Version 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
Armin Ronachere39a5d22007-06-23 21:11:53 +020015- added `groupby` filter.
16
Armin Ronacher69ddc582007-06-24 12:37:13 +020017- added `sameas` test function.
18
Armin Ronacher1cc232c2007-09-07 17:52:41 +020019- standalone parser. Jinja does not use the python parser any more and will
20 continue having the same semantics in any future python versions. This
21 was done in order to simplify updating Jinja to 2.6 and 3.0 and to support
22 non python syntax.
23
24- added support for ``expr1 if test else expr2`` (conditional expressions)
25
26- ``foo.0`` as alias for ``foo[0]`` is possible now. This is mainly for
27 django compatibility.
28
29- the filter operators has a much higher priority now which makes it
30 possible to do ``foo|filter + bar|filter``.
31
32- new AST. the return value of `Environment.parse` is now a Jinja AST and not
33 a Jinja-Python AST. This is also the only backwards incompatible change but
34 should not affect many users because this feature is more or less
35 undocumented and has few use cases.
36
37- tuple syntax returns tuples now and not lists any more.
38
39- the print directive and ``{{ variable }}`` syntax now accepts and implicit
40 tuple like the `for` and `cycle` tags. (``{{ 1, 2 }}`` is an implicit alias
41 for ``{{ (1, 2) }}` like ``{% for a, b in seq %}`` is for
42 ``{% for (a, b) in seq %}``.
43
44- tests called with *one* parameter don't need parentheses. This gives a more
45 natural syntax for the `sameas` test and some others:
46 ``{{ foo is sameas bar }}`` instead of ``{{ foo is sameas(bar) }}``. If you
47 however want to pass more than one argument you have to use parentheses
48 because ``{{ foo is sometest bar, baz }}`` is handled as
49 ``{{ (foo is sometest(bar), baz) }}``, so as tuple expression.
50
51- removed support for octal character definitions in strings such as
52 ``'\14'``, use ``'\x0c'`` now.
53
54- added regular expression literal. ``@/expr/flags`` equals
55 ``re.compile(r'(?flags)expr')``. This is useful for the `matching` test and
56 probably some others.
57
58- added set literal. We do not use python3's {1, 2} syntax because
59 this conflicts with the dict literal. To be compatible with the regex
60 literal we use ``@(1, 2)`` instead.
61
62- fixed bug in `get_attribute` that disallowed retreiving attributes of objects
63 without a `__class__` such as `_sre.SRE_Pattern`.
64
65- addded `django.contrib.jinja` which provides advanced support for django.
66 (thanks Bryan McLemore)
67
68- debugger is now able to rewrite the whole traceback, not only the first
69 frame. (requires the optional debugger c module which is compiled
70 automatically on installation if possible)
71
72- if the set that is postfixed with a bang (!) it acts like the python 3
73 "nonlocal" keyword. This means that you can now override variables
74 defined in the outer scope from within a loop.
75
Armin Ronacher015b0c92007-11-11 00:10:17 +010076- ``foo ~ bar`` is now a simpler alternative to ``foo|string + bar|string``
Armin Ronacher1cc232c2007-09-07 17:52:41 +020077
78- `PackageLoader` can now work without pkg_resources too
79
80- added `getattribute` and `getitem` filter.
81
Armin Ronacher5f3f1362007-10-21 22:15:04 +020082- added support for the `pretty` library.
Armin Ronacherc6a36522007-10-21 21:38:35 +020083
Armin Ronacher77e2ab52007-10-22 23:31:48 +020084- changed the way the `MemcachedLoaderMixin` creates the class so that it's
85 possible to hook your own client in.
86
Armin Ronachera7804ef2007-06-15 18:03:21 +020087
Armin Ronachera22a53d2007-03-31 20:44:33 +020088Version 1.1
89-----------
Armin Ronacherecc051b2007-06-01 18:25:28 +020090(codename: sinka, released Jun 1, 2007)
Armin Ronachera22a53d2007-03-31 20:44:33 +020091
92- blocks now support ``{{ super() }}`` to render the parent output.
93
94- debugging system improved, smaller filesize for the cached files.
Armin Ronacher859efe02007-04-05 22:38:44 +020095 Debugging works now well for any module using linecache.
Armin Ronachera22a53d2007-03-31 20:44:33 +020096
Armin Ronacher90a5cb32007-04-15 00:56:32 +020097- ``{{ debug() }}`` can now be used to get a list of filters and
98 tags.
99
Armin Ronacher21580912007-04-17 17:13:10 +0200100- the template lexer keeps not track of brace, parenthesis and
101 bracket balance in order to not break variable tags apart if they
102 are configured to look like this: ``${expr}``. This also fixes
103 the problem with nested dicts in variable expressions.
104
Armin Ronacher33d528a2007-05-14 18:21:44 +0200105- it's now possible to configure the variable blocks to look the
106 same as the block delimiters. Thus you can set the syntax to something
107 like ``{ / }`` for both blocks and variables.
108
Armin Ronachera22a53d2007-03-31 20:44:33 +0200109- added whitespace management system for the template designer.
110
111- some small bugfixes.
112
Armin Ronacheree2c18e2007-04-20 22:39:04 +0200113- improved security system regarding function calls and variable
114 assignment in for loops.
Armin Ronachera22a53d2007-03-31 20:44:33 +0200115
Armin Ronacher5a8e4972007-04-05 11:21:38 +0200116- added `lipsum` function to generate random text.
Armin Ronachera22a53d2007-03-31 20:44:33 +0200117
118- strings without unicode characters are processed as binary strings now
119 to workaround problems with `datetime.strftime` which only accepts
120 binary strings.
121
Armin Ronacher21580912007-04-17 17:13:10 +0200122- it's now possible to use newlines in string literals
123
Armin Ronacher40cf47c2007-04-04 13:50:09 +0200124- developer friendly traceback is now toggleable
125
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200126- the variable failure is now pluggable by replacing the undefined
127 singleton for an environment instance
Armin Ronacher40cf47c2007-04-04 13:50:09 +0200128
Armin Ronacher5a8e4972007-04-05 11:21:38 +0200129- fixed issue with old-style classes not implementing `__getitem__`
130 (thanks to Axel Böhm for discovering that bug)
131
132- added a bunch of new docstrings to the Jinja classes. Makes fun now to
133 use pydoc :-)
134
Armin Ronacher2acbac12007-04-11 21:49:48 +0200135- fixed severe memcaching bug. Formerly it wasn't possible to use memcaching
136 without enabling disk cache.
137
Armin Ronacherd071f952007-04-13 22:32:11 +0200138- fixed a bug that allowed users to override the special names `_`, `true` etc.
139
Armin Ronachereec31382007-04-14 14:50:45 +0200140- added `batch` and `slice` filters for batching or slicing sequences
141
Armin Ronacher9bcd4112007-05-29 14:17:24 +0200142- added `sum`, `abs`, `round` and `sort` filters. This fixes #238
Armin Ronacherd071f952007-04-13 22:32:11 +0200143
Armin Ronacher450756b2007-04-15 15:13:59 +0200144- added `striptags` and `xmlattr` filters for easier SGML/XML processing
Georg Brandlaf31e4d2007-04-15 00:47:37 +0200145
Armin Ronacher21580912007-04-17 17:13:10 +0200146- the trans tag does not need explicit naming for variables with the same
147 name any more. You can now use ``{% trans foo %}`` instead of the verbose
148 version ``{% trans foo=foo %}``.
149
150- reimplemented Buffet plugin so that it works at least for pylons
151
152- added `Environment.get_translations_for_string`
153
154- fixed a bug in the parser that didn't unescape keyword arguments. (thanks
155 to Alexey Melchakov for reporting)
156
Armin Ronacheree2c18e2007-04-20 22:39:04 +0200157- You can now use the environment to just tokenize a template. This can
158 be useful for syntax highlighting or other purposes.
159
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200160- added optional C-implementation of the context baseclass.
161
162- you can now use optional parentheses around macro defintions. Thus it's
163 possible to write ``{% macro foo(a, b, c) %}`` instead of ``{% macro
164 foo a, b, c %}``.
165
166- additional macro arguments now end up in `varargs`.
Armin Ronachere98c5f52007-04-21 09:39:06 +0200167
Armin Ronacherccf284b2007-05-21 16:44:26 +0200168- implemented the `{% call %}` block. `call` and `endcall` can still be used
169 as identifiers until Jinja 1.3
Armin Ronachere98c5f52007-04-21 09:39:06 +0200170
Armin Ronacher2f43ba42007-06-02 14:11:35 +0200171- it's now possible to stream templates.
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200172
Armin Ronacher4f417112007-04-28 23:23:44 +0200173- fixed a corner case when defining a block inside of a condition
174
Armin Ronacherce513f22007-04-29 19:56:52 +0200175- the cached loader mixin is now able to cache multiple templates from
176 different loaders in the same cache folder.
177
178- Translatable strings returned by ``_()`` will leave their string formatting
179 signs untouched. Thanks to Stefan Ebner for reporting.
180
Armin Ronacher49659872007-05-12 23:29:33 +0200181- ``{% block name "data" %}`` is now an alias for
182 ``{% block name %}data{% endblock %}``. Note that the second argument can
183 be an expression. As soon as you specify an expression as second argument
184 the closing tag has to be omitted.
185
Armin Ronacher6dba4d62007-05-21 23:41:36 +0200186- It's now possible to iterate over iterators additionally to sequences.
187 If the iterator is inifite it will crash however, so makes sure you don't
188 pass something like that to a template!
189
Armin Ronacher9bcd4112007-05-29 14:17:24 +0200190- added `rendetemplate` to render included templates in an isolated
191 environment and get the outout back.
192
193- added `simplefilter` decorator.
194
Armin Ronacher63ca7212007-05-30 00:29:39 +0200195- improved ChoiceLoader error reporting (thanks to Bryan McLemore)
196
Armin Ronacherecc051b2007-06-01 18:25:28 +0200197- fixed extended slicing
198
Armin Ronacherdb69d0a2007-06-02 01:35:53 +0200199- reworked loader layer. All the cached loaders now have "private" non cached
200 baseclasses so that you can easily mix your own caching layers in.
201
202- added `MemcachedLoaderMixin` and `MemcachedFileSystemLoader` contributed
203 by Bryan McLemore.
204
Armin Ronachera22a53d2007-03-31 20:44:33 +0200205
206Version 1.0
207-----------
Armin Ronacherecc051b2007-06-01 18:25:28 +0200208(codename: siyutusan, released Mar 23, 2007)
Armin Ronachera22a53d2007-03-31 20:44:33 +0200209
210- Initial release