<?php
declare(strict_types=1);
namespace League\CommonMark\Renderer;
use League\CommonMark\Environment\EnvironmentInterface;
use League\CommonMark\Event\DocumentPreRenderEvent;
use League\CommonMark\Event\DocumentRenderedEvent;
use League\CommonMark\Node\Block\AbstractBlock;
use League\CommonMark\Node\Block\Document;
use League\CommonMark\Node\Node;
use League\CommonMark\Output\RenderedContent;
use League\CommonMark\Output\RenderedContentInterface;
final class HtmlRenderer implements DocumentRendererInterface, ChildNodeRendererInterface
{
private EnvironmentInterface $environment;
public function __construct(EnvironmentInterface $environment)
{
$this->environment = $environment;
}
public function renderDocument(Document $document): RenderedContentInterface
{
$this->environment->dispatch(new DocumentPreRenderEvent($document, 'html'));
$output = new RenderedContent($document, (string) $this->renderNode($document));
$event = new DocumentRenderedEvent($output);
$this->environment->dispatch($event);