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

system.verbs.builtins.mainResponder.search.utilities.cleanText

on cleanText (s) {
	<<Prepare text to be indexed.
		<<Replace whitespace characters and punctuation with spaces.
		<<(Don't replace #, <, >, {, and } characters.)
		<<Then strip HTML tags and macros.
	<<Changes
		<<8/2/02; 5:18:49 PM by JES
			<<Use string.multipleReplaceAll, if available.
	
	if defined (string.multipleReplaceAll) {
		local (replchars = "\r\n\t.-\\/:?!;@$%^&*)([]");
		local (t); new (tableType, @t);
		local (i, ch, ct=sizeOf (replchars));
		for i = 1 to ct {
			t.[replchars[i]] = " "};
		s = string.multipleReplaceAll (s, @t)}
	else { //replace characters one at a time -- original behavior
		s = string.replaceAll (s, "\r", " ");
		s = string.replaceAll (s, "\n", " ");
		s = string.replaceAll (s, "\t", " ");
		s = string.replaceAll (s, ".", " ");
		s = string.replaceAll (s, "-", " ");
		s = string.replaceAll (s, "\\", " ");
		s = string.replaceAll (s, "/", " ");
		s = string.replaceAll (s, ":", " ");
		s = string.replaceAll (s, "?", " ");
		s = string.replaceAll (s, "!", " ");
		s = string.replaceAll (s, ";", " ");
		s = string.replaceAll (s, "@", " ");
		s = string.replaceAll (s, "$", " ");
		s = string.replaceAll (s, "%", " ");
		s = string.replaceAll (s, "^", " ");
		s = string.replaceAll (s, "&", " ");
		s = string.replaceAll (s, "*", " ");
		s = string.replaceAll (s, ")", " ");
		s = string.replaceAll (s, "(", " ");
		s = string.replaceAll (s, "[", " ");
		s = string.replaceAll (s, "]", " ")};
	
	s = searchEngine.stripMarkup (s); //strip HTML tags and macros
	
	if system.environment.isMac {
		s = latinToMac.convert (s)}; //convert Latin to Mac characters
	
	return (s)};

<<bundle //test code
	<<mainResponder.search.utilities.cleanText ("foo-bar's bim!")
		<<"foo bar's bim "



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.