Mohammad, As a community we are so grateful for your publishing and documentation. Shiraz as an example is a substantial resource.
I would like to help, extend your great content a little further and make it even more useful If I can so humbly suggest a few things For example I looked at https://kookma.github.io/TW-Scripts/#Add%20Remove%20Tags%20Using%20ActionListops Some issues - To set the tiddler programaticaly including the currentTiddler the $macrocall form may be necessary - The current tiddler is not the default - Since you have to provide the tags but you could default to the current tiddler put the tags as parameter 1 and 2 - You always have to provide the tiddlername This is my refactored code \define add-remove-tags(oldTag, newTag, tiddler) <$set name=tiddler value="$tiddler$" emptyValue=<<currentTiddler>> > <$button tooltip="Add '$newTag$' tag and Remove '$oldTag$' tag."> Change ''$newTag$'' to ''$oldTag$'' <$action-listops $tiddler=<<tiddler>> $field="tags" $subfilter="[[$newTag$]]" /> <$action-listops $tiddler=<<tiddler>> $field="tags" $subfilter="-[[$oldTag$]]" /> </$button> </$set> \end <<add-remove-tags a b>> <<add-remove-tags b a>> SO this is the difference - << add-remove-tags a b>> will operate on the current tiddler - the tiddler can be provided optionally. It is my approach to always write macros for the current tiddler by default, this means they remain valid inside lists and edit/view templates - I just reused the name $tiddler$ to Create <<tiddler>> with emptyValue <<currentTiddler>> - When you have replaceable values you can make a* detailed tooltip* and keep the* button name shorter.* - The button is a user function description rather than detailing what happens, the tooltip does that. Regards Tones On Sunday, 6 June 2021 at 02:23:08 UTC+10 Mohammad wrote: > It's a bit complicated! but it works! > > have a look at TW-Scripts for example > > > https://kookma.github.io/TW-Scripts/#Add%20Remove%20Tags%20Using%20ActionListops > > > > Best wishes > Mohammad > > > On Sat, Jun 5, 2021 at 7:56 PM Charlie Veniot <cj.v...@gmail.com> wrote: > >> Nah, I didn't consider that because the particular TiddlyWiki instance >> I'm working with I've setup with only single-word tags. >> >> So no, that particular code sample was not designed for a tag with words >> separated by spaces. >> >> To handle any multi-word tag with spaces between the words: >> >> \define doIt() >> <$vars ldb="[[" >> rdb="]]"> >> <$list variable="thisTiddler" filter="[tag[A]]"> >> <$action-setfield $tiddler=<<thisTiddler>> $field="tags" $value={{{ >> [<thisTiddler>tags[]addprefix<ldb>addsuffix<rdb>join[ ]] >> [[mot]addprefix<ldb>addsuffix<rdb>] +[join[ ]] }}}/> >> </$list> >> </$vars> >> \end >> >> <$button actions=<<doIt>>> >> Tag Em >> </$button> >> >> I've also wrapped the new tag (hard-coded in my code sample as "mot") >> with double-brackets, so that if you replace "mot" with a >> multi-word-separated by spaces tag, the code still works otherwise as-is. >> (in the case of a single-word, or CamelCase word, TiddlyWiki will ignore >> the double-brackets.) >> >> If you want to make the actions macro more generalized, then you'll want >> to add a parameter (newTag?), and then replace "mot" with "$newTag$", I >> think without trying it. >> >> >> On Saturday, June 5, 2021 at 6:33:51 AM UTC-3 Mohammad wrote: >> >>> Does this work if you want to add [[newTag from code]]? >>> Or if the tiddlers already have a tag with space in the title? >>> >>> >>> Best wishes >>> Mohammad >>> >>> >>> On Sat, Jun 5, 2021 at 10:01 AM Charlie Veniot <cj.v...@gmail.com> >>> wrote: >>> >>>> G'day, >>>> >>>> I'm refactoring the design on a TiddlyWiki project, and wanted to apply >>>> tag changes to batches of tiddlers. >>>> >>>> In case of any interest, here's the related code pattern: >>>> >>>> \define doIt() >>>> <$list variable="thisTiddler" filter="[tag[A]]"> >>>> <$action-setfield $tiddler=<<thisTiddler>> $field="tags" $value={{{ >>>> [<thisTiddler>tags[]] [[mot]] +[join[ ]] }}}/> >>>> </$list> >>>> \end >>>> >>>> <$button actions=<<doIt>>> >>>> Tag Em >>>> </$button> >>>> >>>> Cheers ! >>>> >>>> -- >>>> 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+...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/tiddlywiki/9b84cbd5-ce87-4611-a180-4dccaf611061n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/tiddlywiki/9b84cbd5-ce87-4611-a180-4dccaf611061n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> 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+...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/tiddlywiki/832ea5f8-e467-4e28-8785-a58ccb02562en%40googlegroups.com >> >> <https://groups.google.com/d/msgid/tiddlywiki/832ea5f8-e467-4e28-8785-a58ccb02562en%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- 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/c0c8ce7b-e367-4216-a507-764c1fdcccb4n%40googlegroups.com.