mirror of
https://github.com/erusev/parsedown.git
synced 2023-08-10 21:13:06 +03:00
Merge pull request #600 from aidantwoods/fix/code-block-closer
Fix fenced code block closer length rules
This commit is contained in:
commit
96581dbe16
@ -443,16 +443,16 @@ class Parsedown
|
||||
|
||||
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(
|
||||
'name' => 'code',
|
||||
'text' => '',
|
||||
);
|
||||
|
||||
if (isset($matches[1]))
|
||||
if (isset($matches[2]))
|
||||
{
|
||||
$class = 'language-'.$matches[1];
|
||||
$class = 'language-'.$matches[2];
|
||||
|
||||
$Element['attributes'] = array(
|
||||
'class' => $class,
|
||||
@ -461,6 +461,7 @@ class Parsedown
|
||||
|
||||
$Block = array(
|
||||
'char' => $Line['text'][0],
|
||||
'openerLength' => mb_strlen($matches[1]),
|
||||
'element' => array(
|
||||
'name' => 'pre',
|
||||
'element' => $Element,
|
||||
@ -485,8 +486,10 @@ class Parsedown
|
||||
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['complete'] = true;
|
||||
|
@ -8,4 +8,7 @@ echo $message;</code></pre>
|
||||
<pre><code class="language-html+php"><?php
|
||||
echo "Hello World";
|
||||
?>
|
||||
<a href="http://auraphp.com" >Aura Project</a></code></pre>
|
||||
<a href="http://auraphp.com" >Aura Project</a></code></pre>
|
||||
<pre><code>the following isn't quite enough to close
|
||||
```
|
||||
still a fenced code block</code></pre>
|
@ -22,4 +22,10 @@ echo 'language identifier with non words';
|
||||
echo "Hello World";
|
||||
?>
|
||||
<a href="http://auraphp.com" >Aura Project</a>
|
||||
```
|
||||
```
|
||||
|
||||
````
|
||||
the following isn't quite enough to close
|
||||
```
|
||||
still a fenced code block
|
||||
````
|
Loading…
Reference in New Issue
Block a user