1
0
cms11/app/Services/Markdown/Renderers/LinkRenderer.php

27 lines
787 B
PHP

<?php
namespace App\Services\Markdown\Renderers;
use App\Classes\Link;
use League\CommonMark\Extension\CommonMark\Node\Inline\Link as CommonMarkLink;
use League\CommonMark\Node\Node;
use League\CommonMark\Renderer\ChildNodeRendererInterface;
use League\CommonMark\Renderer\NodeRendererInterface;
use League\CommonMark\Util\HtmlElement;
class LinkRenderer implements NodeRendererInterface
{
/**
* Renders a link node into an HTML element.
*/
public function render(Node $node, ChildNodeRendererInterface $childRenderer): HtmlElement
{
CommonMarkLink::assertInstanceOf($node);
$innerHtml = $childRenderer->renderNodes($node->children());
$url = $node->getUrl();
return (new Link($url, $innerHtml))->toHtmlElement();
}
}