Skip to content


Subversion checkout URL

You can clone with
Download ZIP

The summoning

@kaos kaos released this · 0 commits to master since this release

This release has seen a number of improvements for localization as well as a few dtl compatibility fixes.

See the 0.11 milestone for all issues relating to this release.

A big thank you to all who've contributed time and effort into making this release possible.

This release is functionally equal to that tagged 0.11.0, which was never fully released due to build issues.


Growing up

@kaos kaos released this · 67 commits to master since this release

There has not been many new features, but rather minor tweaks and improvements as well as a slew of bugs squashed.

Most notable changes include:

  • Fix issue with generated code for for loops (#167).

  • Fix issue with using keywords as attributes (#177), or as variables (#194).

  • Fix issue when including multiple templates extending a common base template (#176).

  • New w option for toggling compile time warnings. Currently, there is only one, non_block_tag,
    which is triggered on any non-block data in an extends-template.

  • Add missing features to the cycle tag (#195) (still missing
    independtly stepping the cycle value).

  • Support records in regroup tag (#191).

  • Support for maps (#196).



@kaos kaos released this · 117 commits to stable since this release

  • Fix compile time variables and constants (#61)

  • The vars compile time option has been deprecated in favor of

  • Support for translation contexts (#131)

    context is now a reserved keyword.

  • Support for plural forms in blocktrans blocks (#131)

    As a side effect of the this, count and plural are now reserved
    keywords (the latter only as the tag name).

  • Renamed compile options for translation_fun and locales to align
    with the render options counter parts.

  • Support _ prefix on template variables to avoid unused variable
    warnings, Erlang style (#164).

  • Switched to eunit_formatters by @seancribbs for improved eunit reporting.

  • All tests pass on Erlang 17.0! :)

Also, there is now an IRC #erlydtl room on freenode. Join us there ;)



@kaos kaos released this · 147 commits to stable since this release

This release resolves build issue for non-git checkouts as well as a list indexing bug.

  • Fix release process to work for non-git installations (#154).
  • Fix list indexing (#155).
  • New option for 0-based list/tuple access (#156) (see README for details).

I have opted to stay on 1-based indexing as default, as that is the expected behaviour in the Erlang world, which we live in for ErlyDTL. The new indexing options should be useful for any scenario where 0-based indexing is desired.

Also note that the way the stable branch is used has changed slightly, in case you were tracking that (see README for up-to-date information).


Make amends

@kaos kaos released this · 154 commits to master since this release

0.9.1 brought a lot to the table, even so a few unwanted warts; which are being remedied in this release, enjoy!

I have also fixed the dependencies in the rebar.config file so it won't be a moving target (should've done this long ago).

  • Added NEWS file.
  • Fixed broken compile_dir (#146).
  • The backwards incompatible change in 0.9.1 for directory-compiled templates has been reverted. A new render function has been added instead (#148).
  • Fixed broken escape feature (#150).
  • Added translator comments (#152, #127) (@seriyps).


Issue Hunt and Refactorings

@kaos kaos released this · 176 commits to master since this release

This release brings a row of major internal improvements and also a few new and improved features.

Update I'm sorry to say, but the compile_dir function is broken in this version. A fix is committed and will be in the next release, along with a newly written test case for compile_dir to make sure it doesn't slip a third time (see #146).

  • Replaced most of erl_syntax use for merl (#123).
  • Refactored compiler and test suite (#134, #136).
  • Updated result value for directory-compiled (compile_dir) templates to return {ok, Rendered} | {error, Reason} just as for normally compiled templates. Please note that this is a backwards incompatible change (update: this change has been reverted for the upcoming 0.9.2 release, introducing instead a render function for this behaviour).
  • Regroup tag is now Django compatible! (the formerly required endregroup tag has been made optional) (#101).
  • The trans tag now supports the {% trans "text string" as Varname %} construct to catch the translated text rather than output it in place.
  • {{ block.super }} is now supported in child blocks (#18).
  • Template:variables() now only lists referenced render variables (#118).
  • New erlydtl_library behaviour for adding custom filters and tags (#137).
  • New load tag added. Only difference to that of django is that we don't support loading a library from a package, as there are no notion of packages in Erlang (#100).
  • New compile options supporting the load tag: libraries and default_libraries. See the readme. (the previous custom_tags_modules and custom_filters_modules are still supported, although being marked deprecated in favour of the new options).
  • New compile options for aid in debugging erlydtl itself: debug_compiler and debug_root as described in the readme (#139).

See milestone 0.9.1 for a complete list of closed issues in this release.

Happy templating!



@kaos kaos released this · 219 commits to stable since this release

After some fluctuating stability around 0.8.1, this release brings a set of improvements that has been tested not only by the test suite, but also in a couple of projects.


  • API changes. Added _file and _template suffixes to the compile functions to explicitly convey what is to be compiled.
  • Autoescape is now enabled by default. Use the relatively new auto_escape option if you want this disabled by default.
  • blocktrans blocks can now be translated to multiple locales in runtime. (thanks to @seriyps)
  • trans and _(...) tags can now be translated to multiple locales at compile time. (thanks to @seriyps)
  • Don't want to save the compiled .beam file? Use {out_dir, false} compile time option (this was possible before as well, when no out_dir was specified, but that results in a warning).
  • The error reporting has been fixed for certain cases.


Now with a working compile_dir, too.

@kaos kaos released this · 229 commits to master since this release

My sincere apologies, this really should have been in the 0.8.1 release.

This release brings the new error/warning options and return values also to the compile_dir api function.

Backwards incompatible notes:

Please notice that the new error reporting options also introduces subtle incompatible changes in the API (see #126).

It's not hard to adapt, but I want you all to be aware of this when upgrading.

These changes were made already in 0.8.1, but the specs were not, so dialyzer did not pick up on them.



Getting there...

@kaos kaos released this · 237 commits to stable since this release

This release is a clean-up release with a bunch of minor issues squeezed out.

Amongst the highlights are: Improved options for error reporting, new auto_escape compile option for django purists, cleaned out some warnings given by Dialyzer and some major improvements to the generated code for for-loops.

The compile_dir function is not updated to the new way of reporting errors and warnings, and is in a semi-workable state. A fix is committed to master, and will be included in the next release.


Something went wrong with that request. Please try again.