Lexer->addSpecialPattern('<'.$this->TAG.'>\n*.*?\n*TAG.'>',$mode,'plugin_plantumlparser_injector'); } /** * Handle matches of the plantumlparser 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) { $markup = str_replace('TAG . '>', '', str_replace('<' . $this->TAG . '>', '', $match)); $plantUmlUrl = trim($this->getConf('PlantUMLURL')); if(!$plantUmlUrl) { $plantUmlUrl = "https://www.plantuml.com/plantuml/"; } else { $plantUmlUrl = trim($plantUmlUrl, '/') . '/'; } $diagramObject = new PlantUmlDiagram($markup,$plantUmlUrl); return [ 'svg' => strstr($diagramObject->getSVG(), " $diagramObject->getMarkup(), 'id' => sha1($diagramObject->getSVGDiagramUrl()), 'include_links' => $this->getConf('DefaultShowLinks'), 'url' => [ 'svg' => $diagramObject->getSVGDiagramUrl(), 'png' => $diagramObject->getPNGDiagramUrl(), 'txt' => $diagramObject->getTXTDiagramUrl(), ], ]; } /** * 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, $data) { if($mode != 'xhtml') return false; $renderer->doc .= "
"; if(strlen($data['svg']) > 0) { if(is_a($renderer,'renderer_plugin_dw2pdf') && (preg_match("/(@startlatex|@startmath|doc .= ""; } else { $renderer->doc .= $data['svg']; } } else { $renderer->doc .= ""; $renderer->doc .= "".$data['markup'].""; $renderer->doc .= ""; } if($data['include_links'] == "1") { $renderer->doc .= ""; } $renderer->doc .= "
"; return true; } }