\define getMeTiddlerName(a_suffix) $(currentTiddler)$$a_suffix$

In the macro definition above, $(currentTiddler)$ *substitutes the value 
from the currentTiddler variable* and then adds the specified $a_suffix$ 
parameter value.

When you wrote this:
<$list filter="whateveFilterHere">
    <$transclude tiddler=<<getMeTiddlerName "_EN">> /> <br/>   <!-- DOESN'T 
WORK -->
</$list>
The surrounding $list widget *sets the value of the currentTiddler variable* 
to "whateveFilterHere".
Thus, the macro output was "whateveFilterHere_EN", which almost certainly 
didn't exist in your file, so no transclusion happened.

Then, when you wrote this:
   <<getMeTiddlerName "_EN">>
to "print to screen the macro output", the macro wasn't contained inside a 
$list widget,
so the value of currentTiddler was the actual containing tiddler's title, 
and you got the results you expected.

and, when you wrote:
<$transclude tiddler={{{ [<currentTiddler>addsuffix[_EN]]}}} />
you used "filtered transclusion" (sometimes referred to as an "inline 
filter") to directly add the "_EN" suffix to the currentTiddler value,
which was then used as *the value for the "tiddler=..." widget attribute*... 
so you got the results you expected.

Note that, *within the filter syntax, variable references are enclosed in 
angle brackets*, like this:
   <currentTiddler>
However, when used *outside a filter -- in normal wikitext -- variable 
references use *doubled* angle brackets*, like this:
   <<currentTiddler>>
This is necessary so that *the variable reference isn't mistaken for 
conventional HTML syntax*, which uses the single angle brackets, e.g.,
   <div>some text here</div>

Hopefully, the above explanations have provided some useful clues :-)

enjoy,
-e
Eric Shulman
TiddlyTools.com: "Small Tools for Big Ideas!"
On Sunday, August 8, 2021 at 10:41:30 AM UTC-7 CarloGgi wrote:

> Charlie, your solution worked fine!
>
> <$transclude tiddler={{{ [<currentTiddler>addsuffix[_EN]]}}} />
>
> Still I wonder why the macro way doesn't yield the expected result, but 
> anyway thanksalot for the hint. I will duly commit myself to studying its 
> syntax, quite obscure to me.
>
> Regards,
> CG
>
> On Sun, Aug 8, 2021 at 8:14 PM Charlie Veniot <cj.v...@gmail.com> wrote:
>
>> I'm thinking most folk prefer the macro route, and that makes sense to me.
>>
>> The way I'm wired, I usually go with transclusions unless I really don't 
>> have a choice.   Can't explain it.
>>
>> *For the "variety is the spice of life" giggles*:
>>
>> <$list filter="whateveFilterHere">
>>     <$transclude tiddler={{{ [<currentTiddler>addsuffix[_EN]]}}} /> <br/>
>> </$list>
>>
>> But that would be a pain in the caboose if spread all over the place.
>>
>> So sticking with my transclusion mentality...
>>
>> <$list filter="whateveFilterHere">
>>     {{||EN_Maker}} <br/>
>> </$list>
>>
>> The tiddler "En_Maker" is a transclusion template tiddler with the 
>> following content:
>>
>> <$transclude tiddler={{{ [<currentTiddler>addsuffix[_EN]]}}} />
>>
>> Yeah, I'm quirky that way ...
>>
>> On Sunday, August 8, 2021 at 1:08:29 PM UTC-3 CarloGgi wrote:
>>
>>>
>>> Hallo,
>>> quite new to TW and I love it, though it is dramatically underdocumented 
>>> and the whole docs are an almost unusable mess.
>>>
>>> To my biggest astonishment, when I try to dynamically build the name of 
>>> a tiddler from inisde a macro, that macro output cannot be used from within 
>>> a transclude widget.
>>>
>>> \define getMeTiddlerName(a_suffix) <<currentTiddler>>$a_suffix$ 
>>>
>>> <$list filter="whateveFilterHere">
>>>     <$transclude tiddler=<<getMeTiddlerName "_EN">> /> <br/>
>>> </$list>
>>>
>>> In the example above, I obtain the tiddler's name by adding suffix 'EN' 
>>> to current tiddler, which the macro DOES, but then its output 
>>> <<getMeTiddlerName "EN">> doesn't make transclude widget behave as expected.
>>>
>>> I also tried many combinations of single/double quotes, as for instance 
>>> in:
>>>
>>>     <$transclude tiddler="<<getMeTiddlerName '_EN'>>" /> <br/>
>>>
>>> but no result at all: the transclude widget DOESN'T transclude the 
>>> dynamically-built tiddler SOMETIDDLERNAME_EN
>>>
>>> Not even the simpler version with hard-coded suffix works:
>>>
>>> \define getMeTiddlerName() <<currentTiddler>>_EN 
>>>
>>> <$list filter="whateveFilterHere">
>>>     <$transclude tiddler=<<getMeTiddlerName>> /> <br/>
>>> </$list>
>>>
>>> Nor does it using double quotes for 'tiddler' parameter inside 
>>> transclude widget:
>>>
>>> \define getMeTiddlerName() <<currentTiddler>>_EN 
>>>
>>> <$list filter="whateveFilterHere">
>>>     <$transclude tiddler="<<getMeTiddlerName>>" /> <br/>
>>> </$list>
>>>
>>> Thanks for helping, soooo frustrated!
>>>
>>> CG
>>>
>> -- 
>>
> You received this message because you are subscribed to a topic in the 
>> Google Groups "TiddlyWiki" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/tiddlywiki/hbSf3WtfLvM/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> tiddlywiki+...@googlegroups.com.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/tiddlywiki/38033f26-43ce-495b-aede-bd4958445e21n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/tiddlywiki/38033f26-43ce-495b-aede-bd4958445e21n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/c4095624-cf11-4e2b-8c63-b17fa26f76f4n%40googlegroups.com.

Reply via email to