Die Struktur des Menus wird aus einer Verzeichnis-Definition ausgelsen, die in irgendeiner Seite (unsichtbar) abgelegt sein kann. Dies kann die Startseite eines Themas oder ein Inhaltsverzeichnis sein. In welcher Seite die Verzeichnis-Definition abgelegt ist, muss mit dem Argument DirPage angegeben werden. Dadurch können in ein und demselben Wiki beliebig viele Verzeichnisse definiert werden, zum Beispiel je eines für ein Thema.
{{MainMenu|DirPage|Root|Select}}
Hinweis: Dieses Makro ist eine Kombination von DirPage und MainDir.
Eine Verzeichnis-Definition kann beliebig gross und verschachtelt sein. Meist ist aber der Platz für ein Menu am Seitenrand recht beschränkt und es ist nicht praktisch, immer das vollständige Verzeichnis dort anzuzeigen. Daher gibt es zwei Möglichkeiten, einen Verzeichnis-Ausschnitt für die Menu-Darstellung zu wählen:
Wenn als Argument Root ein Eintrag der Verzeichnis-Definition angegeben wird, so wird dieser als oberster Menüeintrag verwendet und es werden nur dessen Untereinträge im Menu aufgelistet.
Wenn als Argument Root #n angegeben wird, wobei n eine ganze Zahl ist, wird die Wurzel automatisch so ausgewählt, dass die Verschachtelungstiefe des Menus n nicht überschreitet.
Ein Menu wird einfach durch eine verschachtelte Liste von Wiki-Links definiert, welche zwischen den Makros {{data}} und {{end data}} auf einer beliebigen Seite stehen muss:
{{data|dir}} {{DirParent|Seite mit übergeordnetem Verzeichnis}} * [[Erster Eintrag]] ** [[Unter-Eintrag]] * [[Zweiter Eintrag]] {{end data|dir}}
Die Zeile {{DirParent|...}} ist optional. Wenn das aktuelle Verzeichnis ein Teil eines grösseren Verzeichnisses ist, welches in einer anderen Seite definiert ist, so kann diese andere Seite über dieses Makro eingebunden werden. Das resultierende Verzeichnis ist dann eine Kombination der Verzeichnisse.
Wenn die Menu-Definition in der Seite Inhaltsverzeichnis gespeichert ist, kann mit folgendem Eintrag in Spezial:CommonDefs erreicht werden, dass für alle aufgeführten Seiten automatisch das Menu an der richitgen Stelle geöffnet eingeblendet wird:
{{*MM|{{MainMenu|Inhaltsverzeichnis|#3|$1}}*}} {{MM}}
Mit #3 wird erreicht, dass maximal 3 Levels eingerückt wird im Menu. Hat das Menu mehr Levels, so wird nur der aktuelle Ausschnitt des ganzen Menus dargestellt. Soll ein bestimmter Eintrag im Menu selektiert werden, weil zum Beispiel die aktuelle Seite nicht im Verzeichnis steht, so kann dies mit folgendem Aufruf auf der aktuellen Seite gemacht werden:
{{MM|Zu selektierender Eintrag}}
Die folgenden Makros können für die Ausgabe von Verzeichnissen verwendet werden:
Dir | Verzeichnis oder Teil davon mit allen Subelementen auflisten. |
DirCol2 | Wie Dir aber Liste in zwei Spalten darstellen. |
DirFrom | Verwende diese Variante statt Dir, wenn du explizit die Seite mit dem Inhaltsverzeichnis angeben willst oder must. |
SubDir | Verzeichnis oder Teil davon auflisten, wobei nur ein ausgewählter Ast mit seinen Subelementen aufgelistet wird. Ein ausgewähltes Subelement kann markiert werden. |
SubDirFrom | Verwende diese Variante statt SubDir, wenn du die Seite mit dem Inhaltsverzeichnis angeben willst oder must. |
MainDir | Wie SubDir, listet jedoch das Verzeichnis am Seitenrand auf. |
MainMenu | Wie SubDirFrom, listet jedoch das Verzeichnis am Seitenrand auf. |