Hello tb,
Thanks for that!
I haven't got my head around the macro mechanism and what's allowed with parameter substitution, but I notice that wrapping a macro around the
macrocall line does what I want. It allows using the nice shorthand <<macroName>> macro calling syntax without having to explicitly pass the path and file arguments. But it leaves me feeling that I've jumped through a hoop, turned around and jumped back again.
\define .dlink-ex(pretty, path, file)
<a href="$path$$file$" class="tc-tiddlylink-external" target="_blank">$pretty$</a>
\end
\define pig(pretty)
<$macrocall $name=".dlink-ex" pretty=$pretty$ path={{!!path}} file={{!!file}} />
\end
<<pig "earwig">> works
\define .dlink-bad(pretty)
<a href="{{!!path}}{{!!file}}" class="tc-tiddlylink-external" target="_blank">$pretty$</a>
\end
<<.dlink-bad "earwig">> doesn't work
All the best, Bob