Makros definieren
Für die Ungeduldigen
Makros sind Text Bausteine, die an beliebiger Stelle aufgerufen / eingefügt werden können. Eine Makro Definition kann zum Beispiel so aussehen und muss am Anfang eines Tiddlers eingefügt werden:
\define meinErstesMakro(name:"Bugs Bunny",adresse:"Rabbit Hole Hill")
Hallo, Ich bin $name$ und lebe in $adresse$
\end
Der Aufruf erfolgt mit:
Es erzeugt folgenden Text: ''<<meinErstesMakro>>''
Es erzeugt folgenden Text: Hallo, Ich bin Bugs Bunny und lebe in Rabbit Hole Hill
Was genau passiert hier?
Die erste Zeile der Definition startet mit: \define
und enthält:
- Den Makro Namen:
meinErstesMakro
- Die Parameter Namen:
name
und adresse
- Die Standard Werte:
Bugs Bunny
und Rabbit Hole Hill
Parameter sollten immer sinnvolle Standard Werte haben, da es die Verwendung erleichtert.
Die letzte Zeile des Makros ist \end
und markiert das Ende eines Makros :)
Der Bereich zwischen \define
und \end
wird als Makro Code bezeichnet. In diesem Bereich können die Makro Parameter mit $name$
bzw $adresse$
als Platzhalter verwendet werden.
Wie im Beispiel ersichtlich: Hallo, Ich bin $name$ und lebe in $adresse$
Einzeilige Makros
Für einzeilige Makros kann die \end
Markierung entfallen!
\define meinZweitesMakro(name:"Bugs Bunny") Hallo, Ich bin $name$
Makro Regeln
- Makro Definitionen müssen am Anfang des Tiddlers eingefügt werden.
- Makros sind nur in dem Tiddler sichtbar der sie definiert.
- Tiddler die mit Transklusion eingefügt werden können definierte Makros sehen, jedoch nicht selber mitbringen!
Globale Makros
- Globale Makros können in Tiddlern definiert werden, die mit dem System Tag: $:/tags/Macro getaggt sind. Diese Makros sind in jedem Tiddler sichtbar.
- JavaScript Macros sind global sichtbar und haben Zugriff auf die TW Kern Funktionen.
- Makros können mit dem ImportVariablesWidget importiert werden. (Für geübte Anwender)
Makros verwenden
<<meinErstesMakro>>
<<meinErstesMakro "Donald Duck">>
<<meinErstesMakro "Mickey Mouse" "Mouse House">>
Dargestellt als:
Hallo, Ich bin Bugs Bunny und lebe in Rabbit Hole Hill
Hallo, Ich bin Donald Duck und lebe in Rabbit Hole Hill
Hallo, Ich bin Mickey Mouse und lebe in Mouse House
Wie wir sehen können, werden die Parameter in der Reihenfolge übernommen, in der sie definiert wurden: name
, adresse
. Da Makros jedoch viele Parameter haben können und es passieren kann, dass wir nur den Zweiten ändern möchten können Parameter auch benannt übergeben werden.
<<meinZweitesMakro adresse:"Dufftown">>
Hallo, Ich bin Mario und würde gerne mal wieder nach Dufftown fahren:)
Mehrzeilige Parameter beim Aufruf
Makros können mit mehrzeiligen Parametern aufgerufen werden, wenn sie in Anführungsstriche gesetzt werden:
<<meinErstesMakro "Mickey Mouse" "Mouse House,
Mouse Lane,
Rodentville,
Ratland.">>
Wenn Sie 3 doppelte Anführungszeichen verwenden, dann können die Parameter einfache Anführungszeichen enthalten:
<<meinErstesMakro "Mickey Mouse" """Mouse House,
"Mouse" Lane,
Rodentville,
Ratland.""">>