fix: re-write blockquote regex to include lists

This commit is contained in:
Paul Makles 2022-09-17 13:01:02 +01:00
parent b42c24295f
commit 61a06c3f1a

View file

@ -180,9 +180,9 @@ const Container = styled.div<{ largeEmoji: boolean }>`
`;
/**
* Regex for matching execessive blockquotes
* Regex for matching execessive recursion of blockquotes and lists
*/
const RE_QUOTE = /(^(?:>\s){5})[>\s]+(.*$)/gm;
const RE_RECURSIVE = /(^(?:[>*+-][^\S\r\n]*){5})(?:[>*+-][^\S\r\n]*)+(.*$)/gm;
/**
* Regex for matching multi-line blockquotes
@ -212,8 +212,8 @@ const RE_PLUS = /^\s*\+(?:$|[^+])/gm;
function sanitise(content: string) {
return (
content
// Strip excessive blockquote indentation
.replace(RE_QUOTE, (_, m0, m1) => m0 + m1)
// Strip excessive blockquote or list indentation
.replace(RE_RECURSIVE, (_, m0, m1) => m0 + m1)
// Append empty character if string starts with html tag
// This is to avoid inconsistencies in rendering Markdown inside/after HTML tags