Hi Mark > 3) You can use a macro inside a widget IF it doesn't have a parameter
That is not correct. Macro invocations used as widget attributes may have parameters. However, there are a couple of points to watch: * The output of the macro is not wikified; it is used directly as the value of the attribute * The double angle brackets widget call syntax only allows parameters to be specified as strings Best wishes Jeremy. > 4) Therefore, you will most often need to use <$set ...> to set a variable to > be used by a macro that gets fed to your widget > > Mark > > On Saturday, October 3, 2015 at 10:49:00 AM UTC-7, Antaeus Feldspar wrote: > Or, to express it a different way from the subject line, how can I create a > button widget that will: > a) take the current value of a tiddler field; > b) use that current value as a parameter to a macro to calculate a new value; > and > c) put that new value back into the tiddler field that was read? > WHAT I TRIED: > > I've tried various things; my most recent attempt is this: > > <$button set=!!test setTo=<$macrocall $name=".js-macro-link" > text={{!!test}}/> >Test button</$button> > > However, the parser can't seem to handle the angle brackets of the macrocall > widget appearing in the middle of the button widget declaration. Everything > after the "/>" that closes the macrocall widget appears as WikiText following > a blank button. > > Before that I tried calling the macro through the standard syntax, and > discovered that (unless there's some way to do it that I missed) you can't > use a macro call as an element attribute. > > It occurred to me that since a ButtonWidget can contain multiple > ActionWidgets, that might be the solution - except that there's nothing in > the documentation guaranteeing an order in which such widgets execute, so > assigning the output of a macro to a temporary tiddler and then copying it > back to the original field does not seem to be an option. > > PLEASE NOTE: > > Please note that I am trying to get an answer to the GENERAL question, not > "how do I get the same effect as if I was applying this particular macro?" I > am sure that there would be a simple way to apply the effect of THIS macro > with template transclusion, but that does not answer my question, because > sooner or later I will be using the technique for Javascript macros that do > mathematical calculations. > > DOCUMENTATION SUGGESTION: > > A chart which shows the various forms of data sourcing (plain text, > TextReference, macro output, etc.) in columns and then shows in rows what > they can and can't be used for (macro parameters, element attributes, etc.) > would be useful. > > > > > > > > > > > > -- > 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 > <mailto:tiddlywiki+unsubscr...@googlegroups.com>. > To post to this group, send email to tiddlywiki@googlegroups.com > <mailto:tiddlywiki@googlegroups.com>. > Visit this group at http://groups.google.com/group/tiddlywiki > <http://groups.google.com/group/tiddlywiki>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/tiddlywiki/b9f31e05-bf09-4170-a63e-5e57225f3cc0%40googlegroups.com > > <https://groups.google.com/d/msgid/tiddlywiki/b9f31e05-bf09-4170-a63e-5e57225f3cc0%40googlegroups.com?utm_medium=email&utm_source=footer>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- 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/52D71482-64D9-4097-A3D7-1178CBD74588%40gmail.com. For more options, visit https://groups.google.com/d/optout.