parse method

MarkdownDocument parse(
  1. String markdown
)

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(),
        ),
    ],
  );
}