use pulldown_cmark::{Event, Parser};
pub fn extract_frontmatter(input: &str) -> (Option<String>, &str) {
if !input.starts_with("---\n") {
return (None, input);
}
let after_opening = &input[4..]; if let Some(end_pos) = after_opening.find("\n---\n") {
let frontmatter = after_opening[..end_pos].to_string();
let remaining = &after_opening[end_pos + 5..]; (Some(format!("---\n{}\n---\n\n", frontmatter)), remaining)
} else {
(None, input)
}
}
pub fn parse_markdown(input: &str) -> Vec<Event<'_>> {
Parser::new(input).collect()
}