mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-12-02 14:58:06 +00:00
Changed the signature of WikiStore.renderTiddler
The parameters are more sensible and predictable now
This commit is contained in:
@@ -25,13 +25,9 @@ var parseStory = function(storyText) {
|
||||
// Search the children of a node looking for the required tiddler rendering
|
||||
var searchTiddlerNode = function(node,renderTiddler,renderTemplate) {
|
||||
var renderAs;
|
||||
if(renderTemplate) {
|
||||
renderAs = renderTiddler;
|
||||
renderTiddler = renderTemplate;
|
||||
}
|
||||
while(node !== null) {
|
||||
if(node.getAttribute && node.getAttribute("data-tw-render-tiddler") === renderTiddler) {
|
||||
if(!renderAs || (renderAs && node.getAttribute("data-tw-render-as") == renderAs)) {
|
||||
if(!renderTemplate || (renderTemplate && node.getAttribute("data-tw-render-template") == renderTemplate)) {
|
||||
return node;
|
||||
}
|
||||
}
|
||||
@@ -52,7 +48,7 @@ exports.macro = {
|
||||
output = [];
|
||||
for(var t=0; t<tiddlers.length; t++) {
|
||||
if(params.template) {
|
||||
output.push(store.renderTiddler(type,params.template,tiddlers[t]));
|
||||
output.push(store.renderTiddler(type,tiddlers[t],params.template));
|
||||
} else {
|
||||
output.push(store.renderTiddler(type,tiddlers[t]));
|
||||
}
|
||||
@@ -71,9 +67,7 @@ exports.macro = {
|
||||
if(tiddlerNode === null) {
|
||||
// If not, render the tiddler
|
||||
var tmpNode = document.createElement("div");
|
||||
tmpNode.innerHTML = params.template ?
|
||||
store.renderTiddler(type,params.template,targetTiddlers[t]) :
|
||||
store.renderTiddler(type,targetTiddlers[t]);
|
||||
tmpNode.innerHTML = store.renderTiddler(type,targetTiddlers[t],params.template);
|
||||
tiddlerNode = tmpNode.firstChild;
|
||||
node.insertBefore(tiddlerNode,currNode);
|
||||
} else {
|
||||
|
||||
@@ -54,33 +54,27 @@ exports.macro = {
|
||||
"with": {byName: true, type: "text", optional: true, dependentAll: true}
|
||||
},
|
||||
render: function(type,tiddler,store,params) {
|
||||
var renderTitle = params.template,
|
||||
renderAs = params.target;
|
||||
// Slightly bewildering logic to sort out the optional parameters
|
||||
if(renderAs === undefined) {
|
||||
if(renderTitle === undefined) {
|
||||
return "";
|
||||
} else {
|
||||
renderAs = tiddler.title;
|
||||
}
|
||||
} else {
|
||||
if(renderTitle === undefined) {
|
||||
renderTitle = renderAs;
|
||||
}
|
||||
var renderTitle = params.target,
|
||||
renderTemplate = params.template;
|
||||
if(typeof renderTitle !== "string") {
|
||||
renderTitle = tiddler.title;
|
||||
}
|
||||
if(typeof renderTemplate !== "string") {
|
||||
renderTemplate = renderTitle;
|
||||
}
|
||||
if(params["with"]) {
|
||||
// Parameterised transclusion
|
||||
var targetTiddler = store.getTiddler(renderTitle),
|
||||
var targetTiddler = store.getTiddler(renderTemplate),
|
||||
text = targetTiddler.text;
|
||||
var withTokens = [params["with"]];
|
||||
for(var t=0; t<withTokens.length; t++) {
|
||||
var placeholderRegExp = new RegExp("\\$"+(t+1),"mg");
|
||||
text = text.replace(placeholderRegExp,withTokens[t]);
|
||||
}
|
||||
return store.renderText(targetTiddler.type,text,type,renderAs);
|
||||
return store.renderText(targetTiddler.type,text,type,renderTitle);
|
||||
} else {
|
||||
// There's no parameterisation, so we can just render the target tiddler directly
|
||||
return store.renderTiddler(type,renderTitle,renderAs);
|
||||
return store.renderTiddler(type,renderTitle,renderTemplate);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user