Armin Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 1 | Jinja Changelog |
| 2 | =============== |
| 3 | |
Armin Ronacher | c689cf1 | 2007-11-18 11:23:58 +0100 | [diff] [blame] | 4 | Version 1.3 |
| 5 | ----------- |
| 6 | (codename to be selected, release around February 2007) |
| 7 | |
Armin Ronacher | a7804ef | 2007-06-15 18:03:21 +0200 | [diff] [blame] | 8 | Version 1.2 |
| 9 | ----------- |
Armin Ronacher | 825e522 | 2007-11-16 16:16:23 +0100 | [diff] [blame] | 10 | (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 Ronacher | a7804ef | 2007-06-15 18:03:21 +0200 | [diff] [blame] | 18 | |
| 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 Ronacher | e39a5d2 | 2007-06-23 21:11:53 +0200 | [diff] [blame] | 26 | - added `groupby` filter. |
| 27 | |
Armin Ronacher | 69ddc58 | 2007-06-24 12:37:13 +0200 | [diff] [blame] | 28 | - added `sameas` test function. |
| 29 | |
Armin Ronacher | 1cc232c | 2007-09-07 17:52:41 +0200 | [diff] [blame] | 30 | - 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 Ronacher | 015b0c9 | 2007-11-11 00:10:17 +0100 | [diff] [blame] | 87 | - ``foo ~ bar`` is now a simpler alternative to ``foo|string + bar|string`` |
Armin Ronacher | 1cc232c | 2007-09-07 17:52:41 +0200 | [diff] [blame] | 88 | |
| 89 | - `PackageLoader` can now work without pkg_resources too |
| 90 | |
| 91 | - added `getattribute` and `getitem` filter. |
| 92 | |
Armin Ronacher | 5f3f136 | 2007-10-21 22:15:04 +0200 | [diff] [blame] | 93 | - added support for the `pretty` library. |
Armin Ronacher | c6a3652 | 2007-10-21 21:38:35 +0200 | [diff] [blame] | 94 | |
Armin Ronacher | 77e2ab5 | 2007-10-22 23:31:48 +0200 | [diff] [blame] | 95 | - changed the way the `MemcachedLoaderMixin` creates the class so that it's |
| 96 | possible to hook your own client in. |
| 97 | |
Armin Ronacher | a7804ef | 2007-06-15 18:03:21 +0200 | [diff] [blame] | 98 | |
Armin Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 99 | Version 1.1 |
| 100 | ----------- |
Armin Ronacher | ecc051b | 2007-06-01 18:25:28 +0200 | [diff] [blame] | 101 | (codename: sinka, released Jun 1, 2007) |
Armin Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 102 | |
| 103 | - blocks now support ``{{ super() }}`` to render the parent output. |
| 104 | |
| 105 | - debugging system improved, smaller filesize for the cached files. |
Armin Ronacher | 859efe0 | 2007-04-05 22:38:44 +0200 | [diff] [blame] | 106 | Debugging works now well for any module using linecache. |
Armin Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 107 | |
Armin Ronacher | 90a5cb3 | 2007-04-15 00:56:32 +0200 | [diff] [blame] | 108 | - ``{{ debug() }}`` can now be used to get a list of filters and |
| 109 | tags. |
| 110 | |
Armin Ronacher | 2158091 | 2007-04-17 17:13:10 +0200 | [diff] [blame] | 111 | - 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 Ronacher | 33d528a | 2007-05-14 18:21:44 +0200 | [diff] [blame] | 116 | - 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 Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 120 | - added whitespace management system for the template designer. |
| 121 | |
| 122 | - some small bugfixes. |
| 123 | |
Armin Ronacher | ee2c18e | 2007-04-20 22:39:04 +0200 | [diff] [blame] | 124 | - improved security system regarding function calls and variable |
| 125 | assignment in for loops. |
Armin Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 126 | |
Armin Ronacher | 5a8e497 | 2007-04-05 11:21:38 +0200 | [diff] [blame] | 127 | - added `lipsum` function to generate random text. |
Armin Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 128 | |
| 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 Ronacher | 2158091 | 2007-04-17 17:13:10 +0200 | [diff] [blame] | 133 | - it's now possible to use newlines in string literals |
| 134 | |
Armin Ronacher | 40cf47c | 2007-04-04 13:50:09 +0200 | [diff] [blame] | 135 | - developer friendly traceback is now toggleable |
| 136 | |
Armin Ronacher | fb5bebc | 2007-04-27 18:24:19 +0200 | [diff] [blame] | 137 | - the variable failure is now pluggable by replacing the undefined |
| 138 | singleton for an environment instance |
Armin Ronacher | 40cf47c | 2007-04-04 13:50:09 +0200 | [diff] [blame] | 139 | |
Armin Ronacher | 5a8e497 | 2007-04-05 11:21:38 +0200 | [diff] [blame] | 140 | - 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 Ronacher | 2acbac1 | 2007-04-11 21:49:48 +0200 | [diff] [blame] | 146 | - fixed severe memcaching bug. Formerly it wasn't possible to use memcaching |
| 147 | without enabling disk cache. |
| 148 | |
Armin Ronacher | d071f95 | 2007-04-13 22:32:11 +0200 | [diff] [blame] | 149 | - fixed a bug that allowed users to override the special names `_`, `true` etc. |
| 150 | |
Armin Ronacher | eec3138 | 2007-04-14 14:50:45 +0200 | [diff] [blame] | 151 | - added `batch` and `slice` filters for batching or slicing sequences |
| 152 | |
Armin Ronacher | 9bcd411 | 2007-05-29 14:17:24 +0200 | [diff] [blame] | 153 | - added `sum`, `abs`, `round` and `sort` filters. This fixes #238 |
Armin Ronacher | d071f95 | 2007-04-13 22:32:11 +0200 | [diff] [blame] | 154 | |
Armin Ronacher | 450756b | 2007-04-15 15:13:59 +0200 | [diff] [blame] | 155 | - added `striptags` and `xmlattr` filters for easier SGML/XML processing |
Georg Brandl | af31e4d | 2007-04-15 00:47:37 +0200 | [diff] [blame] | 156 | |
Armin Ronacher | 2158091 | 2007-04-17 17:13:10 +0200 | [diff] [blame] | 157 | - 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 Ronacher | ee2c18e | 2007-04-20 22:39:04 +0200 | [diff] [blame] | 168 | - You can now use the environment to just tokenize a template. This can |
| 169 | be useful for syntax highlighting or other purposes. |
| 170 | |
Armin Ronacher | fb5bebc | 2007-04-27 18:24:19 +0200 | [diff] [blame] | 171 | - 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 Ronacher | e98c5f5 | 2007-04-21 09:39:06 +0200 | [diff] [blame] | 178 | |
Armin Ronacher | ccf284b | 2007-05-21 16:44:26 +0200 | [diff] [blame] | 179 | - implemented the `{% call %}` block. `call` and `endcall` can still be used |
| 180 | as identifiers until Jinja 1.3 |
Armin Ronacher | e98c5f5 | 2007-04-21 09:39:06 +0200 | [diff] [blame] | 181 | |
Armin Ronacher | 2f43ba4 | 2007-06-02 14:11:35 +0200 | [diff] [blame] | 182 | - it's now possible to stream templates. |
Armin Ronacher | fb5bebc | 2007-04-27 18:24:19 +0200 | [diff] [blame] | 183 | |
Armin Ronacher | 4f41711 | 2007-04-28 23:23:44 +0200 | [diff] [blame] | 184 | - fixed a corner case when defining a block inside of a condition |
| 185 | |
Armin Ronacher | ce513f2 | 2007-04-29 19:56:52 +0200 | [diff] [blame] | 186 | - 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 Ronacher | 4965987 | 2007-05-12 23:29:33 +0200 | [diff] [blame] | 192 | - ``{% 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 Ronacher | 6dba4d6 | 2007-05-21 23:41:36 +0200 | [diff] [blame] | 197 | - 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 Ronacher | 9bcd411 | 2007-05-29 14:17:24 +0200 | [diff] [blame] | 201 | - added `rendetemplate` to render included templates in an isolated |
| 202 | environment and get the outout back. |
| 203 | |
| 204 | - added `simplefilter` decorator. |
| 205 | |
Armin Ronacher | 63ca721 | 2007-05-30 00:29:39 +0200 | [diff] [blame] | 206 | - improved ChoiceLoader error reporting (thanks to Bryan McLemore) |
| 207 | |
Armin Ronacher | ecc051b | 2007-06-01 18:25:28 +0200 | [diff] [blame] | 208 | - fixed extended slicing |
| 209 | |
Armin Ronacher | db69d0a | 2007-06-02 01:35:53 +0200 | [diff] [blame] | 210 | - 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 Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 216 | |
| 217 | Version 1.0 |
| 218 | ----------- |
Armin Ronacher | ecc051b | 2007-06-01 18:25:28 +0200 | [diff] [blame] | 219 | (codename: siyutusan, released Mar 23, 2007) |
Armin Ronacher | a22a53d | 2007-03-31 20:44:33 +0200 | [diff] [blame] | 220 | |
| 221 | - Initial release |