Macrocall widget: ensure we separately cache inline vs block parse trees

Fixes a bug in #5205
browser-messaging-saver
jeremy@jermolene.com 2020-12-07 16:05:34 +00:00
rodzic a878d82c7a
commit bb6d41f3dd
1 zmienionych plików z 5 dodań i 4 usunięć

Wyświetl plik

@ -56,14 +56,15 @@ MacroCallWidget.prototype.execute = function() {
if(this.renderOutput === "text/html") {
// If so we'll return the parsed macro
// Check if we've already cached parsing this macro
var parser;
if(variableInfo.srcVariable && variableInfo.srcVariable.parser) {
parser = variableInfo.srcVariable.parser;
var mode = this.parseTreeNode.isBlock ? "blockParser" : "inlineParser",
parser;
if(variableInfo.srcVariable && variableInfo.srcVariable[mode]) {
parser = variableInfo.srcVariable[mode];
} else {
parser = this.wiki.parseText(this.parseType,text,
{parseAsInline: !this.parseTreeNode.isBlock});
if(variableInfo.isCacheable && variableInfo.srcVariable) {
variableInfo.srcVariable.parser = parser;
variableInfo.srcVariable[mode] = parser;
}
}
var parseTreeNodes = parser ? parser.tree : [];