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

on inWebsite (adrObject) {
	<<Return true if the object is in the content part of a website, false otherwise.
		<<It must not start with a # sign or have a # sign in its address.
		<<There must be an #ftpSite table above it, somewhere.
	on findFtpSite (adrTable) {
		<<Find the #ftpSite for this object.
		local (nomad = adrObject);
		if typeOf (nomad^) != tableType {
			nomad = parentOf (nomad^)};
		on checkTable (adrTable) {
			<<Check one table for the existence an #ftpSite table.
			if defined (adrTable^.["#ftpSite"]) {
				return (true)};
			if defined (adrTable^.["#prefs"].ftpSite) {
				return (true)};
			if defined (adrTable^.["#prefs"].["#ftpSite"]) {
				return (true)};
			return (false)};
		loop {
			if nomad == @root or nomad == nil {
				return (false)};
			if html.traversalSkip (nomad) {
				return (false)};
			if checkTable (nomad) {
				return (true)};
			nomad = parentOf (nomad^)}};
	if findFtpSite (adrObject) {
		return (true)};
	return (false)}

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.