Lexer->addSpecialPattern( '\n```[a-z0-9_]*\n.+?\n```(?=\n)', $mode, 'plugin_markdowku_githubcodeblocks'); } function handle($match, $state, $pos, Doku_Handler $handler) { if (preg_match('/^\n```([a-z0-9_]+)\n/', $match, $matches) > 0) { $lang = $matches[1]; } else { $lang = NULL; } $text = preg_replace('/^```[a-z0-9_]+\n/m', '', $match); $text = preg_replace('/^```$/m', '', $text); if ($lang) $handler->_addCall('file', array($text, $lang, 'snippet.'.$lang), $pos); else $handler->_addCall('code', array($text, $lang), $pos); return true; } function render($mode, Doku_Renderer $renderer, $data) { return true; } } //Setup VIM: ex: et ts=4 enc=utf-8 :