Completed
Push — master ( 006032...d9c179 )
by Fèvre
27s queued 12s
created

GithubCommitRenderer::render()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 7
rs 10
1
<?php
2
namespace Xetaravel\Markdown\GithubCommit;
3
4
use League\CommonMark\Node\Node;
5
use League\CommonMark\Renderer\ChildNodeRendererInterface;
6
use League\CommonMark\Renderer\NodeRendererInterface;
7
use League\CommonMark\Util\HtmlElement;
8
use League\CommonMark\Util\Xml;
9
use League\CommonMark\Xml\XmlNodeRendererInterface;
10
11
final class GithubCommitRenderer implements NodeRendererInterface, XmlNodeRendererInterface
12
{
13
    /**
14
     * @param GithubCommit $node
15
     *
16
     * {@inheritDoc}
17
     *
18
     * @psalm-suppress MoreSpecificImplementedParamType
19
     */
20
    public function render(Node $node, ChildNodeRendererInterface $childRenderer): \Stringable
21
    {
22
        GithubCommit::assertInstanceOf($node);
23
24
        $attrs = $node->data->get('attributes');
25
26
        return new HtmlElement('a', $attrs, Xml::escape($node->getLiteral()));
27
    }
28
29
    public function getXmlTagName(Node $node): string
30
    {
31
        return 'a';
32
    }
33
34
    /**
35
     * {@inheritDoc}
36
     */
37
    public function getXmlAttributes(Node $node): array
38
    {
39
        return [];
40
    }
41
}
42