mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-10-01 16:30:46 +00:00
Ubertransclusion positional parameters should be based on name, not position
This commit is contained in:
parent
9713da5071
commit
89b7a3bd28
@ -51,7 +51,7 @@ ParametersWidget.prototype.execute = function() {
|
|||||||
if(transclusionWidget) {
|
if(transclusionWidget) {
|
||||||
$tw.utils.each($tw.utils.getOrderedAttributesFromParseTreeNode(self.parseTreeNode),function(attr,index) {
|
$tw.utils.each($tw.utils.getOrderedAttributesFromParseTreeNode(self.parseTreeNode),function(attr,index) {
|
||||||
var name = attr.name;
|
var name = attr.name;
|
||||||
self.setVariable(name,transclusionWidget.getTransclusionParameter(name,transclusionWidget.getTransclusionParameterByPosition(index,self.getAttribute(name))));
|
self.setVariable(name,transclusionWidget.getTransclusionParameter(name,index,self.getAttribute(name)));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Construct the child widgets
|
// Construct the child widgets
|
||||||
|
@ -49,10 +49,7 @@ UberTranscludeWidget.prototype.execute = function() {
|
|||||||
this.recursionMarker = this.getAttribute("$recursionMarker","yes");
|
this.recursionMarker = this.getAttribute("$recursionMarker","yes");
|
||||||
// Collect the string parameters
|
// Collect the string parameters
|
||||||
this.stringParametersByName = Object.create(null);
|
this.stringParametersByName = Object.create(null);
|
||||||
this.stringParametersByPosition = [];
|
$tw.utils.each(this.attributes,function(value,name) {
|
||||||
var stringParameterIndex = 0;
|
|
||||||
$tw.utils.each($tw.utils.getOrderedAttributesFromParseTreeNode(this.parseTreeNode),function(attr) {
|
|
||||||
var name = attr.name, value = self.getAttribute(name);
|
|
||||||
if(name.charAt(0) === "$") {
|
if(name.charAt(0) === "$") {
|
||||||
if(name.charAt(1) === "$") {
|
if(name.charAt(1) === "$") {
|
||||||
// Attributes starting $$ represent parameters starting with a single $
|
// Attributes starting $$ represent parameters starting with a single $
|
||||||
@ -63,7 +60,6 @@ UberTranscludeWidget.prototype.execute = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.stringParametersByName[name] = value;
|
self.stringParametersByName[name] = value;
|
||||||
self.stringParametersByPosition[stringParameterIndex++] = value;
|
|
||||||
});
|
});
|
||||||
// Collect the value widgets in our child parse tree
|
// Collect the value widgets in our child parse tree
|
||||||
this.slotValueParseTrees = Object.create(null);
|
this.slotValueParseTrees = Object.create(null);
|
||||||
@ -137,12 +133,16 @@ UberTranscludeWidget.prototype.execute = function() {
|
|||||||
/*
|
/*
|
||||||
Fetch the value of a parameter
|
Fetch the value of a parameter
|
||||||
*/
|
*/
|
||||||
UberTranscludeWidget.prototype.getTransclusionParameter = function(name,defaultValue) {
|
UberTranscludeWidget.prototype.getTransclusionParameter = function(name,index,defaultValue) {
|
||||||
if(name in this.stringParametersByName) {
|
if(name in this.stringParametersByName) {
|
||||||
return this.stringParametersByName[name];
|
return this.stringParametersByName[name];
|
||||||
} else {
|
} else {
|
||||||
return defaultValue;
|
var name = "" + index;
|
||||||
|
if(name in this.stringParametersByName) {
|
||||||
|
return this.stringParametersByName[name];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return defaultValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user