18ec9a8f2SSungbin Jeon<?php 28ec9a8f2SSungbin Jeon 38ec9a8f2SSungbin Jeonnamespace Dokuwiki\Plugin\Commonmark; 48ec9a8f2SSungbin Jeon 594a075eeSSungbin Jeonuse League\CommonMark\Environment\Environment; 694a075eeSSungbin Jeonuse League\CommonMark\Parser\MarkdownParser; 71e536badSSungbin Jeonuse Dokuwiki\Plugin\Commonmark\Extension\CommonmarkToDokuwikiExtension; 8f46768a8SSungbin Jeonuse Dokuwiki\Plugin\Commonmark\Extension\FootnoteToDokuwikiExtension; 978c882e7SSungbin Jeonuse League\CommonMark\Extension\Strikethrough\StrikethroughExtension; 10656793f4SSungbin Jeonuse Dokuwiki\Plugin\Commonmark\Extension\TableExtension; 118ec9a8f2SSungbin Jeon 128ec9a8f2SSungbin Jeonclass Commonmark { 138ec9a8f2SSungbin Jeon public static function RendtoDW($markdown): string { 148ec9a8f2SSungbin Jeon # create environment 158ec9a8f2SSungbin Jeon $environment = self::createDWEnvironment(); 168ec9a8f2SSungbin Jeon 178ec9a8f2SSungbin Jeon # create parser 1894a075eeSSungbin Jeon $parser = new MarkdownParser($environment); 198ec9a8f2SSungbin Jeon # create Dokuwiki Renderer 208ec9a8f2SSungbin Jeon $DWRenderer = new DWRenderer($environment); 218ec9a8f2SSungbin Jeon 228ec9a8f2SSungbin Jeon $document = $parser->parse($markdown); 23*b0a36678SSungbin Jeon return $DWRenderer->renderNode($document); 248ec9a8f2SSungbin Jeon } 258ec9a8f2SSungbin Jeon 268ec9a8f2SSungbin Jeon public static function createDWEnvironment(): Environment { 27*b0a36678SSungbin Jeon $config = []; 28*b0a36678SSungbin Jeon $environment = new Environment($config); 298ec9a8f2SSungbin Jeon $environment->addExtension(new CommonMarkToDokuWikiExtension()); 30f46768a8SSungbin Jeon $environment->addExtension(new FootnoteToDokuwikiExtension()); 3178c882e7SSungbin Jeon $environment->addExtension(new StrikethroughExtension()); 32656793f4SSungbin Jeon $environment->addExtension(new TableExtension()); 33f46768a8SSungbin Jeon 34f46768a8SSungbin Jeon $environment->mergeConfig([ 35f46768a8SSungbin Jeon 'html_input' => 'strip', 36f46768a8SSungbin Jeon ]); 378ec9a8f2SSungbin Jeon 388ec9a8f2SSungbin Jeon return $environment; 398ec9a8f2SSungbin Jeon } 408ec9a8f2SSungbin Jeon} 418ec9a8f2SSungbin Jeon 428ec9a8f2SSungbin Jeon?>