Skip to content
Permalink
Browse files

Add preventIndent option for partials

This disables the standalone partial indent behavior required by the Mustache spec and allows for users to utilize partials in the same manner as under 1.x.

Fixes #858
  • Loading branch information...
kpdecker committed Nov 2, 2014
1 parent 7c220b9 commit 632fadcea39b6328983c459ff7e8c4010a976837
Showing with 15 additions and 2 deletions.
  1. +6 −1 lib/handlebars/compiler/compiler.js
  2. +1 −1 spec/env/common.js
  3. +8 −0 spec/partials.js
@@ -179,7 +179,12 @@ Compiler.prototype = {
this.opcode('pushContext');
}

this.opcode('invokePartial', partialName.name, partial.indent || '');
var indent = partial.indent || '';
if (this.options.preventIndent && indent) {
this.opcode('appendContent', indent);
indent = '';
}
this.opcode('invokePartial', partialName.name, indent);
this.opcode('append');
},

@@ -18,7 +18,7 @@ global.compileWithPartials = function(string, hashOrArray, partials) {
ary = [];
ary.push(hashOrArray[0]);
ary.push({ helpers: hashOrArray[1], partials: hashOrArray[2] });
options = {compat: hashOrArray[3]};
options = typeof hashOrArray[3] === 'object' ? hashOrArray[3] : {compat: hashOrArray[3]};
if (hashOrArray[4] != null) {
options.data = !!hashOrArray[4];
ary[1].data = hashOrArray[4];
@@ -167,6 +167,14 @@ describe('partials', function() {
shouldCompileToWithPartials(string, [hash, {}, {dude: dude, url: url}], true,
"Dudes:\n Yehuda\n http://yehuda!\n Alan\n http://alan!\n");
});
it("prevent nested indented partials", function() {
var string = "Dudes:\n{{#dudes}}\n {{>dude}}\n{{/dudes}}";
var dude = "{{name}}\n {{> url}}";
var url = "{{url}}!\n";
var hash = {dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
shouldCompileToWithPartials(string, [hash, {}, {dude: dude, url: url}, {preventIndent: true}], true,
"Dudes:\n Yehuda\n http://yehuda!\n Alan\n http://alan!\n");

This comment has been minimized.

@joshterrell805

joshterrell805 Nov 3, 2014

Excellent, thank you!

});
});

describe('compat mode', function() {

0 comments on commit 632fadc

Please sign in to comment.
You can’t perform that action at this time.