#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.