*/ class syntax_plugin_randomtables_roller extends \dokuwiki\Extension\SyntaxPlugin { /** @inheritDoc */ public function getType(): string { return 'protected'; } /** @inheritDoc */ public function getPType(): string { return 'block'; } /** @inheritDoc */ public function getSort(): int { return 201; } /** @inheritDoc */ public function connectTo($mode): void { $this->Lexer->addEntryPattern('\Lexer->addExitPattern('>', 'plugin_randomtables_roller'); } /** @inheritDoc */ public function handle($match, $state, $pos, Doku_Handler $handler): array { switch ($state) { case DOKU_LEXER_UNMATCHED: return [$state, $match]; case DOKU_LEXER_EXIT: return [$state, '']; case DOKU_LEXER_ENTER: default: return [$state, $match]; } } /** @inheritDoc */ public function render($mode, Doku_Renderer $renderer, $data): bool { if ($mode !== 'xhtml') { return false; } [$state, $match] = $data; switch ($state) { case DOKU_LEXER_ENTER: $renderer->doc .= '
' . PHP_EOL; break; case DOKU_LEXER_UNMATCHED: $id = $renderer->_xmlEntities($data[1]); $renderer->doc .= '
'; break; case DOKU_LEXER_EXIT: $renderer->doc .= '
' . PHP_EOL; break; } return true; } }