Skip to content
This repository was archived by the owner on Dec 10, 2019. It is now read-only.

Commit 0fa4ca9

Browse files
committed
Make lineage hunting work -- improved regex and findPartial() function
1 parent 01df245 commit 0fa4ca9

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

lib/engine_underscore.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ var partialRegistry = {};
2525

2626
// extend underscore with partial-ing methods and other necessary tooling
2727
// HANDLESCORE! UNDERBARS!
28+
2829
function addParentContext(data, currentContext) {
2930
return Object.assign({}, currentContext, data);
3031
}
@@ -58,6 +59,7 @@ _.mixin({
5859
}
5960
});
6061

62+
6163
var engine_underscore = {
6264
engine: _,
6365
engineName: 'underscore',
@@ -68,9 +70,7 @@ var engine_underscore = {
6870
expandPartials: false,
6971

7072
// regexes, stored here so they're only compiled once
71-
findPartialsRE: /<%=[ \t]*_\.renderPartial[ \t]*\((?:"([^"].*?)"|'([^'].*?)')/g, // TODO,
72-
findPartialsWithStyleModifiersRE: /<%= _.renderPartial\((.*?)\).*?%>/g, // TODO
73-
findPartialsWithPatternParametersRE: /<%= _.renderPartial\((.*?)\).*?%>/g, // TODO
73+
findPartialsRE: /<%=\s*_\.renderNamedPartial[ \t]*\(\s*("(?:[^"].*?)"|'(?:[^'].*?)').*?%>/g, // TODO
7474
findListItemsRE: /({{#( )?)(list(I|i)tems.)(one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|twenty)( )?}}/g,
7575

7676
// render it
@@ -101,7 +101,7 @@ var engine_underscore = {
101101
console.log(errorMessage);
102102
renderedHTML = `<h1>Error in underscore template ${pattern.patternName} (${pattern.relPath})</h1><p>${e.toString()}</p>`;
103103
}
104-
104+
105105
return renderedHTML;
106106
},
107107

@@ -131,8 +131,11 @@ var engine_underscore = {
131131
// given a pattern, and a partial string, tease out the "pattern key" and
132132
// return it.
133133
findPartial: function (partialString) {
134-
var partial = partialString.replace(this.findPartialsRE, '$1');
135-
return partial;
134+
var edgeQuotesMatcher = /^["']|["']$/g;
135+
var partialIDWithQuotes = partialString.replace(this.findPartialsRE, '$1');
136+
var partialID = partialIDWithQuotes.replace(edgeQuotesMatcher, '');
137+
138+
return partialID;
136139
}
137140
};
138141

0 commit comments

Comments
 (0)