diff --git a/mustache.js b/mustache.js index 2f5e2427b..921c324bf 100644 --- a/mustache.js +++ b/mustache.js @@ -644,7 +644,7 @@ if (tagIndex == 0 && indentation) { indentedValue = this.indentPartial(value, indentation, lineHasNonSpace); } - return this.renderTokens(this.parse(indentedValue, tags), context, partials, indentedValue); + return this.renderTokens(this.parse(indentedValue, tags), context, partials, indentedValue, tags); } }; diff --git a/mustache.mjs b/mustache.mjs index d5e19ade5..9fe1b76c1 100644 --- a/mustache.mjs +++ b/mustache.mjs @@ -637,7 +637,7 @@ Writer.prototype.renderPartial = function renderPartial (token, context, partial if (tagIndex == 0 && indentation) { indentedValue = this.indentPartial(value, indentation, lineHasNonSpace); } - return this.renderTokens(this.parse(indentedValue, tags), context, partials, indentedValue); + return this.renderTokens(this.parse(indentedValue, tags), context, partials, indentedValue, tags); } }; diff --git a/test/partial-test.js b/test/partial-test.js index d1f1bb1e5..a1d629f6c 100644 --- a/test/partial-test.js +++ b/test/partial-test.js @@ -157,4 +157,19 @@ describe('Partials spec', function () { var renderResult = Mustache.render(template, data, partials); assert.equal(renderResult, expected); }); + + it('Nested partials should support custom delimiters.', function () { + var tags = ["[[", "]]"]; + var template = '[[> level1 ]]'; + var partials = { + level1: 'partial 1\n[[> level2]]', + level2: 'partial 2\n[[> level3]]', + level3: 'partial 3\n[[> level4]]', + level4: 'partial 4\n[[> level5]]', + level5: 'partial 5', + }; + var expected = 'partial 1\npartial 2\npartial 3\npartial 4\npartial 5'; + var renderResult = Mustache.render(template, {}, partials, tags); + assert.equal(renderResult, expected); + }); });