Skip to content

Commit eea185e

Browse files
committed
Fix double setext heading underlines
Related-to: GH-22.
1 parent 4f77634 commit eea185e

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

Diff for: src/construct/document.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ pub fn flow_end(tokenizer: &mut Tokenizer) -> State {
423423
if !document_lazy_continuation_current && !child.events.is_empty() {
424424
let before = skip::opt_back(&child.events, child.events.len() - 1, &[Name::LineEnding]);
425425
let name = &child.events[before].name;
426-
if name == &Name::Content {
426+
if name == &Name::Content || name == &Name::HeadingSetextUnderline {
427427
document_lazy_continuation_current = true;
428428
}
429429
}

Diff for: src/construct/heading_setext.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,12 @@ pub fn start(tokenizer: &mut Tokenizer) -> State {
9292
&& !tokenizer.pierce
9393
// Require a paragraph before.
9494
&& (!tokenizer.events.is_empty()
95-
&& tokenizer.events[skip::opt_back(
95+
&& matches!(tokenizer.events[skip::opt_back(
9696
&tokenizer.events,
9797
tokenizer.events.len() - 1,
9898
&[Name::LineEnding, Name::SpaceOrTab],
9999
)]
100-
.name
101-
== Name::Content)
100+
.name, Name::Content | Name::HeadingSetextUnderline))
102101
{
103102
tokenizer.enter(Name::HeadingSetextUnderline);
104103

Diff for: tests/heading_setext.rs

+6
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,12 @@ fn heading_setext() -> Result<(), String> {
249249
"should prefer a setext heading over an interrupting list"
250250
);
251251

252+
assert_eq!(
253+
to_html("[a]: b\n=\n="),
254+
"<h1>=</h1>",
255+
"should support a two setext heading underlines after a definition, as a setext heading"
256+
);
257+
252258
assert_eq!(
253259
to_html("> ===\na"),
254260
"<blockquote>\n<p>===\na</p>\n</blockquote>",

0 commit comments

Comments
 (0)