Файл: vendor/league/commonmark/src/Extension/InlinesOnly/InlinesOnlyExtension.php
Строк: 262
<?php
declare(strict_types=1);
/*
* This file is part of the league/commonmark package.
*
* (c) Colin O'Dell <colinodell@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace LeagueCommonMarkExtensionInlinesOnly;
use LeagueCommonMark as Core;
use LeagueCommonMarkEnvironmentEnvironmentBuilderInterface;
use LeagueCommonMarkExtensionCommonMark;
use LeagueCommonMarkExtensionCommonMarkDelimiterProcessorEmphasisDelimiterProcessor;
use LeagueCommonMarkExtensionConfigurableExtensionInterface;
use LeagueConfigConfigurationBuilderInterface;
use NetteSchemaExpect;
final class InlinesOnlyExtension implements ConfigurableExtensionInterface
{
public function configureSchema(ConfigurationBuilderInterface $builder): void
{
$builder->addSchema('commonmark', Expect::structure([
'use_asterisk' => Expect::bool(true),
'use_underscore' => Expect::bool(true),
'enable_strong' => Expect::bool(true),
'enable_em' => Expect::bool(true),
]));
}
// phpcs:disable Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma,Squiz.WhiteSpace.SemicolonSpacing.Incorrect
public function register(EnvironmentBuilderInterface $environment): void
{
$childRenderer = new ChildRenderer();
$environment
->addInlineParser(new CoreParserInlineNewlineParser(), 200)
->addInlineParser(new CommonMarkParserInlineBacktickParser(), 150)
->addInlineParser(new CommonMarkParserInlineEscapableParser(), 80)
->addInlineParser(new CommonMarkParserInlineEntityParser(), 70)
->addInlineParser(new CommonMarkParserInlineAutolinkParser(), 50)
->addInlineParser(new CommonMarkParserInlineHtmlInlineParser(), 40)
->addInlineParser(new CommonMarkParserInlineCloseBracketParser(), 30)
->addInlineParser(new CommonMarkParserInlineOpenBracketParser(), 20)
->addInlineParser(new CommonMarkParserInlineBangParser(), 10)
->addRenderer(CoreNodeBlockDocument::class, $childRenderer, 0)
->addRenderer(CoreNodeBlockParagraph::class, $childRenderer, 0)
->addRenderer(CommonMarkNodeInlineCode::class, new CommonMarkRendererInlineCodeRenderer(), 0)
->addRenderer(CommonMarkNodeInlineEmphasis::class, new CommonMarkRendererInlineEmphasisRenderer(), 0)
->addRenderer(CommonMarkNodeInlineHtmlInline::class, new CommonMarkRendererInlineHtmlInlineRenderer(), 0)
->addRenderer(CommonMarkNodeInlineImage::class, new CommonMarkRendererInlineImageRenderer(), 0)
->addRenderer(CommonMarkNodeInlineLink::class, new CommonMarkRendererInlineLinkRenderer(), 0)
->addRenderer(CoreNodeInlineNewline::class, new CoreRendererInlineNewlineRenderer(), 0)
->addRenderer(CommonMarkNodeInlineStrong::class, new CommonMarkRendererInlineStrongRenderer(), 0)
->addRenderer(CoreNodeInlineText::class, new CoreRendererInlineTextRenderer(), 0)
;
if ($environment->getConfiguration()->get('commonmark/use_asterisk')) {
$environment->addDelimiterProcessor(new EmphasisDelimiterProcessor('*'));
}
if ($environment->getConfiguration()->get('commonmark/use_underscore')) {
$environment->addDelimiterProcessor(new EmphasisDelimiterProcessor('_'));
}
}
}