#835 - Templates overwritten if file is loaded twice
Expose escapeExpression on the root object - 980c38c
Compatibility notes:
- The default build now outputs a generic UMD wrapper. This should be transparent change but may cause issues in some environments.
- Runtime compatibility breaks in both directions. Ensure that both compiler and client are upgraded to 2.0.0-beta.1 or higher at the same time.
- programWithDepth
has been removed an instead an array of context values is passed to fields needing depth lookups.
- false
values are now printed to output rather than silently dropped
- Lines containing only block statements and whitespace are now removed. This matches the Mustache spec but may cause issues with code that expects whitespace to exist but would not otherwise.
- Partials that are standalone will now indent their rendered content
- AST.ProgramNode
's signature has changed.
- Numerious methods/features removed from psuedo-API classes
- JavaScriptCompiler.register
- JavaScriptCompiler.replaceStack
no longer supports non-inline replace
- Compiler.disassemble
- DECLARE
opcode
- strip
opcode
- lookup
opcode
- Content nodes may have their string
values mutated over time. original
field provides the unmodified value.
- Removed unused Handlebars.registerHelper
inverse
parameter
- each
helper requires iterator parameter
handlebars --version
(@apfelbox)Compatibility notes: - A JSON polyfill is required to run the compiler under IE8 and below. It's recommended that the precompiler be used in lieu of running the compiler on these legacy environments.
blockHelperMissing
(@kpdecker)#658 - Depthed helpers do not work after an upgrade from 1.0.0 (@xibxor)
#706 - README: Use with helper instead of relying on blockHelperMissing (@scottgonzalez)
#700 - Remove redundant conditions (@blakeembrey)
Compatibility notes:
- helperMissing
helper no longer has the indexed name argument. Helper name is now available via options.name
.
- Precompiler output has changed, which breaks compatibility with prior versions of the runtime and precompiled output.
- JavaScriptCompiler.compilerInfo
now returns generic objects rather than javascript source.
- AST changes
- INTEGER -> NUMBER
- Additional PartialNode hash parameter
- New RawBlockNode type
- Data frames now have a _parent
field. This is internal but is enumerable for performance/compatability reasons.
Compatibility notes:
- @index
and @first
are now supported for each
iteration on objects
- Handlebars.VM.checkRevision
and Handlebars.JavaScriptCompiler.prototype.compilerInfo
now available to modify the version checking behavior.
- Browserify users may link to the runtime library via require('handlebars/runtime')
#644 - Using precompiled templates (AMD mode) with handlebars.runtime 1.1.1 (@fddima)
Add simple binary utility tests - 96a45a4
#642 - handlebars 1.1.0 are broken with nodejs
Fix release notes link - 17ba258
\\{{foo}}
escaping only works in some situations (@dmarcotte)#543 - publish passing master builds to s3 (@fivetanley)
#608 - Add includeZero
flag to if
conditional
Handlebars.compile
fails on empty string although a single blank works fineCompatibility notes:
- The project now includes separate artifacts for AMD, CommonJS, and global objects.
- AMD: Users may load the bundled handlebars.amd.js
or handlebars.runtime.amd.js
files or load individual modules directly. AMD users should also note that the handlebars object is exposed via the default
field on the imported object. This gist provides some discussion of possible compatibility shims.
- CommonJS/Node: Node loading occurs as normal via require
- Globals: The handlebars.js
and handlebars.runtime.js
files should behave in the same manner as the v1.0.12 / 1.0.0 release.
- Build artifacts have been removed from the repository. npm, components/handlebars.js, cdnjs, or the builds page should now be used as the source of built artifacts.
- Context-stored helpers are now always passed the options
hash. Previously no-argument helpers did not have this argument.
?
in idsCompatibility notes:
- The parser is now stricter on {{{
, requiring that the end token be }}}
. Templates that do not
follow this convention should add the additional brace value.
- Code that relies on global the namespace being muted when custom helpers or partials are passed will need to explicitly pass an undefined
value for any helpers that should not be available.
- The compiler version has changed. Precompiled templates with 1.0.12 or higher must use the 1.0.0 or higher runtime.
./foo
syntax (@jpfiset):
in unescaped identifers (@jpfiset)\\
escapeExpression
""
with
(@thejohnfreeman)toString
handling under IE and browserify (@tommydudebreaux)Handlebars.create
API in node module for sandboxed instances (@tommydudebreaux)this
or ..
in illogical place (@leshill)parse
/compile
/precompile
(@machty)When upgrading from the Handlebars 0.9 series, be aware that the signature for passing custom helpers or partials to templates has changed.
Instead of:
template(context, helpers, partials, [data])
Use:
template(context, {helpers: helpers, partials: partials, data: data})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.