6.2.0 - 2024-10-26
- [Added]
@index
variable for object iteration [#682] - [Changed] improve number comparison between different types [#679]
6.1.0 - 2024-09-06
- [Added] More data type support in comparison helpers [#673]
6.0.0 - 2024-07-20
- [Fixed] Various indent issue with partials, empty lines and helpers [#646] [#654] [#658]
- [Fixed] Bug when accessing nested path [#651]
- [Added] New public access to
PathSeg
[#656] - [Added] New API to set single block params in
BlockContext
[#655] - [Added]
From<RenderError>
forRenderErrorReason
[#644] - [Changed] Add
non_exhaustive
attribute to all public memebers [#647] - [Changed]
RenderContext
API and improved performance for partial rendering [#661] [#662] - [Changed] Improved error messsage for template parsing [#638]
5.1.2 - 2024-03-24
- [Changed] Improved error message and syntax rule naming [#638]
- [Changed] Updated
heck
to 0.5 [#635]
5.1.1 - 2024-01-18 Yanked
- [Changed] Turned off pub access of
chain
inHelperTemplate
5.1.0 - 2024-01-17
- [Added] Chained
else if
block support [#629]
5.0.0 - 2023-12-31
- [Added] public mutable access to local variables in
BlockContext
[#533] - [Changed] Simplified lifetime specifiers for
Helper
,ScopedJson
and some other related types and functions. [#532] - [Changed] Updated
TemplateError
to reduce its size. Direct field access is removed in favor of access methods - [Changed] Introducing
RenderErrorReason
for typed render error - [Changed] Changed
register_template_directory
api for more customizations #[610] - [Changed] Updated rust-embed to 8.0
4.3.4 - 2022-09-11
- [Added] New
write_fmt
function forOutput
[#522] - [Added]
reason()
method forTemplateError
to access underlying reason, this replaces original direct.reason
access. - [Changed] Direct access to
TemplateError
'sreason
field is depreacted will be removed in future.
4.3.3 - 2022-07-20
- [Fixed] Disable partial expression indentation with
{{~> partial}}
to bring behavior closer in line with original javascript version. [#518] - [Fixed] Support for using partial context together with partial parameters [#520]
4.3.2 - 2022-07-14
- [Added] Render functions that reuse
Context
for customstd::io::Write
:render_with_context_to_write
andrender_template_with_context_to_write
4.3.1 - 2022-06-09
- [Added] Added support for
{{~{variable}~}}
syntax [#509]
4.3.0 - 2022-05-18
- [Changed] update MSRV to 1.57 as rhai requires
- [Fixed] Reimplemented indent support for partial expression
{{> partial}}
, which is introduced in 4.2.0. The new implementation is aligned with original javascript version, that every text line generated from partial are indented as{{> partial}}
does.prevent_indent
will turn-off this feature. [#505] - [Changed] changed error support library from quick_error to thiserror
4.2.2 - 2022-03-09
- [Fixed] Block param scope leaked into partials [#496]
- [Changed] Use Rust 2021 edition and update MSRV to 1.56
4.2.1 - 2022-01-17
- [Fixed] Nested partial
@partial-block
referencing issue [#488] - [Fixed] Docs generation on docs.rs for
rust-embed
feature
4.2.0 - 2022-01-05
- [Added] RustEmbed support for loading templates from [#484]
- [Fixed] Parser support for variables begins with digit [#479]
- [Changed] Keep indent whitespaces for partial expression
{{> partial}}
as default in handlebarsjs. A new optionprevent_indent
is provided onHandlebars
to turn off this behaviour. [#486] - [Changed] Update MSRV to 1.51 due to dependency changes
4.1.6 - 2021-12-03
- [Added] Create
Context
from ownedserde_json::Value
[#477]
4.1.5 - 2021-11-17
- [Fixed] Single-quote string literal is supported, again [#475]
4.1.4 - 2021-11-06
- [Fixed] Corrected empty line stripping strategy [#473]
4.1.3 - 2021-09-10
- [Added]
@last
variable foreach
block with object [#466] - [Fixed] Missing whitespaces behind expression [#468]
4.1.2 - 2021-08-11
- [Added] Support for generic types in
handlebars_helper!
. - [Added] Getter and setter for rhai
Engine
from registry. - [Fixed] Improve doc for
dev_mode
that it has to be enabled before adding templates.
4.1.1 - 2021-07-31
- [Changed] Update rhai to 1.0 [#455]
- [Fixed] Empty line stripping for partial include statement, and other corner cases [#458]
4.1.0 - 2021-07-05
- [Added] export
StringOutput
as requested in #442 - [Changed] strict mode now applies to our helper macro
handlebars_helper!
and built-in helpers based on it. - [Fixed] Line stripping feature for standalone statment introduced in #404 is now aligned with handlebarsjs. #448
4.0.1 - 2021-06-15
- [Fixed] Each block render error with empty array or object [#445]
4.0.0 - 2021-05-25
- [Added]
dev_mode
for registry: templates and scripts loaded from file are always reloaded when dev mode enabled [#395] - [Added] Registry is now
Clone
[#395] - [Added] New built-in helper
len
[#421] - [Changed] Updated
rhai
to 0.19 and then 0.20 [#391] - [Changed]
#each
helper now renders else block for non-iterable data [#380] - [Changed]
TemplateError
andScriptError
is now a cause ofRenderError
[#395] - [Changed] Empty lines around block helpers are now stripped [#404]
- [Changed] Breaking
RenderContext::get_partial
now returnsOption<&Template>
- [Changed] Breaking Capitalize names like
HtmlExpression
andIoError
based on clippy recommendations [#424] - [Changed] Breaking Improved return type of
call_inner
fromHelperDef
to avoid misleading [#437] - [Fixed] reference starts with
null
,true
andfalse
were parsed incorrectly [#382] - [Fixed] dir source path separator bug on windows [#389] [#405]
- [Fixed] stack overflow with nested
@partial-block
[#401] - [Fixed] value access issue when upper block has a base value [#419]
- [Fixed] escape rules for Json string literal [#423]
- [Fixed] Breaking zero-arity subexpressions support [#433]
Zero-arity subexpression no longer resolved as variable. The behaviour is now aligned with handlebarsjs.
For instance,
{{(parent)}}
can no longer accessparent
field of the context object, use{{lookup this "parent"}}
instead. This change applies to partial inclusion, too. - [Removed] Breaking option to disable source map is removed [#395]
- [Removed] Breaking
TemplateFileError
andTemplateRenderError
are removed and merged intoTemplateError
andRenderError
[#395]
3.5.5 - 2021-05-03
- [Fixed] Panic on reporting invalid tag name [#427]
3.5.4 - 2021-03-27
- [Fixed] Json string literal with escape char [#422]
3.5.3 - 2021-02-20
- [Fixed] value access issue when upper block has a base value [#419]
3.5.2 - 2020-12-29
- [Fixed] allow
/
as trailing separator on Windows, backported from master [#405]
3.5.1 - 2020-10-25
- [Fixed] dir source path separator bug on windows [#389]
3.5.0 - 2020-09-23
- [Changed]
#each
helper now renders else block for non-iterable data [#380] - [Fixed] reference starts with
null
,true
andfalse
were parsed incorrectly [#382]
3.4.0 - 2020-08-14
- [Added] Debug log that can be turned on by using envlog or other implementation, to trace data resolution during rendering [#369]
- [Fixed] Derived value as block context base value [#343, #353]
- [Fixed] Partial name aligned with handlebars.js, added support for
.
, escape[]
and string''
name - [Changed] HTML escape aligned with handlebars.js, added
=
,\
and ``` [#366] - [Changed] Update rhai to 0.18 [#370]
- [Fixed] Result of simple helper is now escaped [#373]
3.3.0 - 2020-07-18
- [Added] Added two new APIs to reuse
Context
for rendering [#352] - [Changed] Update rhai to 0.17 [#354]
- [Fixed] Fixed mustache.js html expression support, which is "&" instead of "$"
3.2.1 - 2020-06-28
- [Fixed] block context leak introduced in 3.2.0, #346 [#349]
3.2.0 - 2020-06-28
- [Added] API to register an pre-processed template [#331]
- [Added] Helper macro now has support for named argument and helepr hash [#338]
- [Added] Added support for
$
expression that is part of mustache.js [#339] - [Changed] Update rhai to 0.15 [#330]
- [Fixed] else block for
each
[#344]
3.1.0 - 2020-06-01
- [Added] All new rhai script helper
- [Added] multiple parameter support for log helper
- [Fixed] helper lookup priority
- [Changed]
Send
andSync
are not required for RenderContext local helper [#319] - [Fixed] partial block when using path as name [#321]
3.0.1 - 2020-01-25
- [Fixed] Slash in partial path causing syntax error #313
3.0.0 - 2020-01-24
- [Changed] Added lifetime specifier to
Handlebars
structure allowing helper definition to have non-static borrowed data #282 - [Changed] Removed hashbrown dependency #279
- [Changed] Features has been reorganized.
dir_source
were turned off by default. #289 - [Changed] Refactored
RenderContext
API to improve performance up to 5x over2.0
- [Added] Add new
BlockContext
API for helper developer to store block scope state #307 - [Fixed]
RenderError
should beSend
andSync
#304
2.0.4 - 2020-01-06
- [Fixed]
RenderError
should beSend
andSync
#304
2.0.3 - 2020-01-04
- [Fixed] deprecated warnings on rust 1.42 nightly, due to changes in
Error
trait
2.0.2 - 2019-09-06
- [Changed] Extended
eq
andne
helper for all json types #287 - [Changed] Removed
regex
andlazy_static
crate to optimize dependency tree
2.0.1 - 2019-07-12
- [Changed] Fixed issue with block context #275
- [Changed] Added support for array index in block context #276
- [Changed] Deprecated RenderContext
concat_path
- [Changed] Update hashbrown to 0.5.0
2.0.0 - 2019-07-02
- [Changed] Fixed more dyn trait warnings
- [Changed] #80 Fixed support for zero-param helper
- [Changed] Changed minimum Rust version to 1.32 as required by getrandom crate
2.0.0-beta.3 - 2019-06-24
- [Changed] Block parameter revamp, fixed cases for #260 and #264
- [Changed] #265 Fixed block parameter order in
each
helper - [Changed] #266 Accept any JSON value in boolean helpers
- [Changed]
RenderContext
API update,evaluate_absolute
removed, use@root
instead
2.0.0-beta.1 - 2019-03-16
- [Changed] Everything changed in yanked 1.2.0
- [Changed] With Pest updated to 2.1, our minimal rust version is set to 1.31
- [Changed] Using hashbrown
HashMap
internally and externally, performance improvement up to 10% - [Changed] strict mode also apply to return value of helper expression
1.2.0 - 2018-12-15
This release is yanked.
- [Changed] Using rust 2018 edition
- [Changed] Improve strict mode and only raise error when accessing missing fields in expression
- [Changed] Improved
get_helper
andget_decorator
return type
1.1.0 - 2018-10-24
- [Added] New option
includeZero
forif
helper - [Added] New option
level
forlog
helper - [Changed] Updated Pest to 2.0, moving minimal Rust version to 1.30
1.0.5 - 2018-10-04
- [Changed] Added feature
no_logging
for using handlebars in a logging provider.
1.0.4 - 2018-09-21
- [Changed] Fixed build on wasm
- [Changed] Added support for single-quote Json string literal
1.0.3 - 2018-08-29
- [Changed] Fixed build on Rust 1.23.0
1.0.2 - 2018-08-27
- [Changed] Update minimal dependency versions
1.0.1 - 2018-08-16
- [Changed] Added hidden/temp file filter to directory register
1.0.0 - 2018-07-18
- [Changed] Helper API finalized and new output API
- [Changed] New internal value API, reduced clone cost
- [Added] Helper macro
- [Added] New built-in helpers:
gt
,lt
and some more - [Added] Register template folder
0.32.4 - 2018-05-23
- [Changed] Keep compatibility with pre-1.26 rust by removing
impl Trait
on parameters
0.32.3 - 2018-05-21
- [Changed] Fixed escape syntax
0.32.2 - 2018-05-09
- [Changed] Fixed issue with processing handlebars comment
0.32.1 - 2018-05-02
- [Changed] Regex 1.0
0.32.0 - 2018-02-16
- [Added] Strict mode that raises
RenderError
on accessing non-existed field or array index.
0.31.0 - 2018-02-09
- [Changed] Fixed handlebars comment support, added html comment output
- [Changed] Removed some wasted string clones
0.30.1 - 2018-01-31
- [Changed] Added
Debug
for public types
0.30.0 - 2018-01-21
- [Changed] Use pest 1.0
0.30.0-beta.5 - 2018-01-19
- [Changed] Improve
TemplateError
display. Now includes a segment of template string. - [Changed] Updated
lazy_static
to 1.0 - [Changed] Renamed some render functions names.
0.30.0-beta.4 - 2017-11-20
- [Changed] Added
Sync
to the nested error ofRenderError
0.30.0-beta.3 - 2017-11-16
- [Changed] Fixed issue
template_render
methods doesn't respectsource_map
setting
0.30.0-beta.2 - 2017-10-07
- [Changed] Fixed parsing keywords like
as
0.30.0-beta.1 - 2017-10-03
- [Changed] Upgrade pest to 1.0
- [Changed] Fixed template parsing issue when parameter starts with "as"
- [Changed] Added new HelperDef function to return JSON value
- [Changed] Added support for @root
0.29.1 - 2017-09-01
- [Changed] Remove
debug!
logging from render to avoid conflict when using handlebars as logging backend
0.29.0 - 2017-08-23
- [Changed] Align JSON path with original JavaScript implementation
0.28.3 - 2017-08-02
- [Changed] fixed support for escape, again
0.28.2 - 2017-08-01
- [Changed] Fixed support for escape
\\{{
. #170
0.28.1 - 2017-07-16
- [Changed] Mark
RenderError
withSend
trait
0.28.0 - 2017-07-15
- [Changed] Fixed performance issue discussed in #166
- [Added] Added error cause
RenderError
0.27.0 - 2017-06-03
- [Changed]
partial_legacy
is dropped - [Changed]
context.navigate
now returns aResult<&Json,RenderError>
. Error is raised when given path cannot be not parsed. - [Changed] removed
context::extend
because it's like to ruin your context outside the helper. - [Changed]
RenderContext
now ownsContext
, you can host a new Context for particular block helper. - [Changed] Added some convenience functions to
RenderContext
. However,RenderContext
may still change in future release.
0.26.1 - 2017-04-23
- [Changed] Updated to Serde 1.0
- [Changed] Dropped rustc_serialize, serde is now the default type system
0.25.3 - 2017-04-19
0.25.2 - 2017-03-22
- [Changed] Fixed bug when including two partials with same name #143
0.25.1 - 2017-02-21
- [Added] Added support for braces escaping
\{{var}}
.
0.25.0 - 2017-01-28
- [Changed] Updated serde family to 0.9.x
- [Added] Added
to_json
function to convert data toJson
orValue
0.24.2 - 2017-01-28
- [Added] Added support for
{{> @partial-block}}
0.24.1 - 2016-12-30
- [Changed] Updated
regex
crate to 0.2, fixed WebAssembly support - [Changed] Fixed error reporting in partial.
0.24.0 - 2016-12-30
- [Added] Decorator support: change context data and helpers during rendering
- [Changed] (Breaking) Helper trait changed,
Context
parameter no longer available, userender_context.context()
instead. - [Changed] (Breaking) Refactored Handlebars APIs,
Template
andContext
are no longer exposed in public API. - [Changed] Docs updated.
0.23.0 - 2016-12-12
- [Changed]
partial4
is now default. Usepartial_legacy
for previous version of template inheritance. - [Changed] Corrected subexpression behavior. Subexpression result is treated as string.
- [Changed] Improved performance for render: better escape function and string writer buffer.
0.22.0 - 2016-10-29
- [Changed] Improved error reporting. Fixed display for several error types.
- [Changed] Dropped regex and lazystatic as dependency.
- [Changed] Examples refined.
0.21.1 - 2016-10-09
- [Changed] Fixed
#106, when
property name contains
this
, it doesn't work
0.21.0 - 2016-09-27
- [Added] Block params support #101
- [Added] New partial syntax #103
- [Changed] Rewrite path parser, better support for
../
#105
0.20.5 - 2016-08-27
- [Changed] Fixed issue for using [] in expression #100
0.20.4 - 2016-08-27
0.20.3 - 2016-08-14
- [Changed] Fixed
with
used insideeach
block #97
0.20.2 - 2016-08-07
- [Changed] Allowed dash character in reference #94
- [Changed] Fixed path error in nested each helpers #95
0.20.0 - 2016-07-31
- [Changed] Updated serde to 0.8
0.19.1 - 2016-07-26
- [Changed] Fixed
../
path visitor bug in nested#each
#93 - [Changed] Rollback 0.19.0 change for
#if
- [Changed] changed
&Path
toAsRef<Path>
- [Changed] Fixed "../" path visitor in
#each
and#if
. - [Added]
set_local_path_root
andget_local_path_root
forRenderContext
.
- [Changed] Disable
rustc_type
whenserde_type
enabled.
- [Changed] Allow
-
char in reference.
- [Changed] Rewrite template parser with pest.
- [Added] JSON literals as helper param or hash, and subexpression return value.
- [Added] RenderError now reports template name, line and column
number. Enabled by default. This behavior can be disabled via
registry.source_map_enable(false)
on production. - [Changed] Helper API break change:
param(..)
andhash(...)
now returns aContextJson
as value which contains path as well as parsed Json value. No need to callctx.navigate(...)
any more. - [Removed]
to_string
ofTemplate
andTemplateElement
which is unnecessary and contains issue
- [Removed]
num
crate dependency which is unnecessary
- [Added] new APIs to render template string/files without registering to Registry
- [Added] new handlebars raw helper syntax
- [Changed] update serde libraries to 0.7.x
- [Added] new API:
register_template_file