mirror of
https://github.com/erusev/parsedown.git
synced 2024-09-20 03:51:29 +02:00
Substr over indexing string
This commit is contained in:
parent
63a97a926b
commit
117912c373
@ -67,7 +67,10 @@ final class BlockQuote implements ContinuableBlock
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($Context->line()->text()[0] === '>' && \preg_match('/^(>[ \t]?+)(.*+)/', $Context->line()->text(), $matches)) {
|
||||
if (
|
||||
\substr($Context->line()->text(), 0, 1) === '>'
|
||||
&& \preg_match('/^(>[ \t]?+)(.*+)/', $Context->line()->text(), $matches)
|
||||
) {
|
||||
$indentOffset = $Context->line()->indentOffset() + $Context->line()->indent() + \strlen($matches[1]);
|
||||
|
||||
$recoveredSpaces = 0;
|
||||
|
@ -56,7 +56,7 @@ final class FencedCode implements ContinuableBlock
|
||||
Block $Block = null,
|
||||
State $State = null
|
||||
) {
|
||||
$marker = $Context->line()->text()[0];
|
||||
$marker = \substr($Context->line()->text(), 0, 1);
|
||||
|
||||
$openerLength = \strspn($Context->line()->text(), $marker);
|
||||
|
||||
|
@ -58,9 +58,11 @@ final class Header implements Block
|
||||
|
||||
$text = \ltrim($Context->line()->text(), '#');
|
||||
|
||||
$firstChar = \substr($text, 0, 1);
|
||||
|
||||
if (
|
||||
$State->get(StrictMode::class)->isEnabled() && isset($text[0])
|
||||
&& $text[0] !== ' ' && $text[0] !== "\t"
|
||||
$State->get(StrictMode::class)->isEnabled()
|
||||
&& \trim($firstChar, " \t") !== ''
|
||||
) {
|
||||
return null;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ final class Rule implements Block
|
||||
return null;
|
||||
}
|
||||
|
||||
$marker = $Context->line()->text()[0];
|
||||
$marker = \substr($Context->line()->text(), 0, 1);
|
||||
|
||||
if (
|
||||
\substr_count($Context->line()->text(), $marker) >= 3
|
||||
|
@ -46,8 +46,17 @@ final class SetextHeader implements Block
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($Context->line()->indent() < 4 && \chop(\chop($Context->line()->text(), " \t"), $Context->line()->text()[0]) === '') {
|
||||
$level = $Context->line()->text()[0] === '=' ? 1 : 2;
|
||||
$marker = \substr($Context->line()->text(), 0, 1);
|
||||
|
||||
if ($marker !== '=' && $marker !== '-') {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (
|
||||
$Context->line()->indent() < 4
|
||||
&& \chop(\chop($Context->line()->text(), " \t"), $marker) === ''
|
||||
) {
|
||||
$level = ($marker === '=' ? 1 : 2);
|
||||
|
||||
return new self(\trim($Block->text()), $level);
|
||||
}
|
||||
|
@ -89,7 +89,7 @@ final class TList implements ContinuableBlock
|
||||
State $State = null
|
||||
) {
|
||||
list($type, $pattern) = (
|
||||
$Context->line()->text()[0] <= '-'
|
||||
\substr($Context->line()->text(), 0, 1) <= '-'
|
||||
? ['ul', '[*+-]']
|
||||
: ['ol', '[0-9]{1,9}+[.\)]']
|
||||
);
|
||||
|
@ -101,7 +101,11 @@ final class Table implements ContinuableBlock
|
||||
return null;
|
||||
}
|
||||
|
||||
if (\count($this->alignments) !== 1 && $Context->line()->text()[0] !== '|' && !\strpos($Context->line()->text(), '|')) {
|
||||
if (
|
||||
\count($this->alignments) !== 1
|
||||
&& \substr($Context->line()->text(), 0, 1) !== '|'
|
||||
&& !\strpos($Context->line()->text(), '|')
|
||||
) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -148,7 +152,7 @@ final class Table implements ContinuableBlock
|
||||
/** @var _Alignment|null */
|
||||
$alignment = null;
|
||||
|
||||
if ($dividerCell[0] === ':') {
|
||||
if (\substr($dividerCell, 0, 1) === ':') {
|
||||
$alignment = 'left';
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ final class Code implements Inline
|
||||
*/
|
||||
public static function build(Excerpt $Excerpt, State $State)
|
||||
{
|
||||
$marker = $Excerpt->text()[0];
|
||||
$marker = \substr($Excerpt->text(), 0, 1);
|
||||
|
||||
if ($marker !== '`') {
|
||||
return null;
|
||||
|
@ -52,17 +52,20 @@ final class Emphasis implements Inline
|
||||
*/
|
||||
public static function build(Excerpt $Excerpt, State $State)
|
||||
{
|
||||
if (! isset($Excerpt->text()[1])) {
|
||||
if (\strlen($Excerpt->text()) < 3) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$marker = $Excerpt->text()[0];
|
||||
$marker = \substr($Excerpt->text(), 0, 1);
|
||||
|
||||
if ($marker !== '*' && $marker !== '_') {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($Excerpt->text()[1] === $marker && \preg_match(self::$STRONG_REGEX[$marker], $Excerpt->text(), $matches)) {
|
||||
if (
|
||||
\substr($Excerpt->text(), 1, 1) === $marker
|
||||
&& \preg_match(self::$STRONG_REGEX[$marker], $Excerpt->text(), $matches)
|
||||
) {
|
||||
$emphasis = 'strong';
|
||||
} elseif (\preg_match(self::$EM_REGEX[$marker], $Excerpt->text(), $matches)) {
|
||||
$emphasis = 'em';
|
||||
|
@ -33,8 +33,10 @@ final class EscapeSequence implements Inline
|
||||
*/
|
||||
public static function build(Excerpt $Excerpt, State $State)
|
||||
{
|
||||
if (isset($Excerpt->text()[1]) && \strpbrk($c = $Excerpt->text()[1], self::SPECIALS) !== false) {
|
||||
return new self($c);
|
||||
$char = \substr($Excerpt->text(), 1, 1);
|
||||
|
||||
if ($char !== '' && \strpbrk($char, self::SPECIALS) !== false) {
|
||||
return new self($char);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -41,7 +41,7 @@ final class Strikethrough implements Inline
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($text[1] === '~' && \preg_match('/^~~(?=\S)(.+?)(?<=\S)~~/', $text, $matches)) {
|
||||
if (\substr($text, 1, 1) === '~' && \preg_match('/^~~(?=\S)(.+?)(?<=\S)~~/', $text, $matches)) {
|
||||
return new self($matches[1], \strlen($matches[0]));
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ final class Parsedown
|
||||
}
|
||||
}
|
||||
|
||||
$marker = $Line->text()[0];
|
||||
$marker = \substr($Line->text(), 0, 1);
|
||||
|
||||
$potentialBlockTypes = \array_merge(
|
||||
$State->get(BlockTypes::class)->unmarked(),
|
||||
|
Loading…
Reference in New Issue
Block a user