['; print_r($par); echo ']';
$par = ParseArgs($par);
$par = $par[''];
# if(!$par[1]) return '';
## Retrieve page text.
$page = ReadPage(MakePageName($pagename,$par[0]));
$page = $page['text'];
## Compress whitespaces.
$page = preg_replace( '/\s+/', ' ', $page );
## Find searched term.
$term = preg_replace(
array( '/[^\\w\\x80-\\xff]+/', '/\s+/' ),
array( ' ', '[^\\w\\x80-\\xff]+' ),
html_entity_decode( trim( $par[1] ) ) );
# Case-insensitive search (stripos() is available only since PHP 5.0)
# Unfortunately, UTF-8 is still case-sensitive.
$matches = array();
$i = preg_match( "/(.{0,$ExcerptSideWidth})($term)(.{0,$ExcerptSideWidth})/i", $page, $matches );
if($i===0) return '';
return Keep( '...'.PHSC($matches[1]).''.
PHSC($matches[2]).''.
PHSC($matches[3]).'...');
}
###########
## A list of page excerpts.
###########
Markup('excerpts','['; print_r($par); echo ']';
$par=ParseArgs($par);
$par=$par[''];
$page=$par[0];
$res=array_filter(array_slice($par,1),
'ExcerptsFilter');
if(!$res) return '';
# array_walk($res,create_function('$t,$k,$p','$t="(:excerpt $p $t:)";'),$page);
$pre="(:excerpt $page '";
$post="':)";
return $pre . implode( $post.Keep('
').$pre, $res ) . $post;
}
function ExcerptsFilter($x) {
return !ctype_space($x);
}