From 4dac2126bf974eef51536c1954eed1312e2d3bfc Mon Sep 17 00:00:00 2001 From: 50h100a Date: Wed, 21 Jun 2023 23:59:52 -0400 Subject: [PATCH] Do not replace codeblock newlines with
tags. --- public/script.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) 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) {