Thanks for that explanation - very helpful! Thanks also for the reminder about the find and replace possibility. My solution evolved from one in which I had figured out how to use setfield to add a tag - so I had that piece already and was really focusing on shoehorning in tag removal. Now that I've eliminated an entire <$mangletags> the whole thing is even more satisfyingly elegant.... cmari
On Tuesday, June 3, 2014 12:14:13 PM UTC-7, Matabele wrote: > > Hi cmari > > I don't know what you are trying to achieve, but there's also a 'find and > replace' option for the <$mangletags> widget. Your code using two widgets > will add 'newtag' regardless of whether the tiddler was previously tagged > with 'oldtag' -- with the find and replace option, 'newtag' will be added > only to those tiddlers that were previously tagged 'oldtag'. > > The syntax in this case: <$mangletags find="oldtag" add="newtag"> > > The widgets may be used in any order -- however, the default behaviour in > most cases is to pass on the received message to the next widget in the > stack. it is easier, therefore, to stack widgets of the same type adjacent > to one another -- changing the message only when the widget type changes > (as you have done.) The <$maketid> widget is the exception, as the > parameter caught by the widget becomes the default for the template > (maintaining compatibility with the standard 'tw-new-tiddler' message) -- > and the generated parameter is set to the value of the 'title' attribute. > All of the other widgets pass on the title of the target tiddler as the > parameter to the message by default (unless changed with 'param='), and > pass on the same message by default (unless changed with 'message='.) > > Hope this better explains how to use the widgets. > > regards > > On Tuesday, June 3, 2014 7:33:28 PM UTC+2, cmari wrote: >> >> Knowing that it was possible gave me the fortitude to continue with my >> trial-and-error flailing! >> I still don't quite understand the pattern for which macro to use first >> and when to add which message where, but in case it's helpful for someone >> else, here's my working solution to accomplish the following with a single >> button: >> 1. set a field >> 2. set another field >> 3. add one tag >> 4. remove another >> >> <$setfield set="!!field1" setTo="value1"> >> <$setfield set="!!field2" setTo="value2"> >> <$mangletags find="oldtag" message="tw-set-field"> >> <$mangletags add="newtag"> >> <$button message="tw-mangle-tags">button text here</$button> >> </$mangletags></$mangletags></$setfield></$setfield> >> >> (I haven't included a target because I put this in a tiddler called >> MyButton and then use it inside other tiddlers, e.g., {{!!title||MyButton}} >> ) >> >> This is really helpful - thanks! >> cmari >> > -- 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 post to this group, send email to tiddlywiki@googlegroups.com. Visit this group at http://groups.google.com/group/tiddlywiki. For more options, visit https://groups.google.com/d/optout.