I have a markdown File with frontMatter, so I use the frontmatterextension to get the source witthout frontmatter.
But then the line numbers in the nodes no longer match with the original source file.
In order to fix this, I should have access to the lineOffset which gives the first line of the source without frontmatter.
By this I could implement a proper reporting.
As of now I work around this. But it would be simpler if MarkdownInput had a getter for $lineOffset
maybe it would even be possible that the frontmatter is represented in the AST.
Example
public function load(string $markdown): self {
$frontMatterAndMarkdown = $this->parseFrontMatter($markdown);
$this->sourceText = new SourceText($frontMatterAndMarkdown->markdown);
$this->documentAst = $this->markdownParser->parse($frontMatterAndMarkdown->markdown);
$this->lineOffset = $this->getLineOffset($markdown, $frontMatterAndMarkdown->markdown);
return $this;
}
private function getLineOffset($markdownWithFrontmatter, $markdown) {
$startpos = strpos($markdownWithFrontmatter, $markdown);
return substr_count($markdownWithFrontmatter, "\n", 0, $startpos);
}
would be
public function load(string $markdown): self {
$frontMatterAndMarkdown = $this->parseFrontMatter($markdown);
$this->sourceText = new SourceText($frontMatterAndMarkdown->markdown);
$this->documentAst = $this->markdownParser->parse($frontMatterAndMarkdown->markdown);
$this->lineOffset = $frontMatterAndMarkdown->getLineOffset(); // <---
return $this;
}
Did this project help you today? Did it make you happy in any way?
This project is great, has a clear architecture and no surprises. Thanks so much.
Description
I have a markdown File with frontMatter, so I use the frontmatterextension to get the source witthout frontmatter. But then the line numbers in the nodes no longer match with the original source file.
In order to fix this, I should have access to the lineOffset which gives the first line of the source without frontmatter.
By this I could implement a proper reporting.
As of now I work around this. But it would be simpler if MarkdownInput had a getter for $lineOffset
maybe it would even be possible that the frontmatter is represented in the AST.
Example
would be
Did this project help you today? Did it make you happy in any way?
This project is great, has a clear architecture and no surprises. Thanks so much.