<?php
declare(strict_types=1);
namespace League\CommonMark\Renderer;
use League\CommonMark\Node\Node;
use League\CommonMark\Util\HtmlElement;
final class HtmlDecorator implements NodeRendererInterface
{
private NodeRendererInterface $inner;
private string $tag;
private array $attributes;
private bool $selfClosing;
public function __construct(NodeRendererInterface $inner, string $tag, array $attributes = [], bool $selfClosing = false)
{
$this->inner = $inner;
$this->tag = $tag;
$this->attributes = $attributes;
$this->selfClosing = $selfClosing;
}
public function render(Node $node, ChildNodeRendererInterface $childRenderer)
{
return new HtmlElement($this->tag, $this->attributes, $this->inner->render($node, $childRenderer), $this->selfClosing);
}
}