Viewing file: StrikethroughDelimiterProcessor.php (1.45 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* * This file is part of the league/commonmark package. * * (c) Colin O'Dell <colinodell@gmail.com> and uAfrica.com (http://uafrica.com) * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace League\CommonMark\Extension\Strikethrough;
use League\CommonMark\Delimiter\DelimiterInterface; use League\CommonMark\Delimiter\Processor\DelimiterProcessorInterface; use League\CommonMark\Inline\Element\AbstractStringContainer;
final class StrikethroughDelimiterProcessor implements DelimiterProcessorInterface { public function getOpeningCharacter(): string { return '~'; }
public function getClosingCharacter(): string { return '~'; }
public function getMinLength(): int { return 2; }
public function getDelimiterUse(DelimiterInterface $opener, DelimiterInterface $closer): int { $min = \min($opener->getLength(), $closer->getLength());
return $min >= 2 ? $min : 0; }
public function process(AbstractStringContainer $opener, AbstractStringContainer $closer, int $delimiterUse) { $strikethrough = new Strikethrough();
$tmp = $opener->next(); while ($tmp !== null && $tmp !== $closer) { $next = $tmp->next(); $strikethrough->appendChild($tmp); $tmp = $next; }
$opener->insertAfter($strikethrough); } }
|