'allow', 'allow_unsafe_links' => false, 'max_nesting_level' => 100, ]; $environment = new Environment($config); $environment->addExtension(new CommonMarkCoreExtension()); $environment->addExtension(new AttributesExtension()); $environment->addExtension(new TableExtension()); $environment->addExtension(new DescriptionListExtension()); $environment->addExtension(new FootnoteExtension()); if ($this->option['autotoc']) { $environment->addExtension(new HeadingPermalinkExtension()); $environment->addExtension(new TableOfContentsExtension()); } if ($prefs['markdown_gfm'] === 'y') { $environment->addExtension(new GithubFlavoredMarkdownExtension()); } // add default class to code blocks ->
$environment->addRenderer(
FencedCode::class,
new class implements NodeRendererInterface {
public function render(Node $node, ChildNodeRendererInterface $childRenderer)
{
$htmlEl = (new FencedCodeRenderer())->render($node, $childRenderer);
$class = $htmlEl->getAttribute('class') ?: 'codelisting';
$htmlEl->setAttribute('class', $class);
return $htmlEl;
}
},
10
);
// add default class to table ->