sevenmark_parser/parser/
document.rs1use crate::parser::ParserInput;
2use crate::parser::brace::brace_redirect_parser;
3use crate::parser::element::element_parser;
4use sevenmark_ast::Element;
5use winnow::Result;
6use winnow::combinator::opt;
7use winnow::prelude::*;
8
9pub fn document_parser(parser_input: &mut ParserInput) -> Result<Vec<Element>> {
12 if parser_input.input.starts_with("{{{#redirect") {
15 return brace_redirect_parser(parser_input).map(|redirect| vec![redirect]);
16 }
17
18 opt(element_parser)
20 .map(|elements| elements.unwrap_or_default())
21 .parse_next(parser_input)
22}