diff --git a/api_webchat/messagesArea.js b/api_webchat/messagesArea.js index 2ecf0572..48155b3c 100644 --- a/api_webchat/messagesArea.js +++ b/api_webchat/messagesArea.js @@ -486,22 +486,29 @@ class MessagesArea extends HTMLElement { // Iterate over each part of the diff to create the HTML output wordDiff.forEach(part => { - const diffElement = document.createElement("span"); - - // Apply a different class depending on whether the word is added, removed, or unchanged - if (part.added) { - diffElement.className = "added"; - diffElement.textContent = part.value; - } else if (part.removed) { - diffElement.className = "removed"; - diffElement.textContent = part.value; - } else { - diffElement.textContent = part.value; + // Split part.value by
(handling
,
,
) + const brRegex = /()/gi; + const segments = part.value.split(brRegex); + + segments.forEach(segment => { + if (segment.match(brRegex)) { + // It's a
, add a real
element + messageElement.appendChild(document.createElement("br")); + } else if (segment.length > 0) { + const diffElement = document.createElement("span"); + if (part.added) { + diffElement.className = "added"; + diffElement.textContent = segment; + } else if (part.removed) { + diffElement.className = "removed"; + diffElement.textContent = segment; + } else { + diffElement.textContent = segment; + } + messageElement.appendChild(diffElement); } - - // Add the element to the container - messageElement.appendChild(diffElement); - }); + }); + }); const header = document.createElement('h2'); header.textContent = browser.i18n.getMessage("chatgpt_win_diff_title");