1
0
mirror of synced 2024-12-14 23:26:04 +03:00
doctrine2/manual/lib/Text/Wiki/Parse/Doc/Doclink.php
2007-10-17 21:16:49 +00:00

50 lines
1.3 KiB
PHP

<?php
/**
* Parses for links to other documentation sections.
*
* @category Text
* @package Text_Wiki
* @author Janne Vanhala <jpvanhal@cc.hut.fi>
* @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];
}
}
}