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.

Copy link
@joshterrell805

joshterrell805 Nov 3, 2014

Excellent, thank you!

});
});

describe('compat mode', function() {

0 comments on commit 632fadc

Please sign in to comment.