TonyK
An empty message can be a macro, that contains many things,
\define onemptymessage()
{empty message code here}
\end
<$list filter="""[<variable>length[]match[9]then[short]else[long]]"""
variable="type" emptyMessage=<<onemptymessage>> />
{full code here}
</$list>
It can even look like this
<$list filter="""[<variable>length[]match[9]then[short]else[long]]"""
variable="type"
emptyMessage="""
{empty message code here}
"""/>
{full code here}
</$list>
Extending Saq suggestion; I expect this to work (untested today)
[<variable>length[]match[9]then<shortval>else<longval>]
The only limitation being macros cant be passed variables, complex macrs
may need their result wikified before using in a filter
Remember as well is all you want to know is is it long or short this will do
{{{[<variable>length[]match[9]then[short]else[long]]}}
Regards
Tony
On Thursday, May 21, 2020 at 2:32:40 AM UTC+10, Tony K wrote:
>
> I did play around with empty message but it gives an empty message and
> doesn't set a value to a variable (at least from my tests)
>
> On Wednesday, May 20, 2020 at 7:26:41 PM UTC+3, Mark S. wrote:
>>
>> The list widget has an emptyMessage attribute. You can point this to a
>> macro where alternative actions occur when the main filter fails (is empty).
>>
>> In your second set of widgets, you have unmatched tags/tag endings which
>> is always a bad thing.
>>
>> Good luck!
>>
>> On Wednesday, May 20, 2020 at 9:19:59 AM UTC-7, Tony K wrote:
>>>
>>> I can't figure out how to set the value of a variable based on a
>>> specific condition so, instead, I am writing the code twice
>>>
>>> e.g.
>>>
>>> <$list filter="[<variable>length[]match[9]]">
>>> <$set name="type" value="short">
>>> {full code here}
>>> </$set>
>>> </$list>
>>> <$list filter="[<variable>length[]!match[9]]">
>>> <$set name="type" value="long">
>>> {full code here}
>>> </$set>
>>> </$list>
>>>
>>> this is not really efficient.
>>>
>>> I tried conditionally inserting the first line of the "$set" but it
>>> didnt' work (as follows) even thought logically it should
>>>
>>> <$list filter="[<variable>length[]match[9]]">
>>> <$set name="type" value="short">
>>> </$list>
>>>
>>> <$list filter="[<variable>length[]!match[9]]">
>>> <$set name="type" value="long">
>>> </$list>
>>>
>>> {full code here}
>>> </$set>
>>>
>>>
>>> I am sure there is some kind of a workaround for this
>>>
>>> thanks for shedding any light
>>>
>>
--
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/46e2709f-44ba-4d74-aaaf-034ddb4862e4%40googlegroups.com.