xref: /plugin/mermaid/renderer.php (revision b566ae41d43f34982a49c783a4196e63d98ad341)
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}