diff --git a/src/inline.rs b/src/inline.rs index 39388ba..f097dcd 100644 --- a/src/inline.rs +++ b/src/inline.rs @@ -649,7 +649,9 @@ impl<'s> Parser<'s> { (e, e + 1) }; - if e_opener == self.events.len() - 1 && !matches!(opener, Opener::Link { .. }) { + if e_opener == self.events.len() - 1 + && !matches!(opener, Opener::Link { .. } | Opener::Span { .. }) + { // empty container return None; } @@ -1469,6 +1471,38 @@ mod test { test_parse!("[abc]", (Str, "[abc]")); } + #[test] + fn span_no_text() { + test_parse!("[]", (Str, "[]")); + test_parse!( + "[](url)", + (Enter(InlineLink(0)), "["), + (Exit(InlineLink(0)), "](url)"), + ); + test_parse!( + "![](url)", + (Enter(InlineImage(0)), "!["), + (Exit(InlineImage(0)), "](url)"), + ); + test_parse!( + "[][label]", + (Enter(ReferenceLink(0)), "["), + (Exit(ReferenceLink(0)), "][label]"), + ); + test_parse!( + "[]{.cls}", + ( + Attributes { + container: true, + attrs: 0 + }, + "{.cls}", + ), + (Enter(Span), "["), + (Exit(Span), "]") + ); + } + #[test] fn span_attr() { test_parse!( diff --git a/tests/html-ref/skip b/tests/html-ref/skip index 33a6308..cf523ad 100644 --- a/tests/html-ref/skip +++ b/tests/html-ref/skip @@ -1,3 +1,2 @@ block_list_flat:large list marker number inline_links_flat:space before img, img attrs order -inline_links_nested:empty link text