« Frequently Asked Questions | Changelog


Version 2.2

(codename to be selected, release date yet unknown)

Version 2.1

(codename Yasuzō, released on November 23rd 2008)

  • fixed a bug with nested loops and the special loop variable. Before the change an inner loop overwrote the loop variable from the outer one after iteration.
  • fixed a bug with the i18n extension that caused the explicit pluralization block to look up the wrong variable.
  • fixed a limitation in the lexer that made {{ foo.0.0 }} impossible.
  • index based subscribing of variables with a constant value returns an undefined object now instead of raising an index error. This was a bug caused by eager optimizing.
  • the i18n extension looks up foo.ugettext now followed by foo.gettext if an translations object is installed. This makes dealing with custom translations classes easier.
  • fixed a confusing behavior with conditional extending. loops were partially executed under some conditions even though they were not part of a visible area.
  • added sort filter that works like dictsort but for arbitrary sequences.
  • fixed a bug with empty statements in macros.
  • implemented a bytecode cache system. (Bytecode Cache)
  • the template context is now weakref-able
  • inclusions and imports “with context” forward all variables now, not only the initial context.
  • added a cycle helper called cycler.
  • added a joining helper called joiner.
  • added a compile_expression method to the environment that allows compiling of Jinja expressions into callable Python objects.
  • fixed an escaping bug in urlize

Version 2.0

(codename jinjavitus, released on July 17th 2008)

  • the subscribing of objects (looking up attributes and items) changed from slightly. It’s now possible to give attributes or items a higher priority by either using dot-notation lookup or the bracket syntax. This also changed the AST slightly. Subscript is gone and was replaced with Getitem and Getattr.

    For more information see the implementation details.

  • added support for preprocessing and token stream filtering for extensions. This would allow extensions to allow simplified gettext calls in template data and something similar.

  • added jinja2.environment.TemplateStream.dump().

  • added missing support for implicit string literal concatenation. {{ "foo" "bar" }} is equivalent to {{ "foobar" }}

  • else is optional for conditional expressions. If not given it evaluates to false.

  • improved error reporting for undefined values by providing a position.

  • filesizeformat filter uses decimal prefixes now per default and can be set to binary mode with the second parameter.

  • fixed bug in finalizer

Version 2.0rc1

(no codename, released on June 9th 2008)

  • first release of Jinja2