anchors|separated by|}}
* On the pages where autolink is wanted to insert the whole page around and
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
if (!defined('DOKU_INC')) {
define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
}
if (!defined('DOKU_PLUGIN')) {
define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
}
require_once(DOKU_PLUGIN.'syntax.php');
/**
* All DokuWiki plugins to extend the parser/rendering mechanism
* need to inherit from this class
*/
class syntax_plugin_autolink2_show extends DokuWiki_Syntax_Plugin {
/**
* return some info
*/
function getInfo() {
return confToHash(dirname(__FILE__).'/../plugin.info.txt');
}
/**
* What kind of syntax are we?
*/
function getType(){return 'substition';}
function getPType() {return 'normal';}
function getSort() {return 999;}
function connectTo($mode) {
$this->Lexer->addEntryPattern('(?=.*?\x3C/autolink\x3E)',$mode,'plugin_autolink2_show');
}
function postConnect() {
$this->Lexer->addExitPattern('','plugin_autolink2_show');
}
function handle($match, $state, $pos, &$handler){
return array($match, $state);
}
/**
* Create output
*/
function render($mode, &$renderer, $data) {
if($mode == 'xhtml'){
$renderer->doc .= $this->_renderautolink($renderer, $data[0],$data[1]);
return true;
}
return false;
}
function _renderautolink(&$renderer, $match, $state) {
// if (!$this->getConf('autoautolink')) return false;
switch ($state) {
case DOKU_LEXER_ENTER :
return "";
break;
case DOKU_LEXER_UNMATCHED :
if ($my =& plugin_load('helper', 'autolink2')) $anchors = $my->getAnchors();
$x=$match;
if (is_array($anchors)){
$pattern=$anchors[0];
$replace=$anchors[1];
$replaced = preg_replace($pattern,$replace,$match);
$x=p_render('xhtml',p_get_instructions($replaced),$info);
return $x;
}
break;
case DOKU_LEXER_EXIT :
return "";
break;
}
}
}
?>