
---+++ "Where Am I?" (WAI) 0.01

I installed GraphViz, but never got WebDot to work no matter how
hard I tried... then I saw the Perl GraphViz module and decided
it would be ten times easier to write my onw than to try to get
WebDot to work (I'm a Perl programmer, not a Unix admin :).

...Anyway, after a few hours of hacking I cam up with WAI.  It is
far from a "finished" product, but it works, and if you don't mind
doing some hacking you should be able to get it to work as well
or use it as a starting place to continue the work.

---+++  What Is It?

In short it takes a web and topic name, then draws a clickable
SVG map starting from the specified topic and going out two levels.
I call it "Where Am I?" because that is how I show the link to it
on my wiki.

---+++ The Files

README.txt - this file.
map.svg - A Perl script secretly disguised as an SVG file (Apache doesn't care).
WebView.txt - A topic to display map based on params.

---+++ Details

I have it taking a web name and a topic name as input.  It then
scans the specified web and creates a hash of all page links.
It skips certain pages like the WebIndex and WebTopic list since
I didn't want these to be included in the map since they link
to every page which dillutes the usefulness of the map.

It then uses the Perl GraphVis mod to build the SVG map, then does
some post-processing to add the links.

From the view template I add a "Where Am I?" link using the
following TWiki syntax...

%SCRIPTURLPATH%
/view%SCRIPTSUFFIX%/%WEB%/WebView?web=%WEB%&topicname=%TOPIC%

The target WebVeiw (also in this zip) uses the passed parameters
to display the SVG map.  I have also used the syntax in the
WebView page on other pages to embed a topic list within a twiki
topic.

The SVG map works in IE (I think Netscape too) using the Adobe
SVG plugin.  I haven't gotten it to work in Mozilla yet, but
I haven't tried too hard either yet.

---+++ Last Thoughts

If you do make something out of it I would appreciate it if you
could send me a mail with whatever you come up with.  And if you
need more info or have questions about the code, just ask.

Cheers.

Rob Hanson
rhanson@blast.net
