1<?php 2 3namespace Dokuwiki\Plugin\Commonmark; 4 5use League\CommonMark\Environment; 6use League\CommonMark\DocParser; 7use Dokuwiki\Plugin\Commonmark\Extension\CommonmarkToDokuwikiExtension; 8use Dokuwiki\Plugin\Commonmark\Extension\FootnoteToDokuwikiExtension; 9use League\CommonMark\Extension\Strikethrough\StrikethroughExtension; 10 11class Commonmark { 12 public static function RendtoDW($markdown): string { 13 # create environment 14 $environment = self::createDWEnvironment(); 15 16 # create parser 17 $parser = new DocParser($environment); 18 # create Dokuwiki Renderer 19 $DWRenderer = new DWRenderer($environment); 20 21 $document = $parser->parse($markdown); 22 return $DWRenderer->renderBlock($document); 23 } 24 25 public static function createDWEnvironment(): Environment { 26 $environment = new Environment(); 27 $environment->addExtension(new CommonMarkToDokuWikiExtension()); 28 $environment->addExtension(new FootnoteToDokuwikiExtension()); 29 $environment->addExtension(new StrikethroughExtension()); 30 31 $environment->mergeConfig([ 32 'html_input' => 'strip', 33 ]); 34 35 return $environment; 36 } 37} 38 39?>