/var/www/cobraambalaj/vendor/league/commonmark/src/Extension/SmartPunct
Edit: /var/www/cobraambalaj/vendor/league/commonmark/src/Extension/SmartPunct/PunctuationParser.php (2200B)
*
* Original code based on the CommonMark JS reference parser (http://bitly.com/commonmark-js)
* - (c) John MacFarlane
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\CommonMark\Extension\SmartPunct;
use League\CommonMark\Inline\Element\Text;
use League\CommonMark\Inline\Parser\InlineParserInterface;
use League\CommonMark\InlineParserContext;
final class PunctuationParser implements InlineParserInterface
{
/**
* @return string[]
*/
public function getCharacters(): array
{
return ['-', '.'];
}
public function parse(InlineParserContext $inlineContext): bool
{
$cursor = $inlineContext->getCursor();
$ch = $cursor->getCharacter();
// Ellipses
if ($ch === '.' && $matched = $cursor->match('/^\\.( ?\\.)\\1/')) {
$inlineContext->getContainer()->appendChild(new Text('…'));
return true;
}
// Em/En-dashes
elseif ($ch === '-' && $matched = $cursor->match('/^(?getContainer()->appendChild(new Text(
str_repeat($em_dash, $em_count) . str_repeat($en_dash, $en_count)
));
return true;
}
return false;
}
}