Don't allow headings to span multiple lines

This commit is contained in:
Laurenz 2022-04-05 14:51:06 +02:00
parent 2eacfcfa81
commit b865accae6
4 changed files with 14 additions and 14 deletions

View File

@ -364,7 +364,7 @@ mod tests {
test("hey #myfriend", 4 .. 4, "\\", 0 .. 14);
test("hey #myfriend", 4 .. 4, "\\", 3 .. 6);
test("= foo\nbar\n - a\n - b", 6 .. 9, "", 0 .. 11);
test("= foo\n bar\n baz", 6 .. 8, "", 0 .. 15);
test("= foo\n bar\n baz", 6 .. 8, "", 0 .. 9);
}
#[test]

View File

@ -161,6 +161,11 @@ fn markup(p: &mut Parser, mut at_start: bool) {
});
}
/// Parse a single line of markup.
fn markup_line(p: &mut Parser) {
markup_indented(p, usize::MAX);
}
/// Parse markup that stays right of the given `column`.
fn markup_indented(p: &mut Parser, column: usize) {
p.eat_while(|t| match t {
@ -272,8 +277,7 @@ fn heading(p: &mut Parser, at_start: bool) {
while p.eat_if(&NodeKind::Eq) {}
if at_start && p.peek().map_or(true, |kind| kind.is_space()) {
let column = p.column(p.prev_end());
markup_indented(p, column);
markup_line(p);
marker.end(p, NodeKind::Heading);
} else {
let text = p.get(current_start .. p.prev_end()).into();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -26,19 +26,15 @@ No = heading
\= No heading
---
// While indented at least as much as the start, the heading continues.
// Blocks can continue the heading.
= [This
is
multiline.
]
= This
is
indented.
= This
is not.
// Code blocks continue heading.
= A {
"B"
}
is not.
---
// Test styling.