ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
MarkdownFormattingToHTML.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21namespace ILIAS\Refinery\String;
22
24use League\CommonMark\MarkdownConverter;
25use League\CommonMark\Environment\Environment;
26use League\CommonMark\Extension\DisallowedRawHtml\DisallowedRawHtmlExtension;
27use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension;
28
33{
34 private MarkdownConverter $converter;
35
36 public function __construct(bool $escape = true)
37 {
38 $config = [
39 'html_input' => 'escape',
40 'renderer' => [
41 'soft_break' => "<br/>"
42 ],
43 'allow_unsafe_links' => false,
44 'max_nesting_level' => 42 // https://commonmark.thephpleague.com/1.5/security/#nesting-level
45 ];
46
47 $environment = new Environment($config);
48 $environment->addExtension(new CommonMarkCoreExtension());
49 $this->converter = new MarkDownConverter($environment);
50 }
51
55 public function toHTML(): Transformation
56 {
57 return new \ILIAS\Refinery\Custom\Transformation(
58 fn($value) => $this->converter->convert($value)->getContent()
59 );
60 }
61}
This class provides a transformation that converts Markdown formatting to HTML using the CommonMark L...
toHTML()
Returns the converted Markdown with HTML tags.
A transformation is a function from one datatype to another.