diff options
author | kpdecker <kpdecker@gmail.com> | 2015-08-14 15:18:52 -0500 |
---|---|---|
committer | kpdecker <kpdecker@gmail.com> | 2015-08-22 10:59:08 -0700 |
commit | 91ffd32cad32b2d1cd310ff94f65b28c428206ac (patch) | |
tree | 13cb346dfb0e6dc72dc6dddbcdf3ed8e61ebaeff /lib/handlebars/compiler/helpers.js | |
parent | 2571dd8e8e43fd320672763564b16a5b3ae33966 (diff) | |
download | handlebars.js-91ffd32cad32b2d1cd310ff94f65b28c428206ac.zip handlebars.js-91ffd32cad32b2d1cd310ff94f65b28c428206ac.tar.gz handlebars.js-91ffd32cad32b2d1cd310ff94f65b28c428206ac.tar.bz2 |
Implement partial blocks
This allows for failover for missing partials as well as limited templating ability through the `{{> @partial-block }}` partial special case.
Partial fix for #1018
Diffstat (limited to 'lib/handlebars/compiler/helpers.js')
-rw-r--r-- | lib/handlebars/compiler/helpers.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/handlebars/compiler/helpers.js b/lib/handlebars/compiler/helpers.js index bf72034..e04f4dd 100644 --- a/lib/handlebars/compiler/helpers.js +++ b/lib/handlebars/compiler/helpers.js @@ -185,3 +185,22 @@ export function prepareProgram(statements, loc) { } +export function preparePartialBlock(openPartialBlock, program, close, locInfo) { + if (openPartialBlock.name.original !== close.path.original) { + let errorNode = {loc: openPartialBlock.name.loc}; + + throw new Exception(openPartialBlock.name.original + " doesn't match " + close.path.original, errorNode); + } + + return { + type: 'PartialBlockStatement', + path: openPartialBlock.name, + params: openPartialBlock.params, + hash: openPartialBlock.hash, + program, + openStrip: openPartialBlock.strip, + closeStrip: close && close.strip, + loc: this.locInfo(locInfo) + }; +} + |