diff --git a/public/script.js b/public/script.js index 75111d324..a773d180d 100644 --- a/public/script.js +++ b/public/script.js @@ -1045,7 +1045,7 @@ function messageFormatting(mes, ch_name, isSystem, isUser) { if (power_user.auto_fix_generated_markdown) { mes = fixMarkdown(mes); } - + if (this_chid != undefined && !isSystem) mes = mes.replaceAll("<", "<").replaceAll(">", ">"); //for welcome message if ((this_chid === undefined || this_chid === "invalid-safety-id") && !selected_group) { @@ -1053,21 +1053,19 @@ function messageFormatting(mes, ch_name, isSystem, isUser) { .replace(/\*\*(.+?)\*\*/g, "$1") .replace(/\n/g, "
"); } else if (!isSystem) { - mes = mes.replace(/```[\s\S]*?```|``[\s\S]*?``|`[\s\S]*?`|(\".+?\")|(\u201C.+?\u201D)/gm, function (match, p1, p2) { - if (p1) { - return '"' + p1.replace(/\"/g, "") + '"'; - } else if (p2) { - return '“' + p2.replace(/\u201C|\u201D/g, "") + '”'; - } else { - return match; - } - }); + mes = mes.replace(/\".+?\"|\u201C.+?\u201D/gm, '$&') // Wrap quotes in + mes = mes.replaceAll('\\begin{align*}', '$$'); mes = mes.replaceAll('\\end{align*}', '$$'); mes = converter.makeHtml(mes); mes = mes.replace(/{{(\*?.*\*?)}}/g, ""); + mes = mes.replace(/[\s\S]*?<\/code>/g, function (match) { + // Firefox creates extra newlines from
s in code blocks, so we replace them before converting newlines to
s. + return match.replace(/\n/gm, '\u0000'); + }) mes = mes.replace(/\n/g, "
"); + mes = mes.replace(/\u0000/g, "\n"); // Restore converted newlines mes = mes.trim(); mes = mes.replace(/[\s\S]*?<\/code>/g, function (match) {