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> and uAfrica.com (http://uafrica.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\Strikethrough; 15 16use League\CommonMark\Node\Node; 17use League\CommonMark\Renderer\ChildNodeRendererInterface; 18use League\CommonMark\Renderer\NodeRendererInterface; 19use League\CommonMark\Util\HtmlElement; 20use League\CommonMark\Xml\XmlNodeRendererInterface; 21 22final class StrikethroughRenderer implements NodeRendererInterface, XmlNodeRendererInterface 23{ 24 /** 25 * @param Strikethrough $node 26 * 27 * {@inheritDoc} 28 * 29 * @psalm-suppress MoreSpecificImplementedParamType 30 */ 31 public function render(Node $node, ChildNodeRendererInterface $childRenderer): \Stringable 32 { 33 Strikethrough::assertInstanceOf($node); 34 35 return new HtmlElement('del', $node->data->get('attributes'), $childRenderer->renderNodes($node->children())); 36 } 37 38 public function getXmlTagName(Node $node): string 39 { 40 return 'strikethrough'; 41 } 42 43 /** 44 * {@inheritDoc} 45 */ 46 public function getXmlAttributes(Node $node): array 47 { 48 return []; 49 } 50} 51