mirror of
https://github.com/erusev/parsedown.git
synced 2024-09-19 19:41:29 +02:00
Fix fenced code block closer to match CommonMark rules
This commit is contained in:
parent
38ea813b0e
commit
06b810cd4a
@ -443,16 +443,16 @@ class Parsedown
|
|||||||
|
|
||||||
protected function blockFencedCode($Line)
|
protected function blockFencedCode($Line)
|
||||||
{
|
{
|
||||||
if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([^`]+)?[ ]*$/', $Line['text'], $matches))
|
if (preg_match('/^(['.$Line['text'][0].']{3,})[ ]*([^`]+)?[ ]*$/', $Line['text'], $matches))
|
||||||
{
|
{
|
||||||
$Element = array(
|
$Element = array(
|
||||||
'name' => 'code',
|
'name' => 'code',
|
||||||
'text' => '',
|
'text' => '',
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isset($matches[1]))
|
if (isset($matches[2]))
|
||||||
{
|
{
|
||||||
$class = 'language-'.$matches[1];
|
$class = 'language-'.$matches[2];
|
||||||
|
|
||||||
$Element['attributes'] = array(
|
$Element['attributes'] = array(
|
||||||
'class' => $class,
|
'class' => $class,
|
||||||
@ -461,6 +461,7 @@ class Parsedown
|
|||||||
|
|
||||||
$Block = array(
|
$Block = array(
|
||||||
'char' => $Line['text'][0],
|
'char' => $Line['text'][0],
|
||||||
|
'openerLength' => mb_strlen($matches[1]),
|
||||||
'element' => array(
|
'element' => array(
|
||||||
'name' => 'pre',
|
'name' => 'pre',
|
||||||
'element' => $Element,
|
'element' => $Element,
|
||||||
@ -485,8 +486,10 @@ class Parsedown
|
|||||||
unset($Block['interrupted']);
|
unset($Block['interrupted']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preg_match('/^'.$Block['char'].'{3,}[ ]*$/', $Line['text']))
|
if (
|
||||||
{
|
preg_match('/^(['.preg_quote($Block['char']).']{3,})[ ]*$/', $Line['text'], $matches)
|
||||||
|
and mb_strlen($matches[1]) >= $Block['openerLength']
|
||||||
|
) {
|
||||||
$Block['element']['element']['text'] = substr($Block['element']['element']['text'], 1);
|
$Block['element']['element']['text'] = substr($Block['element']['element']['text'], 1);
|
||||||
|
|
||||||
$Block['complete'] = true;
|
$Block['complete'] = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user