Joe, Using Mohamads suggestion of using macrocall is one way to pass a value to a macro when that value comes from another macro or variable. It is however possible to reference the value in <<text>> without putting it in the parameters as $(text)$ (inside the macro)
\define foo() fooStart $(text)$ fooStop \end As long as you have set <<text>> this will work. There are ways to test if text is set and provide a default value if it is not as well. Regards Tony On Sunday, 20 January 2019 06:59:55 UTC+11, Joe Armstrong wrote: > > > I have two macros > > \define text() > A line of text > \end > > \define foo(x) > fooStart $x$ fooStop > \end > > So > > <<text>> is replaced by "A line of text" > > and > > <<foo "abc">> is replaced by "Start abc fooStop" > > But <<foo <<text>> >> > > is replaced by "fooStart <<text fooStop >>" > > And NOT "fooStart A line of text fooStop" as I had expected. > > After a lot of head scratching I realised that this means that the > argument (x) to foo is the > string "<<text" ie the first occurrence of ">>" to the left > of the start "<<" of the macro and not the second occurrence. > > ie. "<<" and ">>" do not properly nest as I had expected. > > This seems like a pretty big pothole for a beginner to fall into ... > > So what is the accepted idiom for using a macro result > as the input argument to another macro - how does one chain macro calls > together? > > Cheers > > /Joe > > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/tiddlywiki. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/10e8b2bd-fcff-4610-b714-3e3b9f52748e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

