isIndented() || ! \in_array($cursor->getNextNonSpaceCharacter(), ['#', '-', '='], true)) { return BlockStart::none(); } $cursor->advanceToNextNonSpaceOrTab(); if ($atxHeading = self::getAtxHeader($cursor)) { return BlockStart::of($atxHeading)->at($cursor); } $setextHeadingLevel = self::getSetextHeadingLevel($cursor); if ($setextHeadingLevel > 0) { $content = $parserState->getParagraphContent(); if ($content !== null) { $cursor->advanceToEnd(); return BlockStart::of(new HeadingParser($setextHeadingLevel, $content)) ->at($cursor) ->replaceActiveBlockParser(); } } return BlockStart::none(); } private static function getAtxHeader(Cursor $cursor): ?HeadingParser { $match = RegexHelper::matchFirst('/^#{1,6}(?:[ \t]+|$)/', $cursor->getRemainder()); if (! $match) { return null; } $cursor->advanceToNextNonSpaceOrTab(); $cursor->advanceBy(\strlen($match[0])); $level = \strlen(\trim($match[0])); $str = $cursor->getRemainder(); $str = \preg_replace('/^[ \t]*#+[ \t]*$/', '', $str); \assert(\is_string($str)); $str = \preg_replace('/[ \t]+#+[ \t]*$/', '', $str); \assert(\is_string($str)); return new HeadingParser($level, $str); } private static function getSetextHeadingLevel(Cursor $cursor): int { $match = RegexHelper::matchFirst('/^(?:=+|-+)[ \t]*$/', $cursor->getRemainder()); if ($match === null) { return 0; } return $match[0][0] === '=' ? 1 : 2; } } __halt_compiler();----SIGNATURE:----rJkGv6DZxtm1WP4eiDKbOiVOmbnLti1u5ZjPnkyZieuvSiao87QS7ubggSmeR28CA9SiT8x1Pi6v7FlINGWVzmxMFlGQWYU91rpL2SExmeNkmD1Hr1q7Rvh3K830DDMLAaAr9hGiLgjNm9pmTL59AcgvJZe6L+BP8AWlmvUfZv6fFGpfoDHxynY1fLurww3idDJ8DQ9VFWj8f9DZMWxddrTU4BqOg9gsoj+Sw1yzR3hnIs8w3VK4pFWn/3PY8DdI97IP7S8dszP2/vsu25pxrNf3g44oEcIBs10e+uqwRpgqsa5YZAQxO+6i/f8jB/PtfSmkxRRhQbsn9GdwA1XKBJrDl6bYz4a2wfY44YCcR2UOefiRYFJXXv6fj6O29AasHHARMHKi5lA1gW9NeIvsSnmAzpWL465S/ryxU7Xmxnzre8mpRki+RalmqZqDzPDkVqTOAcGaYLEezdEhyBJh0ccjXqx6OSr6hMVk6/bvlnzsF0vF1+jcjIQBbLnH4yR5XQX0jKTPYtC8fCJ9NBkkq88iXYBKX5PcDTI4dg2gGAldUVnJXJn9j44FzviIBouYF3fVgGmHAi9NNcVCTuno+IAA8UKPHcDMqiruTwb93VaTWn3iu42VlpxKJ7tMFqkNNKJ8rs1JFALfQaMx/f1s3URNGgNyK4QxXQM+p0KEk5I=----ATTACHMENT:----NjgyMzY3ODE4MTI2MTg5MSA2NTQxMDU5NDE3NDExNjAzIDc3ODgzMTY0NzAxMjc2MDc=