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”);