blob: 85ba238d332b7c18997aa7e4a8d23211826bea0e [file] [log] [blame]
Armin Ronachera22a53d2007-03-31 20:44:33 +02001Jinja Changelog
2===============
3
Armin Ronacherc689cf12007-11-18 11:23:58 +01004Version 1.3
5-----------
6(codename to be selected, release around February 2007)
7
Armin Ronachera7804ef2007-06-15 18:03:21 +02008Version 1.2
9-----------
Armin Ronacher825e5222007-11-16 16:16:23 +010010(codename to be hatsuyuki, released Nov 17th 2007)
11
12.. admonition:: Backwards Incompatible Changes
13
14 - `call` is a keyword now
15 - the internal parser AST changed
16 - `extends` must be the first tag in a template
17 - the tuple literal yields tuples now, instead of lists.
Armin Ronachera7804ef2007-06-15 18:03:21 +020018
19- environments now have a `translator_factory` parameter that allows
20 to change the translator without subclassing the environment.
21
22- fixed bug in buffet plugin regarding the package loader
23
24- once again improved debugger.
25
Armin Ronachere39a5d22007-06-23 21:11:53 +020026- added `groupby` filter.
27
Armin Ronacher69ddc582007-06-24 12:37:13 +020028- added `sameas` test function.
29
Armin Ronacher1cc232c2007-09-07 17:52:41 +020030- standalone parser. Jinja does not use the python parser any more and will
31 continue having the same semantics in any future python versions. This
32 was done in order to simplify updating Jinja to 2.6 and 3.0 and to support
33 non python syntax.
34
35- added support for ``expr1 if test else expr2`` (conditional expressions)
36
37- ``foo.0`` as alias for ``foo[0]`` is possible now. This is mainly for
38 django compatibility.
39
40- the filter operators has a much higher priority now which makes it
41 possible to do ``foo|filter + bar|filter``.
42
43- new AST. the return value of `Environment.parse` is now a Jinja AST and not
44 a Jinja-Python AST. This is also the only backwards incompatible change but
45 should not affect many users because this feature is more or less
46 undocumented and has few use cases.
47
48- tuple syntax returns tuples now and not lists any more.
49
50- the print directive and ``{{ variable }}`` syntax now accepts and implicit
51 tuple like the `for` and `cycle` tags. (``{{ 1, 2 }}`` is an implicit alias
52 for ``{{ (1, 2) }}` like ``{% for a, b in seq %}`` is for
53 ``{% for (a, b) in seq %}``.
54
55- tests called with *one* parameter don't need parentheses. This gives a more
56 natural syntax for the `sameas` test and some others:
57 ``{{ foo is sameas bar }}`` instead of ``{{ foo is sameas(bar) }}``. If you
58 however want to pass more than one argument you have to use parentheses
59 because ``{{ foo is sometest bar, baz }}`` is handled as
60 ``{{ (foo is sometest(bar), baz) }}``, so as tuple expression.
61
62- removed support for octal character definitions in strings such as
63 ``'\14'``, use ``'\x0c'`` now.
64
65- added regular expression literal. ``@/expr/flags`` equals
66 ``re.compile(r'(?flags)expr')``. This is useful for the `matching` test and
67 probably some others.
68
69- added set literal. We do not use python3's {1, 2} syntax because
70 this conflicts with the dict literal. To be compatible with the regex
71 literal we use ``@(1, 2)`` instead.
72
73- fixed bug in `get_attribute` that disallowed retreiving attributes of objects
74 without a `__class__` such as `_sre.SRE_Pattern`.
75
76- addded `django.contrib.jinja` which provides advanced support for django.
77 (thanks Bryan McLemore)
78
79- debugger is now able to rewrite the whole traceback, not only the first
80 frame. (requires the optional debugger c module which is compiled
81 automatically on installation if possible)
82
83- if the set that is postfixed with a bang (!) it acts like the python 3
84 "nonlocal" keyword. This means that you can now override variables
85 defined in the outer scope from within a loop.
86
Armin Ronacher015b0c92007-11-11 00:10:17 +010087- ``foo ~ bar`` is now a simpler alternative to ``foo|string + bar|string``
Armin Ronacher1cc232c2007-09-07 17:52:41 +020088
89- `PackageLoader` can now work without pkg_resources too
90
91- added `getattribute` and `getitem` filter.
92
Armin Ronacher5f3f1362007-10-21 22:15:04 +020093- added support for the `pretty` library.
Armin Ronacherc6a36522007-10-21 21:38:35 +020094
Armin Ronacher77e2ab52007-10-22 23:31:48 +020095- changed the way the `MemcachedLoaderMixin` creates the class so that it's
96 possible to hook your own client in.
97
Armin Ronachera7804ef2007-06-15 18:03:21 +020098
Armin Ronachera22a53d2007-03-31 20:44:33 +020099Version 1.1
100-----------
Armin Ronacherecc051b2007-06-01 18:25:28 +0200101(codename: sinka, released Jun 1, 2007)
Armin Ronachera22a53d2007-03-31 20:44:33 +0200102
103- blocks now support ``{{ super() }}`` to render the parent output.
104
105- debugging system improved, smaller filesize for the cached files.
Armin Ronacher859efe02007-04-05 22:38:44 +0200106 Debugging works now well for any module using linecache.
Armin Ronachera22a53d2007-03-31 20:44:33 +0200107
Armin Ronacher90a5cb32007-04-15 00:56:32 +0200108- ``{{ debug() }}`` can now be used to get a list of filters and
109 tags.
110
Armin Ronacher21580912007-04-17 17:13:10 +0200111- the template lexer keeps not track of brace, parenthesis and
112 bracket balance in order to not break variable tags apart if they
113 are configured to look like this: ``${expr}``. This also fixes
114 the problem with nested dicts in variable expressions.
115
Armin Ronacher33d528a2007-05-14 18:21:44 +0200116- it's now possible to configure the variable blocks to look the
117 same as the block delimiters. Thus you can set the syntax to something
118 like ``{ / }`` for both blocks and variables.
119
Armin Ronachera22a53d2007-03-31 20:44:33 +0200120- added whitespace management system for the template designer.
121
122- some small bugfixes.
123
Armin Ronacheree2c18e2007-04-20 22:39:04 +0200124- improved security system regarding function calls and variable
125 assignment in for loops.
Armin Ronachera22a53d2007-03-31 20:44:33 +0200126
Armin Ronacher5a8e4972007-04-05 11:21:38 +0200127- added `lipsum` function to generate random text.
Armin Ronachera22a53d2007-03-31 20:44:33 +0200128
129- strings without unicode characters are processed as binary strings now
130 to workaround problems with `datetime.strftime` which only accepts
131 binary strings.
132
Armin Ronacher21580912007-04-17 17:13:10 +0200133- it's now possible to use newlines in string literals
134
Armin Ronacher40cf47c2007-04-04 13:50:09 +0200135- developer friendly traceback is now toggleable
136
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200137- the variable failure is now pluggable by replacing the undefined
138 singleton for an environment instance
Armin Ronacher40cf47c2007-04-04 13:50:09 +0200139
Armin Ronacher5a8e4972007-04-05 11:21:38 +0200140- fixed issue with old-style classes not implementing `__getitem__`
141 (thanks to Axel Böhm for discovering that bug)
142
143- added a bunch of new docstrings to the Jinja classes. Makes fun now to
144 use pydoc :-)
145
Armin Ronacher2acbac12007-04-11 21:49:48 +0200146- fixed severe memcaching bug. Formerly it wasn't possible to use memcaching
147 without enabling disk cache.
148
Armin Ronacherd071f952007-04-13 22:32:11 +0200149- fixed a bug that allowed users to override the special names `_`, `true` etc.
150
Armin Ronachereec31382007-04-14 14:50:45 +0200151- added `batch` and `slice` filters for batching or slicing sequences
152
Armin Ronacher9bcd4112007-05-29 14:17:24 +0200153- added `sum`, `abs`, `round` and `sort` filters. This fixes #238
Armin Ronacherd071f952007-04-13 22:32:11 +0200154
Armin Ronacher450756b2007-04-15 15:13:59 +0200155- added `striptags` and `xmlattr` filters for easier SGML/XML processing
Georg Brandlaf31e4d2007-04-15 00:47:37 +0200156
Armin Ronacher21580912007-04-17 17:13:10 +0200157- the trans tag does not need explicit naming for variables with the same
158 name any more. You can now use ``{% trans foo %}`` instead of the verbose
159 version ``{% trans foo=foo %}``.
160
161- reimplemented Buffet plugin so that it works at least for pylons
162
163- added `Environment.get_translations_for_string`
164
165- fixed a bug in the parser that didn't unescape keyword arguments. (thanks
166 to Alexey Melchakov for reporting)
167
Armin Ronacheree2c18e2007-04-20 22:39:04 +0200168- You can now use the environment to just tokenize a template. This can
169 be useful for syntax highlighting or other purposes.
170
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200171- added optional C-implementation of the context baseclass.
172
173- you can now use optional parentheses around macro defintions. Thus it's
174 possible to write ``{% macro foo(a, b, c) %}`` instead of ``{% macro
175 foo a, b, c %}``.
176
177- additional macro arguments now end up in `varargs`.
Armin Ronachere98c5f52007-04-21 09:39:06 +0200178
Armin Ronacherccf284b2007-05-21 16:44:26 +0200179- implemented the `{% call %}` block. `call` and `endcall` can still be used
180 as identifiers until Jinja 1.3
Armin Ronachere98c5f52007-04-21 09:39:06 +0200181
Armin Ronacher2f43ba42007-06-02 14:11:35 +0200182- it's now possible to stream templates.
Armin Ronacherfb5bebc2007-04-27 18:24:19 +0200183
Armin Ronacher4f417112007-04-28 23:23:44 +0200184- fixed a corner case when defining a block inside of a condition
185
Armin Ronacherce513f22007-04-29 19:56:52 +0200186- the cached loader mixin is now able to cache multiple templates from
187 different loaders in the same cache folder.
188
189- Translatable strings returned by ``_()`` will leave their string formatting
190 signs untouched. Thanks to Stefan Ebner for reporting.
191
Armin Ronacher49659872007-05-12 23:29:33 +0200192- ``{% block name "data" %}`` is now an alias for
193 ``{% block name %}data{% endblock %}``. Note that the second argument can
194 be an expression. As soon as you specify an expression as second argument
195 the closing tag has to be omitted.
196
Armin Ronacher6dba4d62007-05-21 23:41:36 +0200197- It's now possible to iterate over iterators additionally to sequences.
198 If the iterator is inifite it will crash however, so makes sure you don't
199 pass something like that to a template!
200
Armin Ronacher9bcd4112007-05-29 14:17:24 +0200201- added `rendetemplate` to render included templates in an isolated
202 environment and get the outout back.
203
204- added `simplefilter` decorator.
205
Armin Ronacher63ca7212007-05-30 00:29:39 +0200206- improved ChoiceLoader error reporting (thanks to Bryan McLemore)
207
Armin Ronacherecc051b2007-06-01 18:25:28 +0200208- fixed extended slicing
209
Armin Ronacherdb69d0a2007-06-02 01:35:53 +0200210- reworked loader layer. All the cached loaders now have "private" non cached
211 baseclasses so that you can easily mix your own caching layers in.
212
213- added `MemcachedLoaderMixin` and `MemcachedFileSystemLoader` contributed
214 by Bryan McLemore.
215
Armin Ronachera22a53d2007-03-31 20:44:33 +0200216
217Version 1.0
218-----------
Armin Ronacherecc051b2007-06-01 18:25:28 +0200219(codename: siyutusan, released Mar 23, 2007)
Armin Ronachera22a53d2007-03-31 20:44:33 +0200220
221- Initial release