Monday, November 08, 2010 at 12:03 AM.


on findAllHREFs (adrtable, adroutline) {
	on visit (adrobject) {
		local (type = typeof (adrobject^));
		if (type != tableType) and (type != stringtype) {
			local (s = string (adrobject^));
			if string.lower (s) contains "<a href" {
				op.insert (adrobject, down);
				local (dir = right);
				loop {
					local (ct, ix = string.patternmatch ("<a href", string.lower (s)));
					if ix == 0 {
						if dir == down {
							op.go (left, 1)};
					s = string.delete (s, 1, ix - 1);
					ct = string.patternmatch ("</a>", string.lower (s)) + 3;
					href = string.mid (s, 1, ct);
					s = string.delete (s, 1, ct);
					op.insert (href, dir);
					dir = down}}}};
	new (outlinetype, adroutline);
	edit (adroutline);
	target.set (adroutline);
	table.visit (adrtable, @visit);
	editmenu.setfont ("geneva");
	editmenu.setfontsize (9);
	op.firstsummit ();
	op.deleteline ();
	window.zoom (adroutline)};
findAllHREFs (, @scratchpad.urllist)

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.