Releases: erlydtl/erlydtl
OTP-23 and minor changes
- deprecated
maintainers
parameter removed from app.src nowarn_export_all
option added toerlydtl_runtime
- add OTP-23 to CI
- fix
{vsn, git}
that doesn't work for hex.pm. Now we have staticvsn
and .app.src.script only updatesapplications
field, not generates whole new.app.src
Latest OTP compatibility
Sleepy Bulldog
This release has seen mostly minor tweaks and bugfixes from the community.
Thanks to all who use and enjoy erlydtl.
See the milestone 0.12.0 for more details regarding which issues have been addressed in this release.
The summoning
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.
Ps.
This release is functionally equal to that tagged 0.11.0, which was never fully released due to build issues.
Growing up
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).
Internationalizations
-
Fix compile time variables and constants (#61)
-
The
vars
compile time option has been deprecated in favor of
default_vars
. -
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
andplural
are now reserved
keywords (the latter only as the tag name). -
Renamed compile options for
translation_fun
andlocales
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 ;)
Naildown
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
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).
Issue Hunt and Refactorings
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 arender
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
anddefault_libraries
. See the readme. (the previouscustom_tags_modules
andcustom_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
anddebug_root
as described in the readme (#139).
See milestone 0.9.1 for a complete list of closed issues in this release.
Happy templating!
Improvements
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.
News:
- 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.