Skip to content

Releases: mozilla/nunjucks

v3.1.0

20 Feb 18:58
a00c0d1
Compare
Choose a tag to compare
  • Support nunjucks.installJinjaCompat() with slim build. Fixes #1019

  • Fix calling render callback twice when a conditional import throws an error. Solves #1029

  • Support objects created with Object.create(null). fixes #468

  • Support ESNext iterators, using Array.from. Merge of #1058

v3.0.1

24 May 12:58
8262f45
Compare
Choose a tag to compare
  • Fix handling methods and attributes of static arrays, objects and primitives. Solves the issue #937
  • Add support for python-style array slices with Jinja compat enabled. Fixes #188; merge of #976.
  • Fix call blocks having access to their parent scope. Fixes #906; merge of #994.
  • Fix a bug that caused capturing block tags (e.g. set/endset, filter/endfilter) to write to the global buffer rather than capturing their contents. Fixes #914 and #972; merge of #990. Thanks Noah Lange.

v3.0.0

05 Nov 10:43
1a4ba95
Compare
Choose a tag to compare
  • Allow including many templates without reaching recursion limits. Merge of
    #787. Thanks Gleb Khudyakov.
  • Allow explicitly setting null (aka none) as the value of a variable;
    don't ignore that value and look on up the frame stack or context. Fixes
    #478. Thanks Jonny Gerig
    Meyer for the report.
  • Execute blocks in a child frame that can't write to its parent. This means
    that vars set inside blocks will not leak outside of the block, base
    templates can no longer see vars set in templates that inherit them, and
    super() can no longer set vars in its calling scope. Fixes the inheritance
    portion of #561, which
    fully closes that issue. Thanks legutierr for the report.
  • Prevent macros from seeing or affecting their calling scope. Merge of
    #667.
  • Fix handling of macro arg with default value which shares a name with another
    macro. Merge of #791.
  • Add support for the spaces parameter in the dump template filter.
    Merge of #868.
    Thanks Jesse Eikema
  • Add verbatim as an alias of raw for compatibility with Twig.
    Merge of #874.
  • Add new nl2br filter. Thanks Marc-Aurèle Darche
  • Add support for python's list.append with Jinja compat enabled. Thanks
    Conor Flannigan.
  • Add variables whitespace control.

v2.5.2

14 Sep 09:14
b045b87
Compare
Choose a tag to compare
  • Call .toString in safe filter.
    Merge of #849.

v2.5.1

13 Sep 07:30
dff6aa0
Compare
Choose a tag to compare
  • Fix undefined and null behavior in escape and safe filter.
    Merge of #843.

v2.5.0

07 Sep 20:39
b96a8f6
Compare
Choose a tag to compare
  • Add elseif as an alias of elif for parity with Twig. Thanks kswedberg.
    Merge of #826.
  • Add nunjucks env to express app settings as nunjucksEnv.
    Merge of #829.
  • Add support for finding an object's "length" in length filter.
    Merge of #813.
  • Ensure that precompiling on Windows still outputs POSIX-style path
    separators. Merge of #761.
  • Add support for strict type check comparisons (=== and !===). Thanks
    oughter. Merge of #746.
  • Allow full expressions (incl. filters) in import and from tags. Thanks legutierr.
    Merge of #710.
  • OS agnostic file paths in precompile. Merge of #825.

v2.4.3

07 Sep 16:41
c0c4659
Compare
Choose a tag to compare
  • Fix potential cast-related XSS vulnerability in autoescape mode, and with escape filter.
    Thanks Matt Austin for the report and Thomas Hunkapiller for the fix.
    #836

v2.4.2

15 Apr 21:22
Compare
Choose a tag to compare
  • Fix use of in operator with strings. Fixes
    #714. Thanks Zubrik for the
    report.
  • Support ES2015 Map and Set in length filter. Merge of
    #705. Thanks ricordisamoa.
  • Remove truncation of long function names in error messages. Thanks Daniel
    Bendavid. Merge of #702.

v2.4.1

17 Mar 18:44
Compare
Choose a tag to compare

Pay careful attention to the escaping fixes in this release; the escape filter now won't double-escape strings that have already been escaped / marked safe. This matches the Jinja2 behavior.

  • Don't double-escape. Thanks legutierr. Merge of
    #701.
  • Prevent filter.escape from escaping SafeString. Thanks atian25. Merge of
    #623.
  • Throw an error if a block is defined multiple times. Refs
    #696.
  • Officially recommend the .njk extension. Thanks David Kebler. Merge of
    #691.
  • Allow block-set to wrap an inheritance block. Unreported; fixed as a side
    effect of the fix for #576.
  • Fix filter tag with non-trivial contents. Thanks Stefan Cruz and Fabien
    Franzen for report and investigation, Jan Oopkaup for failing tests. Fixes
    #576.

v2.4.0

10 Mar 21:20
Compare
Choose a tag to compare

Lots of great bugfixes and small new features in this release! Many thanks to all the contributors.

  • Allow retrieving boolean-false as a global. Thanks Marius Büscher. Merge of
    #694.
  • Don't automatically convert any for-loop that has an include statement into
    an async loop. Reverts
    7d4716f4fd, re-opens
    #372, fixes
    #527. Thanks Tom Delmas for
    the report.
  • Switch from Optimist to Yargs for argument-parsing. Thanks Bogdan
    Chadkin. Merge of #672.
  • Prevent includes from writing to their including scope. Merge of
    #667 (only partially
    backported to 2.x; macro var visibility not backported).
  • Fix handling of dev environment option, to get full tracebacks on errors
    (including nunjucks internals). Thanks Tobias Petry and Chandrasekhar Ambula
    V for the report, Aleksandr Motsjonov for draft patch.
  • Support using in operator to search in both arrays and objects,
    and it will throw an error for other data types.
    Fix #659.
    Thanks Alex Mayfield for report and test, Ouyang Yadong for fix.
    Merge of #661.
  • Add support for {% set %} block assignments as in jinja2. Thanks Daniele
    Rapagnani. Merge of #656
  • Fix {% set %} scoping within macros.
    Fixes #577 and
    the macro portion of #561.
    Thanks Ouyang Yadong. Merge of #653.
  • Add support for named endblock (e.g. {% endblock foo %}). Thanks
    ricordisamoa. Merge of #641.
  • Fix range global with zero as stop-value. Thanks Thomas Hunkapiller. Merge
    of #638.
  • Fix a bug in urlize that collapsed whitespace. Thanks Paulo Bu. Merge of
    #637.
  • Add sum filter. Thanks Pablo Matías Lazo. Merge of
    #629.
  • Don't suppress errors inside {% if %} tags. Thanks Artemy Tregubenko for
    report and test, Ouyang Yadong for fix. Merge of
    #634.
  • Allow whitespace control on comment blocks, too. Thanks Ouyang Yadong. Merge
    of #632.
  • Fix whitespace control around nested tags/variables/comments. Thanks Ouyang
    Yadong. Merge of #631.