blob: e0153c5d1e4261f8e30533a07f63cd8a55237142 [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
76- ``foo + bar`` is now a simpler alternative to ``foo|string + bar|string``
77
78- `PackageLoader` can now work without pkg_resources too
79
80- added `getattribute` and `getitem` filter.
81
Armin Ronacherc6a36522007-10-21 21:38:35 +020082- added support for the `pp` library.
83
Armin Ronachera7804ef2007-06-15 18:03:21 +020084
Armin Ronachera22a53d2007-03-31 20:44:33 +020085Version 1.1
86-----------
Armin Ronacherecc051b2007-06-01 18:25:28 +020087(codename: sinka, released Jun 1, 2007)
Armin Ronachera22a53d2007-03-31 20:44:33 +020088
89- blocks now support ``{{ super() }}`` to render the parent output.
90
91- debugging system improved, smaller filesize for the cached files.
Armin Ronacher859efe02007-04-05 22:38:44 +020092 Debugging works now well for any module using linecache.
Armin Ronachera22a53d2007-03-31 20:44:33 +020093
Armin Ronacher90a5cb32007-04-15 00:56:32 +020094- ``{{ debug() }}`` can now be used to get a list of filters and
95 tags.
96
Armin Ronacher21580912007-04-17 17:13:10 +020097- the template lexer keeps not track of brace, parenthesis and
98 bracket balance in order to not break variable tags apart if they
99 are configured to look like this: ``${expr}``. This also fixes
100 the problem with nested dicts in variable expressions.
101
Armin Ronacher33d528a2007-05-14 18:21:44 +0200102- it's now possible to configure the variable blocks to look the
103 same as the block delimiters. Thus you can set the syntax to something
104 like ``{ / }`` for both blocks and variables.
105
Armin Ronachera22a53d2007-03-31 20:44:33 +0200106- added whitespace management system for the template designer.
107
108- some small bugfixes.
109
Armin Ronacheree2c18e2007-04-20 22:39:04 +0200110- improved security system regarding function calls and variable
111 assignment in for loops.
Armin Ronachera22a53d2007-03-31 20:44:33 +0200112
Armin Ronacher5a8e4972007-04-05 11:21:38 +0200113- added `lipsum` function to generate random text.
Armin Ronachera22a53d2007-03-31 20:44:33 +0200114
115- strings without unicode characters are processed as binary strings now
116 to workaround problems with `datetime.strftime` which only accepts
117 binary strings.
118
Armin Ronacher21580912007-04-17 17:13:10 +0200119- it's now possible to use newlines in string literals
120
Armin Ronacher40cf47c2007-04-04 13:50:09 +0200121- developer friendly traceback is now toggleable
122
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200123- the variable failure is now pluggable by replacing the undefined
124 singleton for an environment instance
Armin Ronacher40cf47c2007-04-04 13:50:09 +0200125
Armin Ronacher5a8e4972007-04-05 11:21:38 +0200126- fixed issue with old-style classes not implementing `__getitem__`
127 (thanks to Axel Böhm for discovering that bug)
128
129- added a bunch of new docstrings to the Jinja classes. Makes fun now to
130 use pydoc :-)
131
Armin Ronacher2acbac12007-04-11 21:49:48 +0200132- fixed severe memcaching bug. Formerly it wasn't possible to use memcaching
133 without enabling disk cache.
134
Armin Ronacherd071f952007-04-13 22:32:11 +0200135- fixed a bug that allowed users to override the special names `_`, `true` etc.
136
Armin Ronachereec31382007-04-14 14:50:45 +0200137- added `batch` and `slice` filters for batching or slicing sequences
138
Armin Ronacher9bcd4112007-05-29 14:17:24 +0200139- added `sum`, `abs`, `round` and `sort` filters. This fixes #238
Armin Ronacherd071f952007-04-13 22:32:11 +0200140
Armin Ronacher450756b2007-04-15 15:13:59 +0200141- added `striptags` and `xmlattr` filters for easier SGML/XML processing
Georg Brandlaf31e4d2007-04-15 00:47:37 +0200142
Armin Ronacher21580912007-04-17 17:13:10 +0200143- the trans tag does not need explicit naming for variables with the same
144 name any more. You can now use ``{% trans foo %}`` instead of the verbose
145 version ``{% trans foo=foo %}``.
146
147- reimplemented Buffet plugin so that it works at least for pylons
148
149- added `Environment.get_translations_for_string`
150
151- fixed a bug in the parser that didn't unescape keyword arguments. (thanks
152 to Alexey Melchakov for reporting)
153
Armin Ronacheree2c18e2007-04-20 22:39:04 +0200154- You can now use the environment to just tokenize a template. This can
155 be useful for syntax highlighting or other purposes.
156
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200157- added optional C-implementation of the context baseclass.
158
159- you can now use optional parentheses around macro defintions. Thus it's
160 possible to write ``{% macro foo(a, b, c) %}`` instead of ``{% macro
161 foo a, b, c %}``.
162
163- additional macro arguments now end up in `varargs`.
Armin Ronachere98c5f52007-04-21 09:39:06 +0200164
Armin Ronacherccf284b2007-05-21 16:44:26 +0200165- implemented the `{% call %}` block. `call` and `endcall` can still be used
166 as identifiers until Jinja 1.3
Armin Ronachere98c5f52007-04-21 09:39:06 +0200167
Armin Ronacher2f43ba42007-06-02 14:11:35 +0200168- it's now possible to stream templates.
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200169
Armin Ronacher4f417112007-04-28 23:23:44 +0200170- fixed a corner case when defining a block inside of a condition
171
Armin Ronacherce513f22007-04-29 19:56:52 +0200172- the cached loader mixin is now able to cache multiple templates from
173 different loaders in the same cache folder.
174
175- Translatable strings returned by ``_()`` will leave their string formatting
176 signs untouched. Thanks to Stefan Ebner for reporting.
177
Armin Ronacher49659872007-05-12 23:29:33 +0200178- ``{% block name "data" %}`` is now an alias for
179 ``{% block name %}data{% endblock %}``. Note that the second argument can
180 be an expression. As soon as you specify an expression as second argument
181 the closing tag has to be omitted.
182
Armin Ronacher6dba4d62007-05-21 23:41:36 +0200183- It's now possible to iterate over iterators additionally to sequences.
184 If the iterator is inifite it will crash however, so makes sure you don't
185 pass something like that to a template!
186
Armin Ronacher9bcd4112007-05-29 14:17:24 +0200187- added `rendetemplate` to render included templates in an isolated
188 environment and get the outout back.
189
190- added `simplefilter` decorator.
191
Armin Ronacher63ca7212007-05-30 00:29:39 +0200192- improved ChoiceLoader error reporting (thanks to Bryan McLemore)
193
Armin Ronacherecc051b2007-06-01 18:25:28 +0200194- fixed extended slicing
195
Armin Ronacherdb69d0a2007-06-02 01:35:53 +0200196- reworked loader layer. All the cached loaders now have "private" non cached
197 baseclasses so that you can easily mix your own caching layers in.
198
199- added `MemcachedLoaderMixin` and `MemcachedFileSystemLoader` contributed
200 by Bryan McLemore.
201
Armin Ronachera22a53d2007-03-31 20:44:33 +0200202
203Version 1.0
204-----------
Armin Ronacherecc051b2007-06-01 18:25:28 +0200205(codename: siyutusan, released Mar 23, 2007)
Armin Ronachera22a53d2007-03-31 20:44:33 +0200206
207- Initial release