mirror of
https://github.com/erusev/parsedown.git
synced 2023-08-10 21:13:06 +03:00
Fix Issue #358 – preventing double nested links
1. Add the ability for a parsed element to enforce that the line handler not parse any (immediate) child elements of a specified type. 2. Use 1. to allow parsed Url elements to tell the line handler not to parse any child Links or Urls where they are immediate children.
This commit is contained in:
parent
a2ed1592bd
commit
d6d5f53ff4
@ -987,7 +987,7 @@ class Parsedown
|
|||||||
# ~
|
# ~
|
||||||
#
|
#
|
||||||
|
|
||||||
public function line($text)
|
public function line($text, $non_nestables=array())
|
||||||
{
|
{
|
||||||
$markup = '';
|
$markup = '';
|
||||||
|
|
||||||
@ -1003,6 +1003,12 @@ class Parsedown
|
|||||||
|
|
||||||
foreach ($this->InlineTypes[$marker] as $inlineType)
|
foreach ($this->InlineTypes[$marker] as $inlineType)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(in_array($inlineType, $non_nestables))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$Inline = $this->{'inline'.$inlineType}($Excerpt);
|
$Inline = $this->{'inline'.$inlineType}($Excerpt);
|
||||||
|
|
||||||
if ( ! isset($Inline))
|
if ( ! isset($Inline))
|
||||||
@ -1183,6 +1189,7 @@ class Parsedown
|
|||||||
$Element = array(
|
$Element = array(
|
||||||
'name' => 'a',
|
'name' => 'a',
|
||||||
'handler' => 'line',
|
'handler' => 'line',
|
||||||
|
'non_nestables' => array('Url', 'Link'),
|
||||||
'text' => null,
|
'text' => null,
|
||||||
'attributes' => array(
|
'attributes' => array(
|
||||||
'href' => null,
|
'href' => null,
|
||||||
@ -1410,9 +1417,11 @@ class Parsedown
|
|||||||
{
|
{
|
||||||
$markup .= '>';
|
$markup .= '>';
|
||||||
|
|
||||||
|
if(!isset($Element['non_nestables'])) $Element['non_nestables'] = array();
|
||||||
|
|
||||||
if (isset($Element['handler']))
|
if (isset($Element['handler']))
|
||||||
{
|
{
|
||||||
$markup .= $this->{$Element['handler']}($Element['text']);
|
$markup .= $this->{$Element['handler']}($Element['text'], $Element['non_nestables']);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user