diff --git a/src/parser/citation.rs b/src/parser/citation.rs index 9aa229b1..c06813be 100644 --- a/src/parser/citation.rs +++ b/src/parser/citation.rs @@ -2,7 +2,6 @@ use nom::branch::alt; use nom::bytes::complete::tag; use nom::bytes::complete::tag_no_case; use nom::character::complete::anychar; - use nom::combinator::opt; use nom::combinator::recognize; use nom::combinator::verify; diff --git a/src/parser/entity.rs b/src/parser/entity.rs index 330a4d32..4683e1ce 100644 --- a/src/parser/entity.rs +++ b/src/parser/entity.rs @@ -2,7 +2,6 @@ use nom::branch::alt; use nom::bytes::complete::tag; use nom::bytes::complete::tag_no_case; use nom::character::complete::satisfy; - use nom::combinator::eof; use nom::combinator::peek; use nom::combinator::recognize; diff --git a/src/parser/footnote_definition.rs b/src/parser/footnote_definition.rs index 6b643144..310620da 100644 --- a/src/parser/footnote_definition.rs +++ b/src/parser/footnote_definition.rs @@ -80,21 +80,10 @@ fn footnote_definition_end<'r, 's>( context: Context<'r, 's>, input: OrgSource<'s>, ) -> Res, OrgSource<'s>> { - let allow_nesting_context = - context.with_additional_node(ContextElement::Context("allow nesting footnotes")); - let footnote_definition_matcher = parser_with_context!(footnote_definition)( - if immediate_in_section(context, "footnote definition") { - &allow_nesting_context - } else { - context - }, - ); - let maybe_consume_trailing_whitespace_matcher = - parser_with_context!(maybe_consume_trailing_whitespace)(context); let (remaining, source) = alt(( recognize(tuple(( - maybe_consume_trailing_whitespace_matcher, - footnote_definition_matcher, + parser_with_context!(maybe_consume_trailing_whitespace)(context), + detect_footnote_definition, ))), recognize(tuple(( start_of_line, @@ -107,6 +96,12 @@ fn footnote_definition_end<'r, 's>( Ok((remaining, source)) } +#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))] +fn detect_footnote_definition<'s>(input: OrgSource<'s>) -> Res, ()> { + tuple((start_of_line, tag_no_case("[fn:"), label, tag("]")))(input)?; + Ok((input, ())) +} + #[cfg(test)] mod tests { use super::*; diff --git a/src/parser/inline_babel_call.rs b/src/parser/inline_babel_call.rs index 99857574..6f3479e0 100644 --- a/src/parser/inline_babel_call.rs +++ b/src/parser/inline_babel_call.rs @@ -4,7 +4,6 @@ use nom::bytes::complete::tag_no_case; use nom::character::complete::anychar; use nom::character::complete::line_ending; use nom::character::complete::one_of; - use nom::combinator::opt; use nom::combinator::recognize; use nom::combinator::verify; diff --git a/src/parser/inline_source_block.rs b/src/parser/inline_source_block.rs index b642339d..e61bea0d 100644 --- a/src/parser/inline_source_block.rs +++ b/src/parser/inline_source_block.rs @@ -4,7 +4,6 @@ use nom::bytes::complete::tag_no_case; use nom::character::complete::anychar; use nom::character::complete::line_ending; use nom::character::complete::one_of; - use nom::combinator::opt; use nom::combinator::recognize; use nom::combinator::verify; diff --git a/src/parser/regular_link.rs b/src/parser/regular_link.rs index 4bc27958..9a36d09d 100644 --- a/src/parser/regular_link.rs +++ b/src/parser/regular_link.rs @@ -3,7 +3,6 @@ use nom::bytes::complete::escaped; use nom::bytes::complete::tag; use nom::bytes::complete::take_till1; use nom::character::complete::one_of; - use nom::combinator::verify; use nom::multi::many_till; diff --git a/src/parser/subscript_and_superscript.rs b/src/parser/subscript_and_superscript.rs index 4b3ac127..91d42741 100644 --- a/src/parser/subscript_and_superscript.rs +++ b/src/parser/subscript_and_superscript.rs @@ -2,7 +2,6 @@ use nom::branch::alt; use nom::bytes::complete::tag; use nom::character::complete::anychar; use nom::character::complete::one_of; - use nom::combinator::map; use nom::combinator::not; use nom::combinator::opt; diff --git a/src/parser/target.rs b/src/parser/target.rs index 5d199f6e..fd6b040c 100644 --- a/src/parser/target.rs +++ b/src/parser/target.rs @@ -1,7 +1,6 @@ use nom::bytes::complete::tag; use nom::character::complete::anychar; use nom::character::complete::one_of; - use nom::combinator::peek; use nom::combinator::recognize; use nom::combinator::verify;