Thank you John and Tony for clarification. --Mohammad
On Friday, February 8, 2019 at 4:26:00 AM UTC+3:30, TonyM wrote: > > Folks, > > I will add to Jeremys post that the value of foo is changed as you expect, > when displayed as I have below. In a way you are reusing the variable name, > giving it a new value. > > <$set name="foo" value="John"> > > <<foo>> > <$set name="foo" value="Paul"> > <<foo>> > > <$set name="foo" value="George"> > <<foo>> > > <$set name="foo" value="Ringo"> > <$text text=<<foo>>/> > > </$set> > </$set> > </$set> > </$set> > > However lets use this > \define mymacro() > <$set name="foo" value="Tony"> > In macro: <<foo>><br> > </$set> > \end > <$set name="foo" value="John"> > Before Macro: <<foo>><br> > <<mymacro>> > After Macro: <<foo>><br> > </$set> > > The result will be > > > *Before Macro: John In macro: Tony After Macro: John* > > > - Basically foo is set to john between the first <$set and </$set> > - Then when you call the macro foo is set between <$set and </$set> in > the macro > - Because the value for foo does not continue outside the macro given > its </$set> > - When we return to the calling wiki text the value of foo that is > returned is the value set previously. > > The following has the same results, for the same reason, your are "nesting > the set widgets" > <$set name="foo" value="John"> > Before nested set: <<foo>><br> > <$set name="foo" value="Tony"> > In nested set: <<foo>><br> > </$set> > After nested set: <<foo>><br> > </$set> > The result will be > > > *Before nested set: JohnIn nested set: TonyAfter nested set::John* > > So Jeremy's example is also nesting set widgets, it is just clearer now. > > *Using a macro call forces the nesting because if the macro does not close > its <$set widgets an error occurs.* > > This illustrates the way variable names can be reused, or overidden, some > would imagine this is like css, others would think of this as a stack, last > in first out. > > Understanding this is of particular value when considering list widgets > that change the current tiddler, they are changing the current tiddler > inside the list but the current tiddler outside the list retains its > original value. Lists within lists do this as well. However each list > filter will determine if it takes account of its current context, or > generates a totally new one. > > > Regards > Tony > > > > > > > On Thursday, February 7, 2019 at 11:35:22 PM UTC+11, Mohammad wrote: >> >> WOW, >> This is amazing Jeremy! >> >> As mush as I go deeper in Tiddlywiki, I found more amazing things. >> This gives us a lot of flexibility. I gonna to make some examples in >> TW-Scripts for this. >> >> By now I understood >> >> * I can have macro overloading in TW >> * I can send a macro name like a pointer from scope 1 to another macro. >> * I can define variables and constants >> * I can have decision making >> * I can loop over items >> * .... >> >> This is amazing! >> >> --Mohammad >> >> >> >> On Thursday, February 7, 2019 at 3:58:34 PM UTC+3:30, Jeremy Ruston wrote: >>> >>> You said, the *toc-caption* here will override the one in the core! Can >>> I conclude that: >>> >>> If a macro is called in a scope of a tiddler and it calls a macro >>>> internally say maymac, then if the maymac is existed in the scope of >>>> calling tiddler, it will override the core or other scope macros! Is this >>>> kind of overloading? >>> >>> >>> >>> Yes, exactly that. >>> >>> It’s the same mechanism by which the following example renders “Ringo”: >>> >>> <$set name="foo" value="John"> >>> <$set name="foo" value="Paul"> >>> <$set name="foo" value="George"> >>> <$set name="foo" value="Ringo"> >>> <$text text=<<foo>>/> >>> </$set> >>> </$set> >>> </$set> >>> </$set> >>> >>> >>> Best wishes >>> >>> Jeremy >>> >>> >>> >>> --Mohammad >>> >>> On Thursday, February 7, 2019 at 2:59:01 PM UTC+3:30, Jeremy Ruston >>> wrote: >>>> >>>> I’m not sure if it will let you do exactly what you want in this >>>> situation, but the reason that the toc-caption macro is separated out is >>>> so >>>> that it can be redefined for a particular instantiation of the TOC. For >>>> example, here we have a tabbed internal navigation TOC where the >>>> toc-caption macro has been modified to put a percentage sign before each >>>> caption. The toc-caption macro defined in this tiddler will override the >>>> one in the core. >>>> >>>> \define toc-caption() >>>> <$set name="tv-wikilinks" value="no"> >>>> % <$transclude field="caption"> >>>> <$view field="title"/> >>>> </$transclude> >>>> </$set> >>>> \end >>>> >>>> <$macrocall >>>> $name="toc-tabbed-internal-nav" >>>> tag="TableOfContents" >>>> selectedTiddler="$:/temp/toc/selectedTiddler" >>>> unselectedText="<p>Select a topic in the table of contents. Click the >>>> arrow to expand a topic.</p>" >>>> missingText="<p>Missing tiddler.</p>" >>>> /> >>>> >>>> >>>> Best wishes >>>> >>>> Jeremy. >>>> >>>> >>>> On 7 Feb 2019, at 04:32, S. S. <[email protected]> wrote: >>>> >>>> >>>> David, >>>> >>>> Open the shadow tiddler: *$:/core/macros/toc* >>>> Find this line : *\define toc-tabbed-external-nav* >>>> Yes, this is the correct line for modifying the >>>> *toc-tabbed-internal-nav* - as that macro calls it. >>>> >>>> Find this line: >>>> <h1><<toc-caption>></h1> >>>> >>>> Change it to this : >>>> <h1><$view field="title"/></h1> >>>> >>>> Should work! >>>> Regards >>>> >>>> >>>> On Thursday, February 7, 2019 at 6:43:02 AM UTC+7, David Gifford wrote: >>>>> >>>>> Hi all >>>>> >>>>> How would I tweak $:/core/macros/toc (or something else) so that each >>>>> tab in the toc would show the caption field of the tiddler, but the title >>>>> within the tab contents would show the longer title field of the tiddler? >>>>> >>>> >>>> -- >>>> 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/e3fc8dd3-8791-4db0-9860-3ca129fcf26d%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/tiddlywiki/e3fc8dd3-8791-4db0-9860-3ca129fcf26d%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit 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 [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/c19bf7dd-d88c-4160-8ce6-1a16b6fffba0%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/tiddlywiki/c19bf7dd-d88c-4160-8ce6-1a16b6fffba0%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit 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 [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/7146f7a8-6fc4-4084-9d2b-9b615b3461c0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

