fix: re-write blockquote regex to include lists

This commit is contained in:
Paul Makles
2022-09-17 13:01:02 +01:00
parent 3b72077307
commit 2ee26e839d

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