From 905d2919e3a512e7d5fd2fa988b87371f8e685be Mon Sep 17 00:00:00 2001 From: Noah Hellman Date: Tue, 29 Aug 2023 18:16:52 +0200 Subject: [PATCH] only allow 1-char alphabetic list markers --- src/block.rs | 32 ++++++-------------------------- tests/html-ut/ut/lists.test | 8 ++++++++ 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/src/block.rs b/src/block.rs index fe0ef61..c28363e 100644 --- a/src/block.rs +++ b/src/block.rs @@ -1019,21 +1019,22 @@ impl<'s> IdentifiedBlock<'s> { let numbering = if first.is_ascii_digit() { Decimal - } else if first.is_ascii_lowercase() { - AlphaLower - } else if first.is_ascii_uppercase() { - AlphaUpper } else if is_roman_lower_digit(first) { RomanLower } else if is_roman_upper_digit(first) { RomanUpper + } else if first.is_ascii_lowercase() { + AlphaLower + } else if first.is_ascii_uppercase() { + AlphaUpper } else { return None; }; let max_len = match numbering { + AlphaLower | AlphaUpper => 1, Decimal => 19, - AlphaLower | AlphaUpper | RomanLower | RomanUpper => 13, + RomanLower | RomanUpper => 13, }; let chars_num = chars.clone(); @@ -1065,17 +1066,6 @@ impl<'s> IdentifiedBlock<'s> { }; let len_style = usize::from(start_paren) + 1; - let chars_num = std::iter::once(first).chain(chars_num.take(len_num - 1)); - let numbering = if matches!(numbering, AlphaLower) - && chars_num.clone().all(is_roman_lower_digit) - { - RomanLower - } else if matches!(numbering, AlphaUpper) && chars_num.clone().all(is_roman_upper_digit) { - RomanUpper - } else { - numbering - }; - if chars.next().map_or(true, |c| c.is_ascii_whitespace()) { Some((numbering, style, len_num + len_style)) } else { @@ -3129,16 +3119,6 @@ mod test { "I.", 1 ); - test_block!( - "IJ. abc\n", - Kind::ListItem { - indent: 0, - ty: Ordered(AlphaUpper, Period), - last_blankline: false, - }, - "IJ.", - 1 - ); test_block!( "(a) abc\n", Kind::ListItem { diff --git a/tests/html-ut/ut/lists.test b/tests/html-ut/ut/lists.test index 20b5c3e..1f613b6 100644 --- a/tests/html-ut/ut/lists.test +++ b/tests/html-ut/ut/lists.test @@ -10,3 +10,11 @@ item

para

``` + +Only single letter alphabetic list markers. + +``` +word. Continuing paragraph. +. +

word. Continuing paragraph.

+```