diff --git a/src/lexer.pest b/src/lexer.pest index bfb30f1c..ff76cf68 100644 --- a/src/lexer.pest +++ b/src/lexer.pest @@ -48,6 +48,6 @@ table_newline = _{ "\r"? ~ "\n" } table_marker = _{ table_spacechar* ~ ":"? ~ "-"+ ~ ":"? ~ table_spacechar* } table_cell = { ( escaped_char | !("|" | "\r" | "\n") ~ any)* } -table_start = { "|"? ~ table_marker ~ ("|" ~ table_marker)* ~ "|"? ~ table_spacechar* | table_newline } +table_start = { "|"? ~ table_marker ~ ("|" ~ table_marker)* ~ "|"? ~ table_spacechar* ~ table_newline } table_cell_end = { "|" ~ table_spacechar* ~ table_newline? } table_row_end = { table_spacechar* ~ table_newline } diff --git a/src/tests.rs b/src/tests.rs index 813c3945..337c5d27 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -673,3 +673,21 @@ fn no_panic_on_empty_bookended_atx_headers() { "
\n" ); } + +#[test] +fn table_misparse_1() { + html_opts( + "a\n-b", + "a\n-b
\n", + |opts| opts.ext_table = true, + ); +} + +#[test] +fn table_misparse_2() { + html_opts( + "a\n-b\n-c", + "a\n-b\n-c
\n", + |opts| opts.ext_table = true, + ); +}