Une macro est un bout de texte auquel on donne un nom. Le WikiTexte utilise ce nom comme raccourci pour transclure le bout de texte. Ces transclusions particulières s'appellent des appels de macro, et chaque appel peut transmettre un ensemble différent d'arguments, qui se substituent à leur emplacement dans le bout de texte.
Pour une description de la syntaxe, voir Macros en WikiTexte.
La plupart des macros sont en fait des variables paramétrées.
Elles sont définies en utilisant le pragma \define
. (En coulisses, cette syntaxe est transformé en Widget set, donc les macros et les variables sont bien les deux faces de la même pièce.)
Le bout de texte et ses arguments sont traités comme de simple chaînes de caractères, sans interprétation du WikiTexte, au moins jusqu'à ce que le dernier emplacement ait été rempli et que l'appel de macro soit terminé. Cela signifie qu'une macro peut assembler et renvoyer la syntaxe complète d'un composant WikiTexte, comme un lien par exemple. (Voir Transclusion et substitution pour une discussion plus approfondie sur ce sujet.)
A l'intérieur d'un bout de texte lui-même, le seul balisage détecté est $nom$
(un emplacement pour le paramètre nom
qui sera substitué par l'argument correspondant reçu au moment d'un appel de macro) et $(nom)$
(un emplacement pour une variable).
La macro dumpvariables
liste toutes les variables (y-compris les macros) qui sont disponibles à cet endroit de l'arborescence des widgets.
Un widget $importvariables
peut être utilisé pour copier une définition de macro vers une autre branche de l'arbre des widgets. TiddlyWiki utilise cette technique en interne pour implémenter des macros globales – c'est-à-dire des macros définies dans des tiddlers étiquetés $:/tags/Macro
. (Le tag $:/tags/Macro/View
est quant à lui utilisé pour définir des macros qui ne doivent être disponibles que dans le modèle de vue principal et le panneau de prévisualisation.)
Pour un maximum de flexibilité, les macros peuvent aussi être écrites en tant que modules JavaScript.
Un effet similaire à l'utilisation de macros paramétrées peut être obtenu en encadrant une transclusion par une définition de variables.
TiddlyWiki intègre plusieurs macros dans son cœur.