parse method
Parses markdown into an editable document tree.
Implementation
MarkdownDocument parse(String markdown) {
final parser = MarkdownParser(plugins: _plugins);
final ids = _DocumentIdFactory();
final frontmatter = _consumeFrontmatter(markdown);
final body = frontmatter?.body ?? markdown;
final sourceReader = _MarkdownBlockSourceReader(body, _plugins);
final nodes = parser.parse(body);
return MarkdownDocument(
blocks: [
if (frontmatter != null)
MarkdownFrontmatterBlock(
id: ids.block(),
content: frontmatter.content,
),
for (final node in nodes)
_blockFromAst(
node,
ids,
parser,
sourceMarkdown: sourceReader.nextBlockSource(),
),
],
);
}