diff -r 902822492a68 -r fe660c52c48f includes/wikiengine/Parse/Default/Prefilter.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/includes/wikiengine/Parse/Default/Prefilter.php Wed Jun 13 16:07:17 2007 -0400 @@ -0,0 +1,78 @@ + +* +* @license LGPL +* +* @version $Id: Prefilter.php,v 1.3 2005/02/23 17:38:29 pmjones Exp $ +* +*/ + +/** +* +* "Pre-filter" the source text. +* +* Convert DOS and Mac line endings to Unix, concat lines ending in a +* backslash \ with the next line, convert tabs to 4-spaces, add newlines +* to the top and end of the source text, compress 3 or more newlines to +* 2 newlines. +* +* @category Text +* +* @package Text_Wiki +* +* @author Paul M. Jones +* +*/ + +class Text_Wiki_Parse_Prefilter extends Text_Wiki_Parse { + + + /** + * + * Simple parsing method. + * + * @access public + * + */ + + function parse() + { + // convert DOS line endings + $this->wiki->source = str_replace("\r\n", "\n", + $this->wiki->source); + + // convert Macintosh line endings + $this->wiki->source = str_replace("\r", "\n", + $this->wiki->source); + + // concat lines ending in a backslash + $this->wiki->source = str_replace("\\\n", "", + $this->wiki->source); + + // convert tabs to four-spaces + $this->wiki->source = str_replace("\t", " ", + $this->wiki->source); + + // add extra newlines at the top and end; this + // seems to help many rules. + $this->wiki->source = "\n" . $this->wiki->source . "\n\n"; + + // finally, compress all instances of 3 or more newlines + // down to two newlines. + $find = "/\n{3,}/m"; + $replace = "\n\n"; + $this->wiki->source = preg_replace($find, $replace, + $this->wiki->source); + } + +} +?> \ No newline at end of file