Ticket #1187: Macros.patch

File Macros.patch, 1.6 KB (added by jdlrobson, 3 years ago)
  • Macros.js

     
    109109{ 
    110110        params = paramString.parseParams("name",null,true,false,true); 
    111111        var names = params[0]["name"]; 
     112         
    112113        var tiddlerName = names[0]; 
    113114        var className = names[1] || null; 
    114115        var args = params[0]["with"]; 
    115116        var wrapper = createTiddlyElement(place,"span",null,className); 
    116         if(!args) { 
     117        var data = params[0]["data"]; 
     118        if(!args && !data) { 
    117119                wrapper.setAttribute("refresh","content"); 
    118120                wrapper.setAttribute("tiddler",tiddlerName); 
    119121        } 
     122         
    120123        var text = store.getTiddlerText(tiddlerName); 
    121         if(text) { 
    122                 var stack = config.macros.tiddler.tiddlerStack; 
    123                 if(stack.indexOf(tiddlerName) !== -1) 
    124                         return; 
    125                 stack.push(tiddlerName); 
    126                 try { 
    127                         var n = args ? Math.min(args.length,9) : 0; 
    128                         for(var i=0; i<n; i++) { 
    129                                 var placeholderRE = new RegExp("\\$" + (i + 1),"mg"); 
    130                                 text = text.replace(placeholderRE,args[i]); 
    131                         } 
    132                         config.macros.tiddler.renderText(wrapper,text,tiddlerName,params); 
    133                 } finally { 
    134                         stack.pop(); 
     124        if(!text) text = ""; 
     125        if(data)tiddlerName = data; 
     126        var stack = config.macros.tiddler.tiddlerStack; 
     127        if(stack.indexOf(tiddlerName) !== -1) 
     128                return; 
     129        stack.push(tiddlerName); 
     130        try { 
     131                var n = args ? Math.min(args.length,9) : 0; 
     132                for(var i=0; i<n; i++) { 
     133                        var placeholderRE = new RegExp("\\$" + (i + 1),"mg"); 
     134                        text = text.replace(placeholderRE,args[i]); 
    135135                } 
     136   
     137                config.macros.tiddler.renderText(wrapper,text,tiddlerName,params); 
     138        } finally { 
     139                stack.pop(); 
    136140        } 
    137141}; 
    138142