From 185c761a5d38337954a9552a7fd3c0dce227a188 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 26 Nov 2022 17:51:07 -0500 Subject: [PATCH] Move the paragraph context into the paragraph parser. --- src/parser/text.rs | 8 +++++--- src/parser/text_element_parser.rs | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/parser/text.rs b/src/parser/text.rs index 09fc5423..6e965631 100644 --- a/src/parser/text.rs +++ b/src/parser/text.rs @@ -130,12 +130,14 @@ pub fn link_end(input: &str) -> Res<&str, TextElement> { } pub fn paragraph_end(input: &str) -> Res<&str, &str> { - recognize(tuple((map(line_break, TextElement::LineBreak), blank_line)))(input) + recognize(tuple(( + map(line_break, TextElement::LineBreak), + many1(blank_line), + )))(input) } pub fn document(input: &str) -> Res<&str, Vec<(Vec, &str)>> { let initial_context = ContextTree::new(); - let paragraph_context = initial_context.with_additional_fail_matcher(¶graph_end); - let ret = many1(parser_with_context!(paragraph)(¶graph_context))(input); + let ret = many1(parser_with_context!(paragraph)(&initial_context))(input); ret } diff --git a/src/parser/text_element_parser.rs b/src/parser/text_element_parser.rs index f874e78a..1b1dd7ef 100644 --- a/src/parser/text_element_parser.rs +++ b/src/parser/text_element_parser.rs @@ -84,6 +84,8 @@ pub fn paragraph<'s, 'r>( i: &'s str, context: &'r OrgModeContext<'r>, ) -> Res<&'s str, (Vec>, &'s str)> { - let text_element_parser = parser_with_context!(flat_text_element)(context); - many_till(text_element_parser, paragraph_end)(i) + let paragraph_context = context.with_additional_fail_matcher(¶graph_end); + let text_element_parser = parser_with_context!(flat_text_element)(¶graph_context); + let ret = many_till(text_element_parser, paragraph_end)(i); + ret }