Completed
Pull Request — master (#14)
by ARCANEDEV
02:58 queued 45s
created

CommonMarkParser   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 10
c 0
b 0
f 0
ccs 7
cts 7
cp 1
wmc 1
lcom 0
cbo 5

1 Method

Rating   Name   Duplication   Size   Complexity  
A parse() 0 11 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Arcanedev\LaravelMarkdown\Parsers;
6
7
use Illuminate\Support\HtmlString;
8
use League\CommonMark\CommonMarkConverter;
9
use League\CommonMark\Environment;
10
use League\CommonMark\Ext\Table\TableExtension;
11
12
/**
13
 * Class     CommonMarkParser
14
 *
15
 * @package  Arcanedev\LaravelMarkdown
16
 * @author   ARCANEDEV <[email protected]>
17
 */
18
class CommonMarkParser extends AbstractParser
19
{
20
    /* -----------------------------------------------------------------
21
     |  Main Methods
22
     | -----------------------------------------------------------------
23
     */
24
25
    /**
26
     * Convert the given Markdown text into HTML.
27
     *
28
     * @param  string  $text
29
     *
30
     * @return \Illuminate\Support\HtmlString
31
     */
32 10
    public function parse(string $text): HtmlString
33
    {
34 10
        $environment = tap(Environment::createCommonMarkEnvironment())
35 10
            ->addExtension(new TableExtension);
36
37 10
        $converter = new CommonMarkConverter([
38 10
            'allow_unsafe_links' => false,
39 5
        ], $environment);
40
41 10
        return new HtmlString($converter->convertToHtml($text));
42
    }
43
}
44