Thank you, Jeremy and Tobias especially! I have it working now! The first time I read Tobias' solution and tried my own based on it, it didn't work for me. I don't know exactly what I was doing wrong (the text of that attempt was lost by a browser crash), but every attempt to call the macro seemed to produce just the text of the macro call, not its result.
Now I understand the solution: write the macro so that any parameters which can't be represented as hard-coded strings are instead accepted via variables. Then use SetWidgets or a VarsWidget around the macro call, and set the parameters with those. Then the macro call can be used as an attribute to the ButtonWidget. This is the code of my working version: ``` \define add-she-said() Hey $(add-she-said-text)$ - is what she said. \end <$set name="add-she-said-text" value="roll it"> ---- <<add-she-said>> </$set> <$set name="add-she-said-text" value={{!!test}}> <$button set=!!test setTo=<<add-she-said>>>Test button</$button> </$set> ``` Tobias, you're right that the best solution may end up being something other than a macro, but to keep the project going, I have a deep need to be able to update certain data fields easily in great numbers of tiddlers. An imperfect solution now is tons better than a perfect solution in three months. -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/ecb513be-c1f7-4e88-9533-0ca8e2d4665c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.