diff -r f0431eb8161e -r 98c052fc3337 includes/wikiengine/Parse/Default/Toc.php --- a/includes/wikiengine/Parse/Default/Toc.php Sun Jun 21 00:16:21 2009 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ - -* -* @license LGPL -* -* @version $Id: Toc.php,v 1.4 2005/05/28 21:33:02 pmjones Exp $ -* -*/ - -/** -* -* Looks through parsed text and builds a table of contents. -* -* This class implements a Text_Wiki_Parse to find all heading tokens and -* build a table of contents. The [[toc]] tag gets replaced with a list -* of all the level-2 through level-6 headings. -* -* @category Text -* -* @package Text_Wiki -* -* @author Paul M. Jones -* -*/ - - -class Text_Wiki_Parse_Toc extends Text_Wiki_Parse { - - - /** - * - * The regular expression used to parse the source text and find - * matches conforming to this rule. Used by the parse() method. - * - * @access public - * - * @var string - * - * @see parse() - * - */ - - var $regex = "/\n\[\[toc( .*)?\]\]\n/m"; - - - /** - * - * Generates a replacement for the matched text. - * - * Token options are: - * - * 'type' => ['list_start'|'list_end'|'item_start'|'item_end'|'target'] - * - * 'level' => The heading level (1-6). - * - * 'count' => Which entry number this is in the list. - * - * @access public - * - * @param array &$matches The array of matches from parse(). - * - * @return string A token indicating the TOC collection point. - * - */ - - function process(&$matches) - { - $count = 0; - - if (isset($matches[1])) { - $attr = $this->getAttrs(trim($matches[1])); - } else { - $attr = array(); - } - - $output = $this->wiki->addToken( - $this->rule, - array( - 'type' => 'list_start', - 'level' => 0, - 'attr' => $attr - ) - ); - - foreach ($this->wiki->getTokens('Heading') as $key => $val) { - - if ($val[1]['type'] != 'start') { - continue; - } - - $options = array( - 'type' => 'item_start', - 'id' => $val[1]['id'], - 'level' => $val[1]['level'], - 'count' => $count ++ - ); - - $output .= $this->wiki->addToken($this->rule, $options); - - $output .= $val[1]['text']; - - $output .= $this->wiki->addToken( - $this->rule, - array( - 'type' => 'item_end', - 'level' => $val[1]['level'] - ) - ); - } - - $output .= $this->wiki->addToken( - $this->rule, array( - 'type' => 'list_end', - 'level' => 0 - ) - ); - - return "\n$output\n"; - } -} -?> \ No newline at end of file