xref: /plugin/commonmark/action.php (revision 8ec9a8f2fa8d03e80395a040a2626880092b4ddf)
1ad615f37SSungbin Jeon<?php
2ad615f37SSungbin Jeon/**
3ad615f37SSungbin Jeon * Commonmark Plugin test
4ad615f37SSungbin Jeon */
5*8ec9a8f2SSungbin Jeonerror_reporting(E_ALL);
6*8ec9a8f2SSungbin Jeonini_set("display_errors", 1);
7*8ec9a8f2SSungbin Jeon
8*8ec9a8f2SSungbin Jeon require_once __DIR__.'/src/bootstrap.php';
9*8ec9a8f2SSungbin Jeon
10*8ec9a8f2SSungbin Jeon use Dokuwiki\Plugin\Commonmark\Commonmark;
11ad615f37SSungbin Jeon
12ad615f37SSungbin Jeon if(!defined('DOKU_INC')) die();
13ad615f37SSungbin Jeon
14ad615f37SSungbin Jeon class action_plugin_commonmark extends DokuWiki_Action_Plugin {
15ad615f37SSungbin Jeon    /**
16ad615f37SSungbin Jeon     * pass text to Commonmark parser before DW parser
17ad615f37SSungbin Jeon     */
18ad615f37SSungbin Jeon    public function register(Doku_Event_Handler $controller) {
19ad615f37SSungbin Jeon        $controller->register_hook('PARSER_WIKITEXT_PREPROCESS', 'BEFORE', $this,
20ad615f37SSungbin Jeon                                   '_commonmarkparse');
21ad615f37SSungbin Jeon    }
22ad615f37SSungbin Jeon
23ad615f37SSungbin Jeon    /**
24ad615f37SSungbin Jeon     * Parse commonmark text
25ad615f37SSungbin Jeon     * TEST: <!DOCTYPE markdown> to "PASSED!!"
26ad615f37SSungbin Jeon     */
27ad615f37SSungbin Jeon    public function _commonmarkparse(Doku_Event $event, $param) {
28ad615f37SSungbin Jeon        if (preg_match('/\A<!DOCTYPE markdown>/',$event->data)) {
29*8ec9a8f2SSungbin Jeon            $event->data = Commonmark::RendtoDW(preg_replace('/\A<!DOCTYPE markdown>/','',$event->data));
30*8ec9a8f2SSungbin Jeon            #$event->data = "PASSED";
31ad615f37SSungbin Jeon        }
32ad615f37SSungbin Jeon
33ad615f37SSungbin Jeon    }
34ad615f37SSungbin Jeon
35ad615f37SSungbin Jeon}