L'une des aptitudes clés du WikiTexte est sa capacité à créer des liens vers d'autres mémos (appelés tiddlers) ou vers des sites externes. Il existe plusieurs moyens de les mettre en œuvre.
Liens manuels
Lien vers un tiddler par son titre :
[[Titre de Tiddler]]
Pour changer le texte affiché par le lien :
[[Texte à afficher|Titre du Tiddler]]
Les liens peuvent aussi être créés à l'aide de la barre d'outils d'édition. Cliquez sur le bouton lien, puis recherchez et sélectionnez un tiddler.
Lien en « notation chameau »
Pour les tiddlers dont le titre respecte les règles de la notation chameau, saisir leur titre sans l'encadrer entre doubles crochets suffit à créer automatiquement un lien.
Il est possible de neutraliser un lien en le préfixant avec le symbole ~
. Par exemple :
* ~HelloThere n'est pas un lien
* ~http://google.com/ n'est pas un lien
Affichera ceci :
- HelloThere n'est pas un lien
- http://google.com/ n'est pas un lien
Code HTML correspondant :
<ul><li>HelloThere n'est pas un lien</li><li>http://google.com/ n'est pas un lien</li></ul>
Liens externes
Pour inclure un lien vers une ressource Web externe comme un site ou un fichier, il est nécessaire de saisir son URL complète, en incluant son sigle URI, par exemple un protocole comme http://
, file://
ou mailto:
:
https://tiddlywiki.com/
[[TW5|https://tiddlywiki.com/languages/fr-FR/index.html]]
[[Envoyez-moi un courriel|mailto:moi@ici.net]]
[[Ouvrez le fichier|file:///c:/users/moi/index.html]]
Pour que cette syntaxe fonctionne, l'URL doit être reconnaissable en tant qu'URL. Dans le cas contraire elle est interprétée comme un titre de tiddler. Par conséquent, pour créer un lien vers une ressource localisée avec un chemin relatif, il faut utiliser la syntaxe étendue :
[ext[Ouvrir le fichier|index.html]]
[ext[Ouvrir le fichier|./index.html]]
[ext[Ouvrir le fichier|../README.md]]
[ext[Ouvrir le fichier|c:\users\moi\index.html]]
La syntaxe étendue fonctionne aussi avec les URL complètes, même si dans ce cas elle n'est pas nécessaire :
[ext[https://tiddlywiki.com/]]
[ext[TW5|https://tiddlywiki.com/languages/fr-FR/index.html]]
[ext[Envoyez-moi un courriel|mailto:moi@ici.net]]
[ext[Ouvrez le fichier|file:///c:/users/moi/index.html]]
Vous pouvez aussi utiliser la syntaxe étendue pour forcer l'interprétation en tant que lien externe :
[ext[Donnez|bitcoin:1aabbdd....?amount=0.001]]
Personnalisation des liens
Voir le LinkWidget pour plus de détails sur le widget sous-jacent utilisé pour implémenter les liens des tiddlers, et notamment les macros qui peuvent être utilisées pour personnaliser son comportement.
Génération de liens dynamiques
Les Liens en WikiTexte ne se prêtent pas bien à la création de liens dynamiques. C'est parce que ce lien WikiTexte :
[[lien vers moi-même|Linking in WikiText]]
est un raccourci qui utilise le LinkWidget et le TextWidget ainsi :
<$link to="Linking in WikiText">
<$text text="lien vers moi-même"/>
</$link>
Comme le titre du lien ("lien vers moi-même") et la cible du lien ("Linking in WikiText") sont utilisés en tant qu'attributs de widgets, aucune expansion de WikiTexte ne peut avoir lieu.
Par exemple, une tentative d'utilisation d'une référence et d'une variable pour générer un lien dynamique comme ceci :
⚠ Attention : Ne faites pas comme ça ! |
|
revient à essayer d'utiliser les widgets Lien et Texte ainsi :
⚠ Attention : Ne faites pas comme ça ! |
|
ce qui ne fonctionnera pas comme espéré. Le contenu des attributs est placé entre guillemets et donc traité comme une valeur littérale protégée contre l'expansion WikiTexte. Il sera donc affiché ainsi :
Afin d'obtenir l'effet désiré, le LinkWidget peut être utilisé explicitement ainsi :
<$link to=<<currentTiddler>>>{{!!mon_texte}}</$link>
Affichera ceci :
Autre exemple de construction dynamique de liens.
Liens internes aux tiddlers - « liens ancrés »
Dans TiddlyWiki les liens ancrés peuvent cibler des points particuliers et des sections distinctes à l'intérieur même de tiddlers, qui aident le lecteur à naviguer dans le contenu des tiddlers les plus longs.
Voir Anchor Links using HTML pour plus d'informations.