mirror of
https://github.com/erusev/parsedown.git
synced 2023-08-10 21:13:06 +03:00
Add option to open links in new tab
This commit is contained in:
parent
cb17b6477d
commit
25ccf5ba90
@ -101,6 +101,15 @@ class Parsedown
|
|||||||
'steam:',
|
'steam:',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $useTargetBlankLinks = false;
|
||||||
|
|
||||||
|
function setTargetBlankLinks($useTargetBlankLinks)
|
||||||
|
{
|
||||||
|
$this->useTargetBlankLinks = (bool)$useTargetBlankLinks;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Lines
|
# Lines
|
||||||
#
|
#
|
||||||
@ -1154,6 +1163,16 @@ class Parsedown
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function updateLinkAttributes($attributes)
|
||||||
|
{
|
||||||
|
if ($this->useTargetBlankLinks)
|
||||||
|
{
|
||||||
|
$attributes['target'] = '_blank';
|
||||||
|
$attributes['rel'] = 'noopener noreferrer';
|
||||||
|
}
|
||||||
|
return $attributes;
|
||||||
|
}
|
||||||
|
|
||||||
protected function inlineEmailTag($Excerpt)
|
protected function inlineEmailTag($Excerpt)
|
||||||
{
|
{
|
||||||
if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<((mailto:)?\S+?@\S+?)>/i', $Excerpt['text'], $matches))
|
if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<((mailto:)?\S+?@\S+?)>/i', $Excerpt['text'], $matches))
|
||||||
@ -1170,9 +1189,9 @@ class Parsedown
|
|||||||
'element' => array(
|
'element' => array(
|
||||||
'name' => 'a',
|
'name' => 'a',
|
||||||
'text' => $matches[1],
|
'text' => $matches[1],
|
||||||
'attributes' => array(
|
'attributes' => $this->updateLinkAttributes(array(
|
||||||
'href' => $url,
|
'href' => $url,
|
||||||
),
|
)),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1262,10 +1281,10 @@ class Parsedown
|
|||||||
'handler' => 'line',
|
'handler' => 'line',
|
||||||
'nonNestables' => array('Url', 'Link'),
|
'nonNestables' => array('Url', 'Link'),
|
||||||
'text' => null,
|
'text' => null,
|
||||||
'attributes' => array(
|
'attributes' => $this->updateLinkAttributes(array(
|
||||||
'href' => null,
|
'href' => null,
|
||||||
'title' => null,
|
'title' => null,
|
||||||
),
|
)),
|
||||||
);
|
);
|
||||||
|
|
||||||
$extent = 0;
|
$extent = 0;
|
||||||
@ -1417,9 +1436,9 @@ class Parsedown
|
|||||||
'element' => array(
|
'element' => array(
|
||||||
'name' => 'a',
|
'name' => 'a',
|
||||||
'text' => $url,
|
'text' => $url,
|
||||||
'attributes' => array(
|
'attributes' => $this->updateLinkAttributes(array(
|
||||||
'href' => $url,
|
'href' => $url,
|
||||||
),
|
)),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1438,9 +1457,9 @@ class Parsedown
|
|||||||
'element' => array(
|
'element' => array(
|
||||||
'name' => 'a',
|
'name' => 'a',
|
||||||
'text' => $url,
|
'text' => $url,
|
||||||
'attributes' => array(
|
'attributes' => $this->updateLinkAttributes(array(
|
||||||
'href' => $url,
|
'href' => $url,
|
||||||
),
|
)),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user