WaBis

walter.bislins.ch

Eigene Makros definieren

Makros : Eingebaute Makros | Eigene Makros definieren

Du kannst eigene Makros programmieren, die du dann verwenden kannst, wie eingebaute Makros:

Syntax der Makro-Definition

{{*Name|Text*}}
{{macro|Name|Text}}
Name
Name des zu erstellenden Makros. Achtung: Gross-/Kleinschreibung wird beachtet (z.B. Name und name sind zwei verschiedene Makros).
Text
Der eigentliche Körper des Makros, das Makro-Programm, wenn du so willst. Du kannst in Text sogar weitere Makros aufrufen!

Bei der ersten Form der Makro-Definition können in Text verschachtelte Makro-Aufrufe verwendet werden, während bei der zweiten Form zwar Makro-Aufrufe in Text verwendet werden können, aber nicht verschachtelt (keine Makros in Makros).

Makro-Aufruf

Selbst erstellte Makros rufst du auf wie eingebaute Makros:

{{Name|Argumente}}

Das Wiki erstetzt beim Darstellen der Seite dieses Makro durch den Text, den du bei der Makro-Definition eingegeben hast. Allenfalls werden rekursiv weitere Makro-Aufrufe in Text ebenfalls aufgelöst.

Argumente

An dein Makro kannst du natürlich auch Argumente übergeben, was sie erst sinnvoll macht. Im Makro-Text greifst du über $1, $2 usw. auf diese Argumente zu. In $0 ist der Name der aktuellen Seite enthalten.

Auf den Seitennamen kann in verschiedenen Varianten zugegriffen werden. Mit $00 werden Teile vor einem Doppelpunkt und in runden Klammern im Seitennamen weggefiltert. Mit $000 werden auch Dateierweiterungen (z.B. .jpg bei Bildern) weggefiltert:

Seitenname          $0                 $00            $000
---------------------------------------------------------------
Makro:include       Makro:include      include        include
Müller (Beruf)      Müller (Beruf)     Müller         Müller
Bild:DSC00123.jpg   Bild:DSC00123.jpg  DSC00123.jpg   DSC00123

Beispiel

Du möchtest eine Seite mit einer Bilder-Vorschau gestalten. Die Bilder sollen tabellarisch auf der Seite stehen, je 4 Bilder in einer Zeile. Beim Anklicken eines der Bilder soll auf die enstprechende Bild-Infoseite gesprungen werden. Wenn mit der Maus über das Bild gefahren wird, soll der Bild-Name eingeblendet werden (z.B.DSC0001). Dies erreichst du mit einer Tabelle in der folgenden Art:

{|
| [[Bild:DSC00001.jpg|DSC00001]]
| [[Bild:DSC00002.jpg|DSC00002]]
| [[Bild:DSC00003.jpg|DSC00003]]
| [[Bild:DSC00004.jpg|DSC00004]]
|}

Es steht also immer fast das Gleiche in jeder Zeile - ein Kandidat für ein eigenes Makro. Mit Hilfe dieses selbst definierten Makros «thumb» vereinfacht sich die Tabelle zu:

{{*thumb|[[Bild:$1.jpg|$1]]*}}

{|
| {{thumb|DSC00001}}
| {{thumb|DSC00002}}
| {{thumb|DSC00003}}
| {{thumb|DSC00004}}
|}

In der Tabelle stehen nun die Aufrufe deines selbst definierten Makros thumb. Als Argument übergibst du jeweils den Namen des Bildes, welches an der entsprechenden Stelle angezeigt werden soll.

Aus

{{thumb|DSC00001}}

wird

[[Bild:DSC00001.jpg|DSC00001]]

indem das Argument DSC00001 an den Positionen $1 eingesetzt wird.

User-Makros haben Priorität

Selbst definierte Makros haben Priorität vor den eingebauten Makros. Das bedeutet, dass du eingebaute Makros durch eigene ersetzen kannst, indem du ein Makro mit einem Namen definierst, der schon existiert.

Weitere Infos zur Seite
Erzeugt Montag, 3. Juli 2006
von wabis
Zum Seitenanfang
Geändert Samstag, 18. Juli 2015
von wabis