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

on viewHelpPage () {
		<<11/14/01; 3:19:27 PM by DW
	local (pta = html.getpagetableaddress ());
	<<scratchpad.params = pta^
	local (topic);
	if defined (pta^.radioresponder.getargs.topic) {
		topic = pta^.radioresponder.getargs.topic}
	else {
		topic = "Index"};
	local (t);
	new (tabletype, @t);
	t.topic = topic;
	pta^.title = radio.string.getlocalizedstring ("help.title", @t);
	local (helptext);
	local (adroutline =[topic]);
	if defined (adroutline^) {
		local (adrcache =;
		if not defined (adrcache^) {
			new (tabletype, adrcache)};
		local (adrincache = @adrcache^.[topic]);
		local (flusecache = false);
		if defined (adrincache^) {
			if timeModified (adrincache) >= timeModified (adroutline) {
				flusecache = true}};
		if flusecache {
			helptext = adrincache^}
		else {
			local (outlinecopy = adroutline^);
			local (oldtarget = target.set (@outlinecopy));
			helptext = pikeRenderer.theRenderer (@outlinecopy);
			target.set (oldtarget);
			wp.newtextobject (helptext, adrincache)}}
	else {
		helptext = radio.string.getlocalizedstring ("help.noHelpAvailable", @t)};
	return (helptext)};
bundle { //test code
	html.setpagetableaddress (@scratchpad.params);
	viewHelpPage ()}

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.