Problems mixing variables/macros/html

I have what is probably a very common problem but I can’t figure it out.

I have a tiddler that is creating a bunch of buttons with icons on them using the button widget. When the button is clicked, it copies the icon name to the clipboard. So far so good.

When building the tooltip part of the button, I need it to concatenate two values, one is from a field in the tiddler, then other is from a variable in the list widget that surrounds the creation of these buttons. I can’t for the life of me figure out how to do this.

I have a macro that does the concatenation and adds a : between the two values. It works if I use it by itself, but how do I get it to working inside the button widget, or in HTML for that matter since one of the parameters in the macro is a variable from the list widget?

Here is the macro call. <<item>> is the variable from the list widget.
<$macrocall $name="buildicon" category={{!!category}} iconname=<<item>> />

I’m trying to use that in the button widget
<$button class="border-0 bg-white hover:scale-[1.75] hover:shadow-lg hover:border" message="tm-copy-to-clipboard" param=*macro would go here* tooltip=*macro would go here* >

If all your macro is doing is concatenating strings you can skip the macro and use substituted attributes instead:


<$button class="border-0 bg-white hover:scale-[1.75] hover:shadow-lg hover:border" message="tm-copy-to-clipboard" param=`${ [{!!category}] }$:$(item)$` tooltip=`${ [{!!category}] }$:$(item)$` >

See https://tiddlywiki.com/#Substituted%20Attribute%20Values

Whoa, I didn’t know about that one. Thanks!