parse_markdown

Function parse_markdown 

Source
fn parse_markdown(
    manifest: &PackManifest,
    file: &str,
    content: &str,
) -> Result<MarkdownDoc, PackError>
Expand description

Parse a pack markdown document into a structured MarkdownDoc, validating headings and fenced blocks and extracting constraints, tool references, and RAG configuration.

On success returns a MarkdownDoc containing the trimmed System and PCP sections, a list of User sections with their fenced blocks, and aggregated extracted metadata (constraints, validated tool refs, optional RAG config). On failure returns a PackError describing the first structural or validation issue encountered (missing or misordered headings, unterminated or invalid fenced blocks, invalid tool references, etc.).

§Examples

let manifest = PackManifest::default();
let content = r#"

system text

# PCP

pcp text

## User

user prompt
```constraints
must not reveal secrets

“#;

let doc = parse_markdown(&manifest, “prompt.md”, content).unwrap(); assert_eq!(doc.file, “prompt.md”);