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 * Regex for matching multi-line blockquotes
@ -212,8 +212,8 @@ const RE_PLUS = /^\s*\+(?:$|[^+])/gm;
function sanitise(content: string) { function sanitise(content: string) {
return ( return (
content content
// Strip excessive blockquote indentation // Strip excessive blockquote or list indentation
.replace(RE_QUOTE, (_, m0, m1) => m0 + m1) .replace(RE_RECURSIVE, (_, m0, m1) => m0 + m1)
// Append empty character if string starts with html tag // Append empty character if string starts with html tag
// This is to avoid inconsistencies in rendering Markdown inside/after HTML tags // This is to avoid inconsistencies in rendering Markdown inside/after HTML tags