diff --git a/src/util/parseMessageInput.ts b/src/util/parseMessageInput.ts index 2de952198..66a24a9df 100644 --- a/src/util/parseMessageInput.ts +++ b/src/util/parseMessageInput.ts @@ -85,24 +85,27 @@ function parseMarkdown(html: string) { parsedHtml = parsedHtml.replace(/[`]{3}([^`]+)[`]{3}/g, '
$1
'); // Code - parsedHtml = parsedHtml.replace(/[`]{1}([^`\n]+)[`]{1}/g, '$1'); + parsedHtml = parsedHtml.replace( + /(?!<(code|pre)[^<]*|<\/)[`]{1}([^`\n]+)[`]{1}(?![^<]*<\/(code|pre)>)/g, + '$2', + ); // Other simple markdown parsedHtml = parsedHtml.replace( - /(^|\s)(?!)(\s|$)/g, - '$1$2$3', + /(^|\s)(?!<(code|pre)[^<]*|<\/)[*]{2}([^*\n]+)[*]{2}(?![^<]*<\/(code|pre)>)(\s|$)/g, + '$1$3$5', ); parsedHtml = parsedHtml.replace( - /(^|\s)(?!)(\s|$)/g, - '$1$2$3', + /(^|\s)(?!<(code|pre)[^<]*|<\/)[_]{2}([^_\n]+)[_]{2}(?![^<]*<\/(code|pre)>)(\s|$)/g, + '$1$3$5', ); parsedHtml = parsedHtml.replace( - /(^|\s)(?!)(\s|$)/g, - '$1$2$3', + /(^|\s)(?!<(code|pre)[^<]*|<\/)[~]{2}([^~\n]+)[~]{2}(?![^<]*<\/(code|pre)>)(\s|$)/g, + '$1$3$5', ); parsedHtml = parsedHtml.replace( - /(^|\s)(?!)(\s|$)/g, - `$1$2$3`, + /(^|\s)(?!<(code|pre)[^<]*|<\/)[|]{2}([^|\n]+)[|]{2}(?![^<]*<\/(code|pre)>)(\s|$)/g, + `$1$3$5`, ); return parsedHtml;