add new guide service
This commit is contained in:
38
src/Service/MarkdownRenderer.php
Normal file
38
src/Service/MarkdownRenderer.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user