30 lines
752 B
PHP
30 lines
752 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace LogseqGem;
|
|
|
|
use League\CommonMark\Node\Block\Document;
|
|
|
|
use League\CommonMark\Parser\MarkdownParser;
|
|
use League\CommonMark\Environment\Environment;
|
|
use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension;
|
|
|
|
abstract class Parser {
|
|
private MarkdownParser $parser;
|
|
|
|
protected Document $document;
|
|
|
|
public function __construct() {
|
|
$environment = new Environment();
|
|
$environment->addExtension(new CommonMarkCoreExtension());
|
|
$this->parser = new MarkdownParser($environment);
|
|
}
|
|
|
|
public function load(string $path) {
|
|
$markdown = file_get_contents($path);
|
|
$this->document = $this->parser->parse($markdown);
|
|
return $this->document;
|
|
}
|
|
}
|