\define testmacro1(alpha:{{!!title}} beta gamma:{{!!foo}})
<<testmacro2 $alpha$ $beta$ $gamma$>>
\end
\define testmacro2(alpha beta gamma)
alpha = $alpha$
<br>
beta = $beta$
<br>
gamma = $gamma$
\end
<<testmacro1>>--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/a21ed836-2926-4468-bc9b-aae7de4f5a80%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Thanks for the quick answer !
I did'nt know these details.
I think the documentation on tiddlywiki.com should be updated : the example in the tiddler "Macro Definitions in WikiText" doesn't use commas to separate the parameters.
FrD
Le lundi 28 septembre 2015 19:20:38 UTC+2, Jeremy Ruston a écrit :Hi FrDThere are a couple of things going on:* Parameters in a macro definition are separated with commas. It is unfortunate that this is different than the white space separator used when invoking macros* In your example, the macro invocation of testmacro2 is unpacking to <<textmacro2 {{!!title}} {{!!foo}}>>. The missing value for the beta parameter comes out blank, causing the value you've specified with $gamma$ to be passed as the parameter "beta" to testmacro2. The workaround is to use named parameters and quotes:Here's a corrected version:\define testmacro1(alpha:"{{!!title}}",beta,gamma:"{{!!foo}}")<<testmacro2 alpha:"""$alpha$""" beta:"""$beta$""" gamma:"""$gamma$""">>\end\define testmacro2(alpha,beta,gamma)alpha = $alpha$<br>beta = $beta$<br>gamma = $gamma$\end<<testmacro1>>Best wishesJeremy