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 tiddlywiki+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/46e2709f-44ba-4d74-aaaf-034ddb4862e4%40googlegroups.com.