diff --git a/src/CommonMarkConverter.php b/src/CommonMarkConverter.php index 4d70053459..8d40efa720 100644 --- a/src/CommonMarkConverter.php +++ b/src/CommonMarkConverter.php @@ -18,6 +18,7 @@ use League\CommonMark\Environment\Environment; use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension; +use League\CommonMark\Extension\ExtensionInterface; /** * Converts CommonMark-compatible Markdown to HTML. @@ -43,4 +44,9 @@ public function getEnvironment(): Environment return $this->environment; } + + public function addExtension(ExtensionInterface $extension): void + { + $this->environment->addExtension($extension); + } } diff --git a/tests/unit/CommonMarkConverterTest.php b/tests/unit/CommonMarkConverterTest.php index c6d568979d..28a2543d72 100644 --- a/tests/unit/CommonMarkConverterTest.php +++ b/tests/unit/CommonMarkConverterTest.php @@ -20,6 +20,7 @@ use League\CommonMark\Environment\Environment; use League\CommonMark\Exception\UnexpectedEncodingException; use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension; +use League\CommonMark\Extension\Table\TableExtension; use League\CommonMark\Util\HtmlFilter; use PHPUnit\Framework\TestCase; @@ -70,4 +71,18 @@ public function testGetEnvironmentReturnsMainEnvironmentClass(): void $this->assertInstanceOf(Environment::class, $converter->getEnvironment()); } + + public function testAddExtensionToEnvironment(): void + { + $converter = new CommonMarkConverter(); + + $environment = $converter->getEnvironment(); + + $this->assertCount(1, $environment->getExtensions()); + $this->assertInstanceOf(CommonMarkCoreExtension::class, $environment->getExtensions()[0]); + + $environment->addExtension(new TableExtension()); + $this->assertCount(2, $environment->getExtensions()); + $this->assertInstanceOf(TableExtension::class, $environment->getExtensions()[1]); + } }