*
* @license LGPL
*
* @version $Id: Code.php,v 1.11 2007/06/09 23:11:25 justinpatrin Exp $
*
*/
/**
*
* Parses for text marked as a code example block.
*
* This class implements a Text_Wiki_Parse to find sections marked as code
* examples. Blocks are marked as the string on a line by itself,
* followed by the inline code example, and terminated with the string
*
on a line by itself. The code example is run through the
* native PHP highlight_string() function to colorize it, then surrounded
* with
...tags when rendered as XHTML. * * @category Text * * @package Text_Wiki * * @author Paul M. Jones
)\n(.+)\n(\<\/code\>)(\s|$)/Umsi';*/
var $regex = ';^]*)?>((?:(?R)|.*?)*)\n
(\s|$);msi';
/**
*
* Generates a token entry for the matched text. Token options are:
*
* 'text' => The full matched text, not including the
tags.
*
* @access public
*
* @param array &$matches The array of matches from parse().
*
* @return A delimited token number to be used as a placeholder in
* the source text.
*
*/
function process(&$matches)
{
// are there additional attribute arguments?
$args = trim($matches[1]);
if ($args == '') {
$options = array(
'text' => $matches[2],
'attr' => array('type' => '')
);
} else {
// get the attributes...
$attr = $this->getAttrs($args);
// ... and make sure we have a 'type'
if ( ! isset($attr['type'])) {
$attr['type'] = '';
}
// retain the options
$options = array(
'text' => $matches[2],
'attr' => $attr
);
}
return $this->wiki->addToken($this->rule, $options) . $matches[3];
}
}
?>