Website Sitemap Baumstruktur visualisieren
mapr
- projektverwaltung
Hallo,
ich muss eine relativ komplexe Website in Abhängigkeit eines beliebigen Einstiegpunktes (URI) hierachisch strukturieren, z.b. als Baumstruktur.
Meines Erachtens ist das eigentlich gar nicht so richtig gut möglich, weil in einem Hypertextsystem ja alles mit allem verknüpft ist irgendwie. Gut, es gibt die Homepage, die man als Level 1 bezeichnen könnte. Aller Verlinkungen, die sich dort finden, sind Level 2. Alle Verlinkungen, die sich nur auf Level 2 befinden, aber nicht auf Level 1, könnte man als Level 3 bezeichnen.
Wie wäre hier Eure Herangehensweise?
Hello,
Hallo,
ich muss eine relativ komplexe Website in Abhängigkeit eines beliebigen Einstiegpunktes (URI) hierachisch strukturieren, z.b. als Baumstruktur.Meines Erachtens ist das eigentlich gar nicht so richtig gut möglich, weil in einem Hypertextsystem ja alles mit allem verknüpft ist irgendwie. Gut, es gibt die Homepage, die man als Level 1 bezeichnen könnte. Aller Verlinkungen, die sich dort finden, sind Level 2. Alle Verlinkungen, die sich nur auf Level 2 befinden, aber nicht auf Level 1, könnte man als Level 3 bezeichnen.
Wie wäre hier Eure Herangehensweise?
Mittels einer Baumstruktur :-)
Es gibt "Vorwärtslinks" und "Rückwärtslinks"
Vorwärtslinks zeigen immer von einer bereits in der baumstruktur eingetragenen Seite auf eine Seite, die noch nicht in der Baumstruktur eingetragen war. Rückwärtslinks zeigen von einer bereits eingetragenen Seite auf eine bereits eingetragene Seite, werden daher entsprechend gekennzeichnet (Zirkulärer Verlauf) und bei der Auswertung des Baumes erstmal unberücksichtigt gelassen.
Wenn man nun alle Seiten rekursiv oder in "Leveln" abklappert, erhält man alle verlinkten Seiten.
Zu beachten ist, dass das nur klappt, wenn nicht JavaScript, Form-Actions und sonstige Scherzchen zusätzlich benutzt werden.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
hi,
Meines Erachtens ist das eigentlich gar nicht so richtig gut möglich, weil in einem Hypertextsystem ja alles mit allem verknüpft ist irgendwie.
Genau hier wäre der Ansatz: Nicht irgendwo verknüpfen, sondern über eine maschinenlesbare Projektverwaltung. Was dazu in Frage kommt: Adjacency List Model versus Nested Sets.
Gut, es gibt die Homepage, die man als Level 1 bezeichnen könnte. Aller Verlinkungen, die sich dort finden, sind Level 2. Alle Verlinkungen, die sich nur auf Level 2 befinden, aber nicht auf Level 1, könnte man als Level 3 bezeichnen.
Genau.
Wie wäre hier Eure Herangehensweise?
Ich habe mich für ein vereinfachtes Adjacency List Model entschieden. Vereinfacht heißt, dass sämtliche Webressourcen in meinem Framework einen parent haben, wobei parent nur eines der Attribute ist für Webressourcen, die jeweils einen eindeutigen URL bekommen. Somit liegt meine Projektverwaltung maschinenlesbar in Form einer Routing-Table vor. Letztere hat einen statischen und einen dynamischen Teil. Der statische Teil beinhaltet die virtuellen Ordner (URLs), welche darunterliegende Anwendungen oder Dokumente als Attribut parent bekommen. Beispielsweise stelle ich ein neues Dokument ein und konfiguriere die Attribute:
<!-- title=High Performance URL Routing -->
<!-- descr=Die Routing Table ist als Binary direkt in ein Perl-Modul kompiliert und wird mit require eingebunden -->
<!-- parent=/notes -->
<!-- no_cache=1 -->
Attribute parent siehe oben. Der parent selbst ist ein virtueller Ordner, konfiguriert in der statischen Routing-Table:
[/notes]
title=Notizen eines Webprogrammierers
descr=Eigene Entwicklungen und Gedanken über das, was Andere so machen
parent=/blog
isa=folder
class=Folder
short=Notizen
In Summa hat jede Webressource (URL) eine Liste von Attributen, wobei allein mit dem parent-Attribut eine Hierarchie dargestellt werden kann. Für eine solche Darstellung wird die gesamte URL-Map einmal durchlaufen, womit sich die Childs als Liste ergeben.
Horst