xref: /plugin/mermaid/action.php (revision 46a60b4f15d119956be60b60dc3d5545f8ec859f)
1*46a60b4fSRobertWeinmeister<?php
2*46a60b4fSRobertWeinmeister/**
3*46a60b4fSRobertWeinmeister * DokuWiki Plugin mermaid (Action Component)
4*46a60b4fSRobertWeinmeister *
5*46a60b4fSRobertWeinmeister * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
6*46a60b4fSRobertWeinmeister * @author  Robert Weinmeister <develop@weinmeister.org>
7*46a60b4fSRobertWeinmeister */
8*46a60b4fSRobertWeinmeister
9*46a60b4fSRobertWeinmeisterclass action_plugin_mermaid extends \dokuwiki\Extension\ActionPlugin
10*46a60b4fSRobertWeinmeister{
11*46a60b4fSRobertWeinmeister    /** @inheritDoc */
12*46a60b4fSRobertWeinmeister    public function register(Doku_Event_Handler $controller)
13*46a60b4fSRobertWeinmeister    {
14*46a60b4fSRobertWeinmeister        $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'load');
15*46a60b4fSRobertWeinmeister    }
16*46a60b4fSRobertWeinmeister
17*46a60b4fSRobertWeinmeister    public function load(Doku_Event $event, $param)
18*46a60b4fSRobertWeinmeister    {
19*46a60b4fSRobertWeinmeister        $event->data['script'][] = array
20*46a60b4fSRobertWeinmeister        (
21*46a60b4fSRobertWeinmeister            'type'    => 'text/javascript',
22*46a60b4fSRobertWeinmeister            'charset' => 'utf-8',
23*46a60b4fSRobertWeinmeister            'src' => DOKU_BASE."lib/plugins/mermaid/mermaid.min.js"
24*46a60b4fSRobertWeinmeister		);
25*46a60b4fSRobertWeinmeister
26*46a60b4fSRobertWeinmeister        $event->data['link'][] = array
27*46a60b4fSRobertWeinmeister        (
28*46a60b4fSRobertWeinmeister            'rel'     => 'stylesheet',
29*46a60b4fSRobertWeinmeister            'type'    => 'text/css',
30*46a60b4fSRobertWeinmeister            'href'    => DOKU_BASE."lib/plugins/mermaid/mermaid.css",
31*46a60b4fSRobertWeinmeister        );
32*46a60b4fSRobertWeinmeister
33*46a60b4fSRobertWeinmeister        // Can be changed for debugging
34*46a60b4fSRobertWeinmeister        // https://mermaid.js.org/config/directives.html#changing-loglevel-via-directive
35*46a60b4fSRobertWeinmeister        $event->data['script'][] = array
36*46a60b4fSRobertWeinmeister        (
37*46a60b4fSRobertWeinmeister            'type'    => 'text/javascript',
38*46a60b4fSRobertWeinmeister            'charset' => 'utf-8',
39*46a60b4fSRobertWeinmeister            '_data'   => 'mermaid.initialize({logLevel: "error"});'
40*46a60b4fSRobertWeinmeister        );
41*46a60b4fSRobertWeinmeister    }
42*46a60b4fSRobertWeinmeister}