1<?php
2
3declare(strict_types=1);
4
5/*
6 * This file is part of the league/commonmark package.
7 *
8 * (c) Colin O'Dell <colinodell@gmail.com>
9 *
10 * For the full copyright and license information, please view the LICENSE
11 * file that was distributed with this source code.
12 */
13
14namespace League\CommonMark\Extension\InlinesOnly;
15
16use League\CommonMark\Node\Block\Document;
17use League\CommonMark\Node\Node;
18use League\CommonMark\Renderer\ChildNodeRendererInterface;
19use League\CommonMark\Renderer\NodeRendererInterface;
20
21/**
22 * Simply renders child elements as-is, adding newlines as needed.
23 */
24final class ChildRenderer implements NodeRendererInterface
25{
26    public function render(Node $node, ChildNodeRendererInterface $childRenderer): string
27    {
28        $out = $childRenderer->renderNodes($node->children());
29        if (! $node instanceof Document) {
30            $out .= $childRenderer->getBlockSeparator();
31        }
32
33        return $out;
34    }
35}
36