parse_markdown

Function parse_markdown 

Source
pub fn parse_markdown(
    state: MarkdownParserState,
    input: &str,
) -> Result<Document, Err<Error<&str>>>
Expand description

Parse a Markdown string into an Abstract Syntax Tree (AST)

This is the main entry point for parsing Markdown text. It processes the input according to the CommonMark specification with GitHub Flavored Markdown extensions, returning a fully-typed AST that can be manipulated, analyzed, or rendered.

§Arguments

  • state - Parser state containing configuration options
  • input - The Markdown text to parse

§Returns

Returns a Result containing either:

  • Ok(Document) - Successfully parsed AST document
  • Err(nom::Err) - Parse error with position and context information

§Examples

Basic parsing:

use markdown_ppp::parser::{parse_markdown, MarkdownParserState};

let state = MarkdownParserState::new();
let result = parse_markdown(state, "# Hello\n\nWorld!");

match result {
    Ok(doc) => println!("Parsed {} blocks", doc.blocks.len()),
    Err(e) => eprintln!("Parse error: {:?}", e),
}

With custom configuration:

use markdown_ppp::parser::{parse_markdown, MarkdownParserState};
use markdown_ppp::parser::config::*;

let config = MarkdownParserConfig::default()
    .with_block_thematic_break_behavior(ElementBehavior::Skip);
let state = MarkdownParserState::with_config(config);

let doc = parse_markdown(state, "---\n\nContent").unwrap();

§Errors

Returns a parse error if the input contains invalid Markdown syntax that cannot be recovered from. Most malformed Markdown is handled gracefully according to CommonMark’s error handling rules.