Jed,

That is some helpful information speaking from Experience there. Perhaps I 
can add something?

I would add that when something is already delimited (its beginning and end 
indicated) it we do not need to go out of our way to delimit it. Especially 
with titles. eg in param={{tiddlername}}  tiddlername is already 
"bracketed", so param="{{tiddlername}}" is over kill and will return the 
literal string "{{tiddlername}}" not the content of tiddlername's text 
field.  I found this is not documented 
in https://tiddlywiki.com/#Macro%20Calls%20in%20WikiText and other places

*Each parameter value can be enclosed in 'single quotes', "double quotes", 
"""triple double quotes""" or [[double square brackets]]. Triple double 
quotes allow a value to contain almost anything. If a value contains no 
spaces or single or double quotes, it requires no delimiters.*

Jed do you agree with the following?

If parameters are supplied using <<amacroorvariable>> a text reference 
{{tiddlername}} or a field in the current tiddler {{!!fieldname}} they are 
already delimited and need not be surrounded by quotes or [[double square 
brackets]]

The above is commonly done using the macrocall widget so that the 
parameters can be interpreted in the macrocall. The macro call allows you 
to name a macro, its parameters and provide parameters

Ie; you could say <<mymacro params>> but if you want to pass a param of 
<<myothermacro>> it will be difficult. So instead use the macrocall widget, 
so you can freely pass the parameters.

<$macrocall $name=mymacro param1=<<myothermacro>> />

Of note is in most cases except the wikify widget the value in a parameter 
will not be "wikified" so you CANNOT supply "compound values" in a parameter

eg param="MyPrefix/{{!!title}}" for example, because the parameter will not 
first be wikified to replace {{!title}} with its current value.

For this reason people tend to use macros, wikify and sometimes set to 
create a "compound value" to use as the parameter in a macro.

This was hard one knowledge, that now seems obvious to me but caused real 
problems for me in the beginning.

*Criticisms of above statements welcome.*

Regards
Tony


On Wednesday, October 24, 2018 at 7:07:59 AM UTC+11, Jed Carty wrote:
>
> A single set of curly braces is only used inside filters. It is the same 
> as {{foo}} outside of filters in that it transcludes the content of foo. 
> {{{ [tag[foo]] }}} is a shorthand for the list widget and is not actually 
> related to the other uses.
>
> The part that adds the square brackets has nothing to do with the { part, 
> some operators treat any input as a title list and some widgets treat their 
> output as a title list.
>
> If an input is treated as a title list than any spaces will be used as 
> separators between items unless it is surrounded by [[ and ]], and outputs 
> from things that give title lists will put [[ and ]] around any items that 
> have spaces in the name.
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/8fb4a304-11fb-4fd5-9e10-60dcd334d95d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to