1pub fn split_yaml_frontmatter(content: &str) -> anyhow::Result<(&str, &str)> {
7 let content = content.trim_start();
8 if !content.starts_with("---") {
9 anyhow::bail!("missing YAML frontmatter delimiter (---)");
10 }
11
12 let after_first = content[3..].trim_start_matches(['\n', '\r']);
14
15 let mut pos = 0;
17 for line in after_first.lines() {
18 if line.trim() == "---" {
19 let frontmatter = &after_first[..pos].trim_end();
20 let body_start = pos + line.len();
21 let body = after_first[body_start..].trim_start_matches(['\n', '\r']);
23 return Ok((frontmatter, body));
24 }
25 pos += line.len() + 1; }
27
28 anyhow::bail!("missing closing YAML frontmatter delimiter (---)")
29}