inline: allow empty span when followed by url/label/attrs
allow e.g. images without alt text ![](url)
This commit is contained in:
parent
329207689b
commit
b2d15383e7
2 changed files with 35 additions and 2 deletions
|
@ -649,7 +649,9 @@ impl<'s> Parser<'s> {
|
||||||
(e, e + 1)
|
(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
|
// empty container
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
@ -1469,6 +1471,38 @@ mod test {
|
||||||
test_parse!("[abc]", (Str, "[abc]"));
|
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]
|
#[test]
|
||||||
fn span_attr() {
|
fn span_attr() {
|
||||||
test_parse!(
|
test_parse!(
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
block_list_flat:large list marker number
|
block_list_flat:large list marker number
|
||||||
inline_links_flat:space before img, img attrs order
|
inline_links_flat:space before img, img attrs order
|
||||||
inline_links_nested:empty link text
|
|
||||||
|
|
Loading…
Reference in a new issue