Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.nextPrev.buildOutline
on buildOutline (adrtable, adroutline) {
local (oldtarget = target.get ());
new (outlinetype, adroutline);
target.set (adroutline);
edit (adroutline);
local (dir = down);
on traverse (adrtable) {
local (s);
s = string (adrtable) + "." + html.getPref ("defaultFileName");
if firstline {
op.setLineText (s);
firstline = false}
else {
op.insert (s, dir)};
local (adrsubitem, i);
for i = 1 to sizeof (adrtable^) {
adrsubitem = @adrtable^ [i];
msg (adrsubitem);
if html.traversalSkip (adrsubitem) {
continue};
if nameOf (adrsubitem^) == html.getPref ("defaultFileName") {
continue};
if typeOf (adrsubitem^) == tableType {
traverse (adrsubitem)} <<recurse
else {
op.insert (adrsubitem, dir)};
rollBeachBall ()}};
local (firstline = true);
traverse (adrtable);
op.firstSummit ();
target.set (oldtarget);
return (true)};
bundle { <<test code
buildOutline (@user.websites.midas, @user.websites.midas.["#nextPrevs"])}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.