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) {