1<?php 2/** 3 * DokuWiki Plugin mermaid (Action Component) 4 * 5 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 6 * @author Robert Weinmeister <develop@weinmeister.org> 7 */ 8 9class action_plugin_mermaid extends \dokuwiki\Extension\ActionPlugin 10{ 11 /** @inheritDoc */ 12 public function register(Doku_Event_Handler $controller) 13 { 14 $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'load'); 15 } 16 17 public function load(Doku_Event $event, $param) 18 { 19 switch ($this->getConf('location')) { 20 case 'local': 21 $event->data['script'][] = array 22 ( 23 'type' => 'text/javascript', 24 'charset' => 'utf-8', 25 'src' => DOKU_BASE.'lib/plugins/mermaid/mermaid.min.js' 26 ); 27 break; 28 case 'latest': 29 $event->data['script'][] = array 30 ( 31 'type' => 'text/javascript', 32 'charset' => 'utf-8', 33 'src' => 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js' 34 ); 35 break; 36 37 case 'remote93': 38 $event->data['script'][] = array 39 ( 40 'type' => 'text/javascript', 41 'charset' => 'utf-8', 42 'src' => 'https://cdn.jsdelivr.net/npm/mermaid@9.3/dist/mermaid.min.js' 43 ); 44 break; 45 default: 46 } 47 48 $event->data['link'][] = array 49 ( 50 'rel' => 'stylesheet', 51 'type' => 'text/css', 52 'href' => DOKU_BASE."lib/plugins/mermaid/mermaid.css", 53 ); 54 55 // Can be changed for debugging 56 // https://mermaid.js.org/config/directives.html#changing-loglevel-via-directive 57 $event->data['script'][] = array 58 ( 59 'type' => 'text/javascript', 60 'charset' => 'utf-8', 61 '_data' => 'mermaid.initialize({logLevel: "error"});' 62 ); 63 } 64} 65