The question is can I use a transclusion in hyperlinks?
Can I make a tiddler like [[MyFolder Path]] and then use [[myfile|file:///{{MyFolder Path}}\MySubfolder\myfile.txt]]? And if I rename/move my folder - I just adjust the single tiddler [[MyFolder Path]] and that's it, no need to rename ALL the links....Maybe some macro or something?...
\define link(text,file) <$vars folder={{MyFolderPath}}><<link2file "$text$" "$file$">></$vars>
\define link2file(text,file) [ext[$text$|file:///$(folder)$/$file$]]
C:/MyFolder02<<link "text to show" "MySubfolder/myfile.txt">>Wow! Looks like it worked! Thanks a lot, Eric!"BUT..." :) what if I want to make it a bit more complex? What if I want to make "MyFolder" also a variable?e.g. if I have folders like "MyDocs", "MyImages", "MyData", "Downloads", etc. with this method, as I understood, I would have to make a separate variable for each, like:MyGoto Macro:\define godocs(text,file) <$vars folder={{MyDocs Path}}><<link2file "$text$" "$file$">></$vars>
\define goimg(text,file) <$vars folder={{MyImages Path}}><<link2file "$text$" "$file$">></$vars>
\define godata(text,file) <$vars folder={{MyData Path}}><<link2file "$text$" "$file$">></$vars>
\define godownloads(text,file) <$vars folder={{Downloads Path}}><<link2file "$text$" "$file$">></$vars>
\define link2file(text,file) [ext[$text$|file:///$(folder)$/$file$]]with tiddlers [[MyDocs Path]], [[MyImages Path]], [[MyData Path]], [[Downloads Path]] defining path to the folders.and the usage<<godocs "My awesome document" "Agreement/doc1.doc">>
<<goimg "My Fabulous picture" "Scenery/lake.img">> etc.
but what if I want a "universal" macro with usage like:<<gofolder "text to show" "Folder" "MySubfolder/myfile.txt">>
\define gofolder(text,folder,file) [ext[$text$|file:///$folder$/$file$]]<<gofolder "text to show" "Folder" "MySubfolder/myfile.txt">>\define gofolder(text,file) [ext[$text$|file:///$file$]]<<gofolder "text to show" "Folder/MySubfolder/myfile.txt">>but what if I want a "universal" macro with usage like:
<<gofolder "text to show" "Folder" "MySubfolder/myfile.txt">>
...you could just write:\define gofolder(text,file) [ext[$text$|file:///$file$]]which you would call like this:<<gofolder "text to show" "Folder/MySubfolder/myfile.txt">>See. Nice and simple!
\define gofolder(text,foldertid,file) <$vars folder={{$foldertid$}}><<link2file "$text$" "$file$">></$vars>
\define link2file(text,file) [ext[$text$|file:///$(folder)$/$file$]]
<<gofolder "text to show" "MyDocs Path" "agreement/doc1.doc">>
<<gofolder "text to show" "MyImages Path" "Scenery/lake.img">>
<<gofolder "text to show" "MyData Path" "Data/something.dat">>
<<gofolder "text to show" "Downloads Path" "Downloads/somefile.ext">>
To keep "the best of both worlds", you could do something like this:\define gofolder(text,foldertid,file) <$vars folder={{$foldertid$}}><<link2file "$text$" "$file$">></$vars>
\define link2file(text,file) [ext[$text$|file:///$(folder)$/$file$]]with tiddlers [[MyDocs Path]], [[MyImages Path]], [[MyData Path]], [[Downloads Path]] defining path to the folders.
and then call it like this:<<gofolder "text to show" "MyDocs Path" "agreement/doc1.doc">>
<<gofolder "text to show" "MyImages Path" "Scenery/lake.img">>
<<gofolder "text to show" "MyData Path" "Data/something.dat">>
<<gofolder "text to show" "Downloads Path" "Downloads/somefile.ext">>