Files
MtoRagSystem/src/Service/MarkdownRenderer.php
2026-02-26 20:40:42 +01:00

38 lines
1006 B
PHP

<?php
declare(strict_types=1);
namespace App\Service;
use League\CommonMark\MarkdownConverter;
use League\CommonMark\Environment\Environment;
use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension;
use League\CommonMark\Extension\GithubFlavoredMarkdownExtension;
final class MarkdownRenderer
{
private MarkdownConverter $converter;
public function __construct()
{
$config = [
'html_input' => 'strip',
'allow_unsafe_links' => false,
];
$environment = new Environment($config);
// Core Markdown
$environment->addExtension(new CommonMarkCoreExtension());
// GitHub Flavored Markdown (Tables, Strikethrough, Autolinks, Task Lists)
$environment->addExtension(new GithubFlavoredMarkdownExtension());
$this->converter = new MarkdownConverter($environment);
}
public function render(string $markdown): string
{
return (string) $this->converter->convert($markdown);
}
}