all2md.parsers.markdown

Markdown to AST converter.

This module provides conversion from Markdown documents to AST representation using the mistune parser. It enables bidirectional transformation by parsing markdown into the same AST structure used for other formats.

class all2md.parsers.markdown.MarkdownToAstConverter

Bases: BaseParser

Convert Markdown to AST representation.

This converter uses mistune to parse Markdown and builds an AST that matches the structure used throughout all2md, enabling bidirectional conversion and transformation pipelines.

Parameters:

options (MarkdownParserOptions or None, default = None) – Parser configuration options

Examples

Basic parsing:

>>> converter = MarkdownToAstConverter()
>>> doc = converter.parse("# Hello\\n\\nThis is **bold**.")

With options:

>>> options = MarkdownParserOptions(flavor="gfm", parse_tables=True)
>>> converter = MarkdownToAstConverter(options)
>>> doc = converter.parse(markdown_text)

Initialize the Markdown parser with options and progress callback.

__init__(options: MarkdownParserOptions | None = None, progress_callback: Callable[[ProgressEvent], None] | None = None)

Initialize the Markdown parser with options and progress callback.

parse(input_data: str | Path | IO[bytes] | bytes) Document

Parse Markdown input into AST Document.

Parameters:

input_data (str, Path, IO[bytes], or bytes) – Markdown input to parse. Can be: - File path (str or Path) - File-like object in binary mode - Raw markdown bytes - Markdown string

Returns:

AST document node

Return type:

Document

extract_metadata(document: Any) DocumentMetadata

Extract metadata from Markdown document.

Parameters:

document (Any) – Parsed Markdown document (AST or raw text)

Returns:

Empty metadata (Markdown doesn’t have standard metadata)

Return type:

DocumentMetadata

Notes

Markdown files do not have a standardized metadata format in the core specification. Some flavors support YAML frontmatter, but that is handled separately in the parsing pipeline, not here.

all2md.parsers.markdown.markdown_to_ast(markdown_content: str, options: MarkdownParserOptions | None = None) Document

Convert Markdown string to AST.

This is a convenience function that creates a converter and parses the markdown in one step.

Parameters:
  • markdown_content (str) – Markdown text to parse

  • options (MarkdownParserOptions or None, default = None) – Parser configuration

Returns:

AST document node

Return type:

Document

Examples

>>> from all2md.parsers.markdown import markdown_to_ast
>>> doc = markdown_to_ast("# Hello\\n\\nWorld")
>>> len(doc.children)
2