Skip to content

Commit

Permalink
Merge pull request #851 from notriddle/notriddle/loose-lists-sink-ships
Browse files Browse the repository at this point in the history
Count a blank line at end of indented code block towards list
  • Loading branch information
Martin1887 committed Mar 1, 2024
2 parents 34cb7d6 + 86b1794 commit ff80d0c
Show file tree
Hide file tree
Showing 3 changed files with 155 additions and 3 deletions.
67 changes: 67 additions & 0 deletions pulldown-cmark/specs/regression.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2424,6 +2424,73 @@ ISSUE 840
<p><a href="test" title="&#39;">link</a></p>
````````````````````````````````

ISSUE 850

```````````````````````````````` example
- test

test2
.
<ul>
<li>
<pre><code>test
</code></pre>
<p>test2</p>
</li>
</ul>
````````````````````````````````

```````````````````````````````` example
test

test2
.
<pre><code>test
</code></pre>
<p>test2</p>
````````````````````````````````

```````````````````````````````` example
- test
test2
.
<ul>
<li>
<pre><code>test
</code></pre>
test2</li>
</ul>
````````````````````````````````

```````````````````````````````` example
- test
- test2
.
<ul>
<li>
<pre><code>test
</code></pre>
</li>
<li>test2</li>
</ul>
````````````````````````````````

```````````````````````````````` example
- test

- test2
.
<ul>
<li>
<pre><code>test
</code></pre>
</li>
<li>
<p>test2</p>
</li>
</ul>
````````````````````````````````

ISSUE 847

```````````````````````````````` example
Expand Down
6 changes: 3 additions & 3 deletions pulldown-cmark/src/firstpass.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1068,7 +1068,7 @@ impl<'a, 'b> FirstPass<'a, 'b> {
let mut last_nonblank_child = None;
let mut last_nonblank_ix = 0;
let mut end_ix = 0;
let mut last_line_blank = false;
self.last_line_blank = false;

let mut ix = start_ix;
loop {
Expand All @@ -1077,7 +1077,7 @@ impl<'a, 'b> FirstPass<'a, 'b> {
self.append_code_text(remaining_space, line_start_ix, ix);
// TODO(spec clarification): should we synthesize newline at EOF?

if !last_line_blank {
if !self.last_line_blank {
last_nonblank_child = self.tree.cur();
last_nonblank_ix = ix;
end_ix = ix;
Expand All @@ -1100,7 +1100,7 @@ impl<'a, 'b> FirstPass<'a, 'b> {
}
ix = next_line_ix;
remaining_space = line_start.remaining_space();
last_line_blank = scan_blank_line(&bytes[ix..]).is_some();
self.last_line_blank = scan_blank_line(&bytes[ix..]).is_some();
}

// Trim trailing blank lines.
Expand Down
85 changes: 85 additions & 0 deletions pulldown-cmark/tests/suite/regression.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2893,6 +2893,91 @@ fn regression_test_182() {

#[test]
fn regression_test_183() {
let original = r##"- test
test2
"##;
let expected = r##"<ul>
<li>
<pre><code>test
</code></pre>
<p>test2</p>
</li>
</ul>
"##;

test_markdown_html(original, expected, false, false, false);
}

#[test]
fn regression_test_184() {
let original = r##" test
test2
"##;
let expected = r##"<pre><code>test
</code></pre>
<p>test2</p>
"##;

test_markdown_html(original, expected, false, false, false);
}

#[test]
fn regression_test_185() {
let original = r##"- test
test2
"##;
let expected = r##"<ul>
<li>
<pre><code>test
</code></pre>
test2</li>
</ul>
"##;

test_markdown_html(original, expected, false, false, false);
}

#[test]
fn regression_test_186() {
let original = r##"- test
- test2
"##;
let expected = r##"<ul>
<li>
<pre><code>test
</code></pre>
</li>
<li>test2</li>
</ul>
"##;

test_markdown_html(original, expected, false, false, false);
}

#[test]
fn regression_test_187() {
let original = r##"- test
- test2
"##;
let expected = r##"<ul>
<li>
<pre><code>test
</code></pre>
</li>
<li>
<p>test2</p>
</li>
</ul>
"##;

test_markdown_html(original, expected, false, false, false);
}

#[test]
fn regression_test_188() {
let original = r##"<!p>
<\!p>
Expand Down

0 comments on commit ff80d0c

Please sign in to comment.