Mohamed,
*The easiest way is to set values in the macro itself.*
eg in a tiddler "MacroDef
\define themacroname()
<$set name=macro-name value="themaconame">
<$set name=macro-tiddler value="MacroDef">
<$link /> <<macxro-name>> in <<macro-tiddler>><br>
Do macro stuff here
</$set></$set>
\end
Then in another tiddler
<<themacroname>>
So within the macro its name and tiddler are available as a variable.
*Alternatively; the following method makes use of macro parameters;*
\define themacroname(macro-name:"themacroname" macro-tiddler:"MacroDef" )
<$link /> <<__macro-name__>> in <<__macro-tiddler__>><br>
<hr><!-- OR -->
<$link /> $macro-name$ in $macro-tiddler$ <br>
Do macro stuff here
\end
- <<__macroParameter__>> Parameter-as-variable access to a parameter
defined in the macro parameters list as it it were a variable.
- This method also Allows the $parameter$ substitution that allows you
to do things like tooltip="My $parameter$" in a button, which is a form of
concatenation.
Notes
- There are other special ways available to identify a tiddler that has
being transcluded, but the transclude tiddler can also set set a variable
or two.
- This will cover most requirements except where the macro is itself
generated automatically, ie when putting in static values is insufficient.
- Another trick is a macro that you give a macroname as its parameter,
that it then uses to call the macro, thus the macro name is available.
- Given a macroname you can also search for "\define macroname(" in all
tiddlers to find one or more places where it is defined.
Tones
On Saturday, 22 May 2021 at 10:29:13 UTC+10 Mohamed Amin wrote:
> Hi,
>
> As I know, using "currentTiddler" inside a Macro will get the "Caller
> Tiddler" title.
> Is there a way to let a Macro to access its own tiddler?
>
> For example:
> If I've a Macro name "myMacro01" which is defined in a tiddler called
> "Macro01_Tdlr".
> Now, if I call this macro from a tiddler called "XYZ" , then the
> "currentTiddler" value will be "XYZ".
> Is there a way to let the macro get its own tiddler name (Macro01_Tdlr)?
>
> A use case:
> I'm thinking to have a series of Macros, each is defined in its own
> Tiddler.
> then I'll use the fields in each "Macro Tiddler" to control the behavior
> of the macro (the Macro will need to access the fields inside its own
> tiddler)
>
> any idea?
>
> Thanks in advance
>
>
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/eb9610ce-f3a9-431c-bbe1-c97e654ea5fdn%40googlegroups.com.