Changelog History
-
v2.0.0 Changes
February 16, 2017👍 Allow multiline parameters in defines (#221, @RionStick)
-
v2.0.0-beta.1 Changes
July 26, 2020🔄 Changes/additions:
- ES6 code generated
- types: https://github.com/olado/doT/blob/v2/doT.d.ts
varname
option renamed toargName
👌 support templates without explicit context "it" - the list of properties should be passed as array to
argName
option, template function will expect an object and will destructure it into multiple arguments - so it is nearly zero-cost:const tmpl = doT.template("{{=foo}}{{=bar}}", {argName: ["foo", "bar"]})tmpl({foo: 1, bar: 2}) // "12"
🚀 partial options can be passed, global options object will not be available in the next release.
custom encoders:
- syntax
{{<encoder name>! it.foo}}
, encoders passed toencoders
option object ( is any valid JS identifier) as functions (or as code strings inselfContained: true
mode). - HTML encoding with syntax
{{! it.foo }}
requires passing{encoders: {"": require("dot/encodeHTML")}}
options
- syntax
type safe interpolation (maybe
%
should be dropped...):{{%n= it.foo}}
-it.foo
must be number (or exception will be thrown){{%s= it.foo}}
- string{{%b= it.foo}}
- boolean
👌 support iterables for
{{~iter:x}}
and{{~iter:x:i}}
syntaxes (now uses for-of loop).syntax is no longer in options
🔧 configurable delimiters:
- e.g.
{delimiters: {start: "<%", end: "%>"}}
via options to change for one template - or
setDelimiters({start: "<%", end: "%>"})
to change globally
- e.g.
reduces internal variables names usage, two configurable name prefixes are used, can be changed via options (
internalPrefix: "_val"
,encodersPrefix: "_enc"
).optional iterator index variable is now local (with
let
)
✂ Removed:
- doT.process (possibly will be added if there is an interest)
- 💻 browser bundle (possibly will be added if there is a substantial interest)
- dot-packer - can be added as a separate module to dot-template org
- legacy doU engine
- 0️⃣
append: false
option (onlyappend: true
now, that is faster and that was default anyway) - 👀 no HTML interpolation by default (see custom encoders above)
-
v2.0.0-beta.0 Changes
February 16, 2017👍 Allow multiline parameters in defines (#221, @RionStick)
-
v1.1.3 Changes
December 07, 2019✅ Tests for doT.process
Patch code injection via prototype pollution (#291) -
v1.1.2
May 22, 2017 -
v1.1.1
November 06, 2016 -
v1.1.0 Changes
February 16, 2017➕ Added tests
-
v1.0.3
November 01, 2016 -
v1.0.1
September 18, 2013 -
v0.2.0
December 24, 2012