Code Duplication    Length = 34-34 lines in 2 locations

src/ParsedownHighlight.php 1 location

@@ 9-42 (lines=34) @@
6
use Highlight\Highlighter;
7
use Parsedown;
8
9
class ParsedownHighlight extends Parsedown
10
{
11
    protected $highlighter;
12
13
    public function __construct()
14
    {
15
        $this->highlighter = new Highlighter;
16
    }
17
18
    protected function blockFencedCodeComplete($block)
19
    {
20
        if (! isset($block['element']['element']['attributes'])) {
21
            return $block;
22
        }
23
24
        $code = $block['element']['element']['text'];
25
        $languageClass = $block['element']['element']['attributes']['class'];
26
        $language = explode('-', $languageClass);
27
28
        try {
29
            $highlighted = $this->highlighter->highlight($language[1], $code);
30
            $block['element']['element']['attributes']['class'] = vsprintf('%s hljs %s', [
31
                $languageClass,
32
                $highlighted->language,
33
            ]);
34
            $block['element']['element']['rawHtml'] = $highlighted->value;
35
            unset($block['element']['element']['text']);
36
        } catch (DomainException $e) {
37
            //
38
        }
39
40
        return $block;
41
    }
42
}
43

src/ParsedownHighlightExtra.php 1 location

@@ 9-42 (lines=34) @@
6
use Highlight\Highlighter;
7
use ParsedownExtra;
8
9
class ParsedownHighlightExtra extends ParsedownExtra
10
{
11
    protected $highlighter;
12
13
    public function __construct()
14
    {
15
        $this->highlighter = new Highlighter;
16
    }
17
18
    protected function blockFencedCodeComplete($block)
19
    {
20
        if (! isset($block['element']['element']['attributes'])) {
21
            return $block;
22
        }
23
24
        $code = $block['element']['element']['text'];
25
        $languageClass = $block['element']['element']['attributes']['class'];
26
        $language = explode('-', $languageClass);
27
28
        try {
29
            $highlighted = $this->highlighter->highlight($language[1], $code);
30
            $block['element']['element']['attributes']['class'] = vsprintf('%s hljs %s', [
31
                $languageClass,
32
                $highlighted->language,
33
            ]);
34
            $block['element']['element']['rawHtml'] = $highlighted->value;
35
            unset($block['element']['element']['text']);
36
        } catch (DomainException $e) {
37
            //
38
        }
39
40
        return $block;
41
    }
42
}
43