Hey, cool! The $(..)$ syntax was the key. It also works within tiddler 
transclusion, e.g., {{$(currentTiddler)$ Discussion}}, which allowed me to 
finished the template. My main tiddlers now just have the single line 
<<myTemplate>> and everything works.

Mini-rant: all these different syntaxes are just a tad confusing :) 
Sometimes {{..}}, sometimes {{{..}}}, sometimes <<..>>, sometimes $(..)$, 
probably others I haven't stumbled on yet. Hard to keep track.

Thanks to both of you for your help!

--nathanael

On Wednesday, June 23, 2021 at 12:51:52 PM UTC+8 Eric Shulman wrote:

> On Tuesday, June 22, 2021 at 7:45:51 PM UTC-7 cjec...@gmail.com wrote:
>
>> ...embed the tiddler title in the url, i.e.:
>>
> [img[images/{{!!title}}.jpg]]
>> But of course that just gets read literally. I've also tried using a 
>> variable with the same result:
>> <$set name="image" value="images/{{!!title}}.jpg">
>> [image[<<image>>]]
>> </$set>
>>
>
> The problem is that you can't directly mix field transclusion syntax, 
> e.g., {{!!fieldname}}, within other wiki syntax, e.g., [img[...]]
>
> The solution is to define a macro that constructs the desired wiki image 
> syntax, like this:
> \define showImage() [img[images/$(currentTiddler)$.jpg]]
> Then, invoke it like this:
> <<showImage>>
>
> Notes:
> * By default, within each tiddler, the variable "currentTiddler" holds the 
> name of the tiddler
> * In normal tiddler content, you can use either {{!!title}} or 
> <<currentTiddler>> to *display* the name of the tiddler
> * Within the macro definition, $(...)$ does a *text substitution* of the 
> indicated variable, where the variable is defined *outside* the macro
> * After variable substitutions are done, the resulting macro content is 
> "returned" for rendering
> * Thus, if the above macro is invoked within a tiddler named "Tiddler1", 
> the macro content returned by <<showImage>> will be: 
> [img[images/Tiddler1.jpg]], which is the syntax you want.
> * To use <<showImage>> in multiple tiddlers, just place the showImage() 
> macro definition in a tiddler by itself (e.g., "ShowImageMacro"), and then 
> tag that tiddler with *$:/tags/Macro*.
>
> Also, as an alternative to using a macro definition to construct the 
> desired syntax, you could use the <$image> widget with a parameter value 
> that is assembled using "filtered transclusion", like this:
>    <$image source={{{ [[images/]addsuffix<currentTiddler>addsuffix[.jpg]] 
> }}} />
> However, this syntax is obviously more complex to produce the exact same 
> result.
>
> enjoy,
> -e
>

-- 
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/1e273193-745a-4283-94b4-ab2343f231ebn%40googlegroups.com.

Reply via email to