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
1610e4747c
commit
12f15fff5b
@ -119,6 +119,15 @@ class Parsedown
|
|||||||
'steam:',
|
'steam:',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
protected $useTargetBlankLinks = false;
|
||||||
|
|
||||||
|
function setTargetBlankLinks($useTargetBlankLinks)
|
||||||
|
{
|
||||||
|
$this->useTargetBlankLinks = (bool)$useTargetBlankLinks;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Lines
|
# Lines
|
||||||
#
|
#
|
||||||
@ -1274,6 +1283,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)
|
||||||
{
|
{
|
||||||
$hostnameLabel = '[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?';
|
$hostnameLabel = '[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?';
|
||||||
@ -1296,9 +1315,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,
|
||||||
),
|
)),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1395,10 +1414,10 @@ class Parsedown
|
|||||||
'destination' => 'elements',
|
'destination' => 'elements',
|
||||||
),
|
),
|
||||||
'nonNestables' => array('Url', 'Link'),
|
'nonNestables' => array('Url', 'Link'),
|
||||||
'attributes' => array(
|
'attributes' => $this->updateLinkAttributes(array(
|
||||||
'href' => null,
|
'href' => null,
|
||||||
'title' => null,
|
'title' => null,
|
||||||
),
|
)),
|
||||||
);
|
);
|
||||||
|
|
||||||
$extent = 0;
|
$extent = 0;
|
||||||
@ -1547,9 +1566,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,
|
||||||
),
|
)),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1568,9 +1587,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