Lexer->addSpecialPattern( '\!?[a-zA-Z0-9_.+\[\]-]*\([0-9]\)', $mode, 'plugin_manlink'); } function handle($match, $state, $pos, Doku_Handler $handler){ if ($state != DOKU_LEXER_SPECIAL) return false; if (substr($match, 0, 1) == "!") { $handler->_addCall('cdata', array(substr($match, 1)), $pos); return true; } $mantarget = $this->getconf('mantarget'); $manpage = preg_replace('/^([a-zA-Z0-9_+\[\].-]*)\(([0-9])\)$/', '\1', $match); $section = preg_replace('/^([a-zA-Z0-9_+\[\].-]*)\(([0-9])\)$/', '\2', $match); if ($mantarget == 'NetBSD') $target = 'http://mdoc.su/n/'.$manpage.'.'.$section; elseif ($mantarget == 'FreeBSD') $target = 'http://mdoc.su/f/'.$manpage.'.'.$section; elseif ($mantarget == 'OpenBSD') $target = 'http://mdoc.su/o/'.$manpage.'.'.$section; elseif ($mantarget == 'DragonFlyBSD') $target = 'http://mdoc.su/d/'.$manpage.'.'.$section; $handler->_addCall('externallink', array($target, $match), $pos); return true; } function render($format, Doku_Renderer $renderer, $data) { return true; } } ?>