146a60b4fSRobertWeinmeister<?php 2*b566ae41SRobert Weinmeister 3*b566ae41SRobert Weinmeisterdeclare(strict_types=1); 4*b566ae41SRobert Weinmeister 5ea08b541SRobert Weinmeisterif (!defined('DOKU_INC')) die(); 646a60b4fSRobertWeinmeister 746a60b4fSRobertWeinmeisterclass renderer_plugin_mermaid extends Doku_Renderer_xhtml 846a60b4fSRobertWeinmeister{ 9*b566ae41SRobert Weinmeister private function formattedXhtml(string $xhtml): string 1046a60b4fSRobertWeinmeister { 11*b566ae41SRobert Weinmeister return str_replace(['"'], ['\''], htmlentities($xhtml, ENT_NOQUOTES)); 1246a60b4fSRobertWeinmeister } 1346a60b4fSRobertWeinmeister 14*b566ae41SRobert Weinmeister public function underline_open() 1546a60b4fSRobertWeinmeister { 16*b566ae41SRobert Weinmeister $this->doc .= $this->FormattedXhtml('<em class="u">'); 1746a60b4fSRobertWeinmeister } 1846a60b4fSRobertWeinmeister 19*b566ae41SRobert Weinmeister public function underline_close() 2046a60b4fSRobertWeinmeister { 21*b566ae41SRobert Weinmeister $this->doc .= $this->FormattedXhtml('</em>'); 22*b566ae41SRobert Weinmeister } 2346a60b4fSRobertWeinmeister 24*b566ae41SRobert Weinmeister public function internallink($id, $name = null, $search = null, $returnonly = false, $linktype = 'content') 2546a60b4fSRobertWeinmeister { 26*b566ae41SRobert Weinmeister $xhtml = $this->formattedXhtml(parent::internallink($id, $name, $search, true, $linktype)); 27*b566ae41SRobert Weinmeister 28*b566ae41SRobert Weinmeister if ($returnonly) { 2946a60b4fSRobertWeinmeister return $xhtml; 3046a60b4fSRobertWeinmeister } 31*b566ae41SRobert Weinmeister 3246a60b4fSRobertWeinmeister $this->doc .= $xhtml; 3346a60b4fSRobertWeinmeister } 3446a60b4fSRobertWeinmeister 35*b566ae41SRobert Weinmeister public function externallink($url, $name = null, $returnonly = false) 3646a60b4fSRobertWeinmeister { 37*b566ae41SRobert Weinmeister $xhtml = $this->formattedXhtml(parent::externallink($url, $name, true)); 3846a60b4fSRobertWeinmeister 39*b566ae41SRobert Weinmeister if ($returnonly) { 4046a60b4fSRobertWeinmeister return $xhtml; 4146a60b4fSRobertWeinmeister } 42*b566ae41SRobert Weinmeister 4346a60b4fSRobertWeinmeister $this->doc .= $xhtml; 4446a60b4fSRobertWeinmeister } 4546a60b4fSRobertWeinmeister 46*b566ae41SRobert Weinmeister public function internalmedia($src, $title = null, $align = null, $width = null, $height = null, $cache = null, $linking = null, $return = false) 4746a60b4fSRobertWeinmeister { 48*b566ae41SRobert Weinmeister $xhtml = $this->formattedXhtml(parent::internalmedia($src, $title, $align, $width, $height, $cache, $linking, true)); 4946a60b4fSRobertWeinmeister 50*b566ae41SRobert Weinmeister if ($return) { 5146a60b4fSRobertWeinmeister return $xhtml; 5246a60b4fSRobertWeinmeister } 53*b566ae41SRobert Weinmeister 5446a60b4fSRobertWeinmeister $this->doc .= $xhtml; 5546a60b4fSRobertWeinmeister } 5646a60b4fSRobertWeinmeister 57*b566ae41SRobert Weinmeister public function cdata($text) 5846a60b4fSRobertWeinmeister { 5946a60b4fSRobertWeinmeister $this->doc .= $text; 6046a60b4fSRobertWeinmeister } 6146a60b4fSRobertWeinmeister 62*b566ae41SRobert Weinmeister public function p_open() {} 6346a60b4fSRobertWeinmeister 64*b566ae41SRobert Weinmeister public function p_close() {} 6546a60b4fSRobertWeinmeister}