diff --git a/core/modules/widgets/ubertransclude.js b/core/modules/widgets/ubertransclude.js index 1559ea2c4..73656f0b6 100644 --- a/core/modules/widgets/ubertransclude.js +++ b/core/modules/widgets/ubertransclude.js @@ -88,8 +88,15 @@ UberTranscludeWidget.prototype.execute = function() { }); } var parseTreeNodes = parser ? parser.tree : (this.slotValueParseTrees["missing"] || []); - this.sourceText = parser ? parser.source : null; - this.parserType = parser? parser.type : null; + this.sourceText = parser ? parser.source : undefined; + this.parserType = parser? parser.type : undefined; + // Wrap the transcluded content if required + if(this.slotValueParseTrees["wrapper"]) { + this.slotValueParseTrees["wrapped"] = parseTreeNodes; + parseTreeNodes = this.slotValueParseTrees["wrapper"]; + this.sourceTest = undefined; + this.sourceType = undefined; + } // Set context variables for recursion detection var recursionMarker = this.makeRecursionMarker(); if(this.recursionMarker === "yes") { diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 614c463a5..b2dba2705 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -406,6 +406,32 @@ Widget.prototype.makeChildWidget = function(parseTreeNode,options) { "$name": {name: "$name", type: "string", value: "body"} }, children: parseTreeNode.children + }, + { + type: "value", + tag: "$value", + attributes: { + "$name": {name: "$name", type: "string", value: "wrapper"} + }, + children: [ + { + type: "setvariable", + tag: "$setvariable", + attributes: { + "name": {name: "name", type: "string", value: variableDefinitionName}, + "value": {name: "value", type: "string", value: ""} + }, + children: [ + { + type: "slot", + tag: "$slot", + attributes: { + "$name": {name: "$name", type: "string", value: "wrapped"} + } + } + ] + } + ] } ] }; diff --git a/editions/test/tiddlers/tests/data/ubertransclusion/CustomWidget-TextWidgetOverride.tid b/editions/test/tiddlers/tests/data/ubertransclusion/CustomWidget-TextWidgetOverride.tid index 0db27ece5..18ba964c8 100644 --- a/editions/test/tiddlers/tests/data/ubertransclusion/CustomWidget-TextWidgetOverride.tid +++ b/editions/test/tiddlers/tests/data/ubertransclusion/CustomWidget-TextWidgetOverride.tid @@ -15,12 +15,10 @@ title: TiddlerOne <$set name="<$text>" value="""\whitespace trim <$parameters text='Jaguar'> - <$set name="<$text>" value=""> - <$text text=<>/> - <$slot $name="body"> - Whale - - + <$text text=<>/> + <$slot $name="body"> + Whale + """ > <$text text="Dingo">