erusev / parsedown

Better Markdown Parser in PHP
https://parsedown.org
MIT License
14.76k stars 1.12k forks source link

Parsedown extension to open in new window #857

Open lipupini opened 11 months ago

lipupini commented 11 months ago

I'm not sure if this is posted somewhere already:

<?php

class ParsedownWithTargetBlank extends \Parsedown {
    private function addTargetBlank(string $method, array $Excerpt): array|null {
        $return = parent::$method($Excerpt);
        if (!$return) {
            return null;
        }
        $return['element']['attributes']['target'] = '_blank';
        $return['element']['attributes']['rel'] = 'noopener noreferrer';
        return $return;
    }

    protected function inlineUrl($Excerpt) {
        return $this->addTargetBlank('inlineUrl', $Excerpt);
    }

    protected function inlineLink($Excerpt) {
        return $this->addTargetBlank('inlineLink', $Excerpt);
    }

    protected function inlineUrlTag($Excerpt) {
        return $this->addTargetBlank('inlineUrlTag', $Excerpt);
    }
}
madurapa commented 7 months ago

Thank you! works like a charm!