Navigation mit Hilfe des Link-Tags
Wolfgang Wiese (www.xwolf.de, xwolf@xwolf.de), 15.03.2002Einführung
Mit der Version 0.9.5 des Browsers Mozilla werden die Möglichkeiten
aus dem HTML-Tag <link>
einer etwas breiteren Öffentlichkeit deutlich; Bisher wurde dieser Tag
von den bekannten Browsern Netscape, Internet Explorer und Mozilla nur in
Bezug auf die Einbindung von Stylesheet-Dateien und der Dokumentdefinition
genutzt. Lediglich die
Browser iCab (Mac), Mosaic und der Textbrowser Lynx zeigten bisher weitere
Attribute an.
Im Gegensatz zu iCab und Lynx unterstützt Mozilla jedoch alle definierten
Attribute und nicht nur die, welche allgemeine Seiteinformationen enthalten.
Dieser Artikel zeigt die Hintergründe und Anwendungsbeispiele für
de Navigation mit <link>, oder genauer gesagt mit <link rel="*">.
Logische Dateibeziehungen mit <link rel="*">
Grundsätzlich dient <link rel="*"> dazu, die logischen Beziehungen
des
aktuellen Dokumentes zu anderen Dokumenten und Objekten zu definieren.
So kann definiert werden, welche Seiten zum selben Thema gehören,
welche Seite als nächstes oder welche Seite zuvor aufgerufen werden sollte.
Im Prinzip handelt es sich dabei um eine eigenständigen
Navigation über mehrere Seiten hinweg, wie man sie normalerweise
über normale Links anbietet.
Definiert werden somit Links
- auf einen Index,
- auf die erste und die letzte Seite,
- auf die vorherige und die nächste Seite,
- auf andere Kapitel,
- auf allgemeine Seiten wie Copyright und Hilfe,
- sowie diverse andere Seiten.
Mögliche Attribute
Die folgende Übersicht zeigt die vorhandenen Typen des Link-Attributes "rel", mit dessen Hilfe eine Navigation möglich ist.
-
Typ Bedeutung contents Beschreibt den Inhalt einer Datei chapter Definiert ein Kapitel section Definiert ein Abschnitt subsection Definiert einen Unterabschnitt appendix Definiert den Anhang index Verweis zum Stichwort- oder Dateiverzeichnis glossary Definiert den Glossar copyright Angabe des Copyrights, bzw. eines Links dahin next Nächste Seite prev Vorherige Seite last Letzte Seite first oder start Erste Seite up Verweist auf eine übergeordnete Seite. Zum Beispiel, wenn man in einem Unterabschnitt ist. start (oder top) Wie "first": Die erste Seite help Verweist auf die Hilfe bookmark Allgemeiner Lesezeichen alternate Alternative Seite, z.B. bei anderen Sprachversionen, oder alten Versionen der selben Seite.
Jeder dieser Angaben muss zusätzlich verbunden werden mit der Angabe eines Inhaltes "content" oder eines Verweises "href". Wird "href" benutzt, ist es möglich, zusätzlich den Attribut "title" anzugeben, um das Ziel genauer zu bezeichnen.
Folgendermaßen kann dies aussehen:
<link rel="first" title="Alphabetischer Seitenindex" href="http://www.xwolf.de/toc.shtml"> <link rel="prev" title="Seitenindex" href="http://www.xwolf.de/seitenindex.shtml"> <link rel="next" title="Über XWolf" href="http://www.xwolf.de/xwolf.shtml"> <link rel="bookmark" href="http://www.xwolf.de/"> <link rel="copyright" href="http://www.xwolf.de/impressum.shtml"> <link rel="help" href="http://www.xwolf.de/xwolf.shtml"> <link rel="index" href="http://www.xwolf.de/seitenindex.shtml"> <link rel="made" href="mailto:webmaster@xwolf.de"> <link rel="search" href="http://www.xwolf.de/suchen.shtml"> <link rel="toc" href="http://www.xwolf.de/toc.shtml">
Eine genauere Beschreibung des <link>-Tags findet sich in
dem HTML-Kompendium von Stefan Münz.
Eine Reihe von aufeinander aufbauenden Beispielen finden sich hier:
- Beispiel 1 - Allgemeine Typen
- Beispiel 2 - Einfach Linknavigation
- Beispiel 3 - Linknavigation zuzüglich Kapitel- und Abschnittsdefinitionen
Warum das alles?
Wozu sollte man eigentlich diese Art der Navigation verwenden? Bisher
kam man ja auch ganz gut ohne aus und wenn man ehrlich ist, ist die
Hauptanwendung
dieser Navigation in Seiten, die wie ein Buch oder ein Skript mit Kapiteln und
Unterkapiteln geschrieben wurden.
Eine Antwort ist: Was nicht schlecht ist, macht ihre Webseite nur besser!
Und nebenbei könnte man -wenn man mutig genug ist- die gesamte Sitenavigation
über <link> machen.
Doch wenn man es nicht gesehen hat, glaubt man es nicht. Deswegen hier ein paar Bilder.
- Ansicht der obigen beispiele unter iCab:
- Ansicht der Artikelseite mit Mozilla
- Ansicht der Testseite mit dem Uralt-Browser Mosaic 3.0
Dynamische Linknavigation
Natürlich könnte man jetzt im Kopfteil jedes Webdokuments die
<Link>-Tags manuell reintun.
Aber wer mich kennt, weiß, daß ich gegenüber stupiden, wiederkehrenden
Aufgaben gegenüber recht faul bin.
Was liegt da näher, als ein Skript zu schreiben, welches die Tags automatisch
und passend zur jeweiligen Seite dynamisch einsetzt?
Als Grundlage wird ja lediglich ein Index für die gesamte Website benötnigt,
die alle Webseiten enthält und definiert, welche Seite innerhalb welchen
Kontextes steht. (Wobei man damit auch ganz nebenbei gleich eine "Sitemap" hat.)
Um es einfach zu halten, hab ich es erstmal in einer einfachen Textdatei gemacht, die ein recht simples Format besitzt:
... 0-A1-B1 Startseite XWolf Portal 0-A1-B1-URL http://www.xwolf.de/index.shtml 0-A1-B2 Neues auf XWolf 0-A1-B2-URL http://www.xwolf.de/news/index.shtml 0-A1-B2-C1 Archiv 0-A1-B2-C1-URL http://www.xwolf.de/news/archiv.shtml 0-A1-B3 Über XWolf 0-A1-B3-URL http://www.xwolf.de/xwolf.shtml ...
In der ersten Spalte wird die Hirachieebene des Dokumentes definiert. Danach folgt entweder ein "-URL" zur Kenntzeichnung des Links, oder aber der Titel für die Seite. Die Bezeichnungen A1, B1, usw. sind dabei willkürlich gewählt. Ich trenne da nur nach dem Bindestrich. Ebenfalls irrelevant ist die Reihenfolge der Einträge, da später ohnehin nach dem Alphabet sortiert wird.
Diese Datei wird bei jeden Aufruf einer Seite eingelesen. Desweiteren wird aus
dem Environment die aktuelle URL ermittelt. Somit weiß das Skript,
auf welcher Seite man derzeit ist, und in welchem Kontext es innerhalb
des Indizes steht.
Dies ist alles was braucht um die logische Nachbarbeziehungen
zu erstellen: Welche Seite ist die nächste, welches ist die
vorherige, innerhalb welcher Ebene befinden wir uns, usw.
Eingebunden wird das Skript wie folgt im Kopfteil:
<head>
<title>XWolf CGI & Webworking: Navigation mit Hilfe des Link-Tags</title>
<!--#include virtual="/cgi-bin/linknav.pl/head" -->
</head>
Der Skript selbst heißt linknav.pl. "/head" ist ein Parameter, welches ich
mit übergebe, um dem Skript mitzuteilen, es soll nur die Kopfteil-Informationen ausgeben.
Weitere Parameter sind "/index" und "toc", wobei ersteres den Seitenindex (Sitemap) generiert und letzteren
den alphabetischen Index aller Seiten. Schauen Sie es sich mal an:
Wie man sieht, kann man die <Link>-Navigation sehr gut einsetzen, um
seine Seiten zu strukturieren und eine alternative Navigation anzubieten.
Es bleibt jetzt nur noch zu hoffen, daß auch der MSIE diesen Tag endlich
umsetzt. Anzeichen dafür sind bereits in der 5er und der 6er Version
enthalten.
Zeit werden würde es ja. Die <Link>-Navigation ist ein sehr alter Bestandteil
von HTML. Man bedenke ja nur, daß selbst Mosaic diese Tags bereits rudimentär
unterstützte.
Das Skript linknav.pl
Es handelt sich beim Skript um ein einfaches
Perlskript, welches nur unwesentlich
an die lokale Konfiguration angepasst werden muss: Es muß lediglich in der
ersten Zeile der Perlpfad geändert werden, wenn diese bei Ihnen anderes
lautet.
Etwaige Einstellungen werden in der Textdatei
linknav.conf
vorgenommen.
Info
$Id: linknav.shtml,v 1.3 2004/03/08 22:09:09 xwolf Exp $
© 1996 - 2004 by xwolf -
xwolf ist eingetragene Marke beim Deutschen Patent- und Markenamt (Nr. 301 04 380)


