Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * DokuWiki Plugin telegramiv (Syntax Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author denko <denko@techie.com>
- */
- // must be run within Dokuwiki
- if (!defined('DOKU_INC')) {
- die();
- }
- class syntax_plugin_telegramiv_cover extends DokuWiki_Syntax_Plugin
- {
- /**
- * @return string Syntax mode type
- */
- public function getType()
- {
- return 'protected';
- }
- /**
- * @return string Paragraph type
- */
- public function getPType()
- {
- return 'block';
- }
- /**
- * @return int Sort order - Low numbers go before high numbers
- */
- public function getSort()
- {
- return 51;
- }
- /**
- * Connect lookup pattern to lexer.
- *
- * @param string $mode Parser modes
- */
- public function connectTo($mode)
- {
- $this->Lexer->addSpecialPattern('<cover.*?>(?=.*?</cover>)', $mode, 'plugin_telegramiv_cover');
- // $this->Lexer->addEntryPattern('<FIXME>', $mode, 'plugin_telegramiv_cover');
- }
- public function postConnect()
- {
- $this->Lexer->addExitPattern('</cover>', 'plugin_telegramiv_cover');
- }
- /**
- * Handle matches of the telegramiv syntax
- *
- * @param string $match The match of the syntax
- * @param int $state The state of the handler
- * @param int $pos The position in the document
- * @param Doku_Handler $handler The handler
- *
- * @return array Data for the renderer
- */
- public function handle($match, $state, $pos, Doku_Handler $handler)
- {
- switch ($state) {
- case DOKU_LEXER_ENTER:
- return array($state, $this->default);
- case DOKU_LEXER_UNMATCHED:
- return array($state, $match);
- default:
- return array($state);
- }
- }
- /**
- * Render xhtml output or metadata
- *
- * @param string $mode Renderer mode (supported modes: xhtml)
- * @param Doku_Renderer $renderer The renderer
- * @param array $data The data from the handler() function
- *
- * @return bool If rendering was successful.
- */
- public function render($mode, Doku_Renderer $renderer, $indata)
- {
- if ($mode == 'xhtml') {
- list($state, $data) = $indata;
- switch ($state) {
- case DOKU_LEXER_ENTER :
- $renderer->doc .= '<h1>';
- break;
- case DOKU_LEXER_UNMATCHED :
- $renderer->doc .= $data;
- break;
- case DOKU_LEXER_EXIT :
- $renderer->doc .= "</h1>";
- break;
- }
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement