* @license LGPL * @version $Id$ * */ class Text_Wiki_Parse_Doclink extends Text_Wiki_Parse { var $conf = array( 'toc' => null ); var $regex = '/\[doc ([a-z0-9-]+(?::[a-z0-9-]+)*)(?: ([^\n\]]*))?]/'; function process(&$matches) { $toc = $this->getConf('toc'); if ($toc instanceof Sensei_Doc_Toc) { $section = $toc->findByPath($matches[1]); } if (isset($section)) { $options = array(); $options['path'] = $matches[1]; if (isset($matches[2])) { $options['text'] = $matches[2]; $options['text'] = str_replace(':index', $section->getIndex(), $options['text']); $options['text'] = str_replace(':name', $section->getName(), $options['text']); $options['text'] = str_replace(':fullname', $section->getName(true), $options['text']); } else { $options['text'] = $section->getIndex(); } return $this->wiki->addToken($this->rule, $options); } else { return $matches[0]; } } }