On Tuesday, September 15, 2020 at 5:44:56 AM UTC-7, Bob Jansen wrote:
>
> How can I check if a parameter passed to a macro is blank?
> I have tried
> \define purchased(name_id)
> <$list
> filter="[tag[Artworks]!tag[Index]!<currentTiddler>search:name_id{[<<__name_id__>>]is[blank]then[XX]}sort[title]]}>•
>
> <$link to={{!!artwork_id}}><$view field="title"/> <$view
> field="artwork_title"/></$link><br/></$list>
> \end
> but this does not work. If name_id is empty I want to search to look for
> the string XX which I know doesn't exist.
>
First, as you may have realized, the above doesn't work because you can't
"nest" filter syntax (i.e., you can't directly use a filter to describe
another filter's operand value)
To accomplish your goal, first calculate the desired operand value and
assign it to a variable. Then reference the variable in the filter, like
this:
\define purchased(name_id)
<$vars id={{{ [[$name_id$]!is[blank]else[XX]] }}}>
<$list filter=
"[tag[Artworks]!tag[Index]!match<currentTiddler>search:name_id<id>]">
• <$link to={{!!artwork_id}}><$view field="title"> <$view field=
"artwork_title"/></$link><br/>
<$list>
</$vars>
\end
Alternatively, since you know that searching for [XX] will result in no
matching tiddlers, you could test for the blank value and just skip the
$list entirely:
\define purchased(name_id)
<$list filter="[[$name_id$]!is[blank]]" variable="not_blank">
<$list filter=
"[tag[Artworks]!tag[Index]!match<currentTiddler>search:name_id[$name_id$]]">
• <$link to={{!!artwork_id}}><$view field="title"> <$view field=
"artwork_title"/></$link><br/>
<$list>
</$list>
\end
The outer filter is being used as a conditional ("if name_id is not blank")
with the variable ("not_blank") used to avoid changing the value of
<<currentTiddler>>.
Note: I like to use a variable name that summarizes the purpose of the
filter, but you could use any variable name (e.g., "foo") since you really
don't reference it anywhere.
-e
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/ae75c768-803c-4bbb-9d71-20646a542e05o%40googlegroups.com.