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;