Haha, I was fearing this could happen. :D
The simple example you are seeing is...
<<pop Click! Jack.jpg pretty>>
Notice how everything is strictly individual terms separated by a space.
Assume that you'd want to show
Click me! and your image tiddler was
Jack In The Sack.jpg,
then at least you needed to invoke the pop macro like so...
<<pop "Click me!" "Jack In The Sack.jpg" pretty>>
Notice how the parameters are now enclosed in quotes. That is always a more safe choice!
Even safer would be...
<<pop label:"Click me!" content:"Jack In The Sack.jpg" pop-class:"pretty">>
This way, if the stupid developer, being me in this case,
ever messes with the sequence of parameters,
your macro should still work in the future,
provided he didn't also rename them.
Here's a funny stumbling block...
<<pop Jack:jack:jack! Jack.jpg pretty>>
While you might think the first parameter would be "Jack:jack:jack!", it really is interpreted as...
1st parameter => name="Jack" & value = "jack:jack!"
You definitely want to make sure you use quotes
when your parameters come from a macro, e.g.:
\define mymacro(my-parameter)
<<some-other-macro "$my-parameter$">>
\end
Sometimes a macro parameter can even be passed having a quote,
so to avoid any problems you're even more safe doing...
\define mymacro(my-parameter)
<$macrocall name="some-other-macro" first-parameter-name="""$my-parameter$"""/>
\end
- you need to specifically name your parameters
- you can enclose your parameter using triple double-quotes
so as to cater for any double-quotes safely being passed down