All Versions
Latest Version
Avg Release Cycle
86 days
Latest Release
1106 days ago

Changelog History
Page 4

  • v1.2.0 Changes

    February 04, 2015
    • The special non-line-breaking space is considered whitespace now
    • The in operator has a lower precedence now. This is potentially a breaking change, thus the minor version bump. See #336
    • import with context now implemented: #319
    • async rendering doesn't throw compile errors
  • v1.1.0 Changes

    September 30, 2014

    ๐Ÿ‘‰ User visible changes:

    • ๐Ÿ›  Fix a bug in urlize that would remove periods
    • custom tag syntax (like {% and %}) was made Environment-specific internally. Previously they were global even though you set them through the Environment.
    • โœ‚ Remove aggressive optimization that only emitted loop variables when uses. It introduced several bugs and didn't really improve perf.
    • ๐Ÿ‘Œ Support the regular expression syntax like /foo/g.
    • The replace filter can take a regex as the first argument
    • The call tag was implemented
    • for tags can now take an else clause
    • The cycler object now exposes the current item as the current property
    • โšก๏ธ The chokidar library was updated and should fix various issues

    Dev changes:

    • โœ… Test coverage now available via istanbul. Will automatically display after running tests.
  • v1.0.7 Changes

    August 15, 2014

    ๐Ÿš€ Mixed up a few things in the 1.0.6 release, so another small bump. This merges in one thing:

    • The length filter will not throw an error is used on an undefined variable. It will return 0 if the variable is undefined.
  • v1.0.6 Changes

    August 15, 2014
    • โž• Added the addGlobal method to the Environment object
    • import/extends/include now can take an arbitrary expression
    • ๐Ÿ›  fix bugs in set
    • ๐Ÿ‘Œ improve express integration (allows rendering templates without an extension)
  • v1.0.5 Changes

    May 01, 2014
    • โž• Added support for browserify
    • โž• Added option to specify template output path when precompiling templates
    • ๐Ÿ’ป Keep version comment in browser minified files
    • Speed up SafeString implementation
    • ๐Ÿ– Handle null and non-matching cases for word count filter
    • โž• Added support for node-webkit
    • ๐Ÿ›  Other various minor bugfixes
  • v1.0.4 Changes

    April 04, 2014
    • ๐Ÿšš The chokidar dependency moved repos, and though the git URL should have been forwarded some people were having issues. This fixed the repo and version.

    ๐Ÿ›  (v1.0.3 is skipped because it was published with a bad URL, quickly fixed with another version bump)

  • v1.0.2 Changes

    March 25, 2014
    • ๐Ÿ‘‰ Use chokidar for watching file changes. This should fix a lot of problems on OS X machines.
    • Always use / in paths when precompiling templates
    • ๐Ÿ›  Fix bug where async filters hang indefinitely inside if statements
    • Extensions now can override autoescaping with an autoescape property
    • ๐Ÿ›  Other various minor bugfixes
  • v1.0.1 Changes

    December 16, 2013

    (no notes)

    ๐Ÿ‘ We've reached 1.0! Better APIs, asynchronous control, and more (Oct 24, 2013)

    • An asynchronous API is now available, and async filters, extensions, and loaders is supported. The async API is optional and if you don't do anything async (the default), nothing changes for you. You can read more about this here. (fixes #41)
    • ๐Ÿ”ง Much simpler higher-level API for initiating/configuring nunjucks is available. Read more here.
    • ๐Ÿ”Œ An official grunt plugin is available for precompiling templates: grunt-nunjucks
    • ๐Ÿ’ป The browser files have been renamed. nunjucks.js is now the full library with compiler, and nunjucks-slim.js is the small version that only works with precompiled templates
    • urlencode filter has been added
    • ๐Ÿ”จ The express integration has been refactored and isn't a kludge anymore. Should avoid some bugs and be more future-proof;
    • The order in which variables are lookup up in the context and frame lookup has been reversed. It will now look in the frame first, and then the context. This means that if a for loop introduces a new var, like {% for name in names %}, and if you have name in the context as well, it will properly reference name from the for loop inside the loop. (fixes #122 and #119)
  • v0.1.10 Changes

    August 09, 2013

    (no notes)

  • v0.1.9 Changes

    May 30, 2013

    (no notes)