Das Wiki stellt einen Mechanismus zur Verfügung, mit dem ein Wiki in mehrere Teile gegliedert werden kann. Um dem Anwender bei jeder Seite anzuzeigen, zu welchem Bereich die Seite gehört, kann man einen Pfad der folgenden Art irgendwo auf der Seite anzeigen:
Home > Wiki 1 > Bereich 2 > Aktuelle Seite
Diese Anzeige muss der Webmaster beim Erstellen des Web-Layouts erzeugen. Die Texte werden jedoch vom Wiki gespeichert (auch im Cache) und können von den Layout-Funktionen aus diesem Speicher abgerufen werden.
Das Makro NavLink ermöglicht das Hinzufügen eines Link-Eintrages in diesen Speicher. Die Seite Aktuelle Seite müsste folgenden Aufruf des Makros NavLink irgendwo auf der Seite haben:
{{NavLink|Infos zum Bereich|Bereich 2}}
{{NavLink|PageName|ShortText}}
Angenommen das Layout-Script zeigt im Header einen Pfad an wie oben angezeigt. Dieser Pfad setzt sich zusammen aus einem Home-Link, gefolgt von einem Link zur Startseite eines bestimmten Wikis (Wiki 1). Zuletzt wird der Name der aktuellen Seite angezeigt. Dazwischen können nun noch Links zu Startseiten von bestimmten Bereichen im Wiki 1 platziert werden. Diese Links werden mit dem Makro NavLink auf den jeweiligen Seiten definiert. Die Daten werden im Wiki-Speicher AppliNavLinkItems abgespeichert, zu denen es Programmier-Schnittstellen für das Layout-Script gibt.
Das Layout-Script kann mit folgender Funktion einen Eintrag im Wiki abspeichern:
AddNavLinkItem aLink, aText, aShortText
Das Makro NavLink erstellt aus dem Argument PageName einen HTML-Link zur Seite und ruft obige Funktion zum Speichern der Daten wiefolgt auf:
MakeHtmlLink PageName, HtmlLink if ShortText = "" then ShortText = PageName AddNavLinkItem HtmlLink, PageName, ShortText
Das Layout-Script kann nun die so gespeicherten Daten abrufen und eine Pfad-Darstellung daraus generieren:
Writeln "<a href=""../index.asp"">Home</a> > " Writeln "<a href=""index.asp"">Wiki 1</a> > " if NavLinkSize() > 0 then for i = 0 to NavLinkSize()-1 Writeln "<a href=""" & NavLinkUrl(i) & """>" & _ EncHtmlTags(NavLinkShortText(i)) & "</a> > " next end if Writeln "<b>" & PageName & "</b>"
Beachte: Damit HTML-Tags in PageName und ShortText als solche angezeigt und nicht ausgeführt werden, müssen diese Texte mit der Funktion EncHtmlTags() bei der Ausgabe codiert werden.
Das Wiki sorgt selbst dafür, dass die mit dem Makro NavLink gespeicherten Einträge im Seiten-Cache landen und rechtzeitig wieder von dort geladen werden.
Für das Abrufen der gespeicherten Daten stehen dem Layout-Script die folgenden Funktionen im Wiki zur Verfügung:
NavLinkSize() NavLinkUrl( i ) NavLinkText( i ) NavLinkShortText( i )