|
|
- <?php
-
- namespace App\Helpers;
-
- use Parsedown;
-
- /**
- * Helper to extend Parsedown
- *
- * @author Björn Hase, Tentakelfabrik
- * @license http://opensource.org/licenses/MIT The MIT License
- * @link https://gitea.tentakelfabrik.de/Tentakelfabrik/super-gear-directus
- *
- */
-
- class MarkdownHelper extends Parsedown
- {
- /**
- *
- * @var string
- */
- const EXTERNAL_LINK = "/^(http|https):\/\//";
- const INNER_BRACKETS = "/\){(.*?)\}/";
- const TARGET_BLANK = "_blank";
- const DIVIDER_METHOD = ':';
- const DIVIDER_SIZES = 'x';
-
- /**
- * extend default function, if a link has http|https in url,
- * then handle this link as external and set target to _blank
- *
- * @param array $excerpt
- * @return array
- */
- protected function inlineLink($excerpt)
- {
- $result = parent::inlineLink($excerpt);
-
- if (is_array($result)) {
- if (isset($result['element']['attributes'])) {
- if (preg_match(self::EXTERNAL_LINK, $result['element']['attributes']['href'])) {
- $result['element']['attributes']['target'] = self::TARGET_BLANK;
- }
- }
-
- return $result;
- }
- }
- }
|