fix: render HTML properly in bot messages
All checks were successful
BotUI CI/CD / build (push) Successful in 41s
All checks were successful
BotUI CI/CD / build (push) Successful in 41s
This commit is contained in:
parent
ff93f33d40
commit
dfb8ae656d
1 changed files with 4 additions and 10 deletions
|
|
@ -281,13 +281,6 @@
|
|||
htmx.process(chip);
|
||||
}
|
||||
|
||||
// Strip HTML tags and return plain text
|
||||
function stripHtml(html) {
|
||||
const temp = document.createElement('div');
|
||||
temp.innerHTML = html;
|
||||
return temp.textContent || temp.innerText || '';
|
||||
}
|
||||
|
||||
// Append message to chat
|
||||
function appendMessage(message) {
|
||||
const messagesEl = document.getElementById("messages");
|
||||
|
|
@ -296,13 +289,14 @@
|
|||
const messageEl = document.createElement("div");
|
||||
messageEl.className = `message ${message.sender === "user" ? "user" : "bot"}`;
|
||||
|
||||
// Strip HTML tags to show plain text only, never raw tags
|
||||
const plainText = stripHtml(message.text);
|
||||
// Render HTML if present, otherwise escape plain text
|
||||
const isHtml = /<[a-z][\s\S]*>/i.test(message.text);
|
||||
const content = isHtml ? message.text : escapeHtml(message.text);
|
||||
|
||||
messageEl.innerHTML = `
|
||||
<div class="message-content">
|
||||
<span class="sender">${message.sender}</span>
|
||||
<span class="text">${escapeHtml(plainText)}</span>
|
||||
<span class="text">${content}</span>
|
||||
<span class="time">${formatTime(message.timestamp)}</span>
|
||||
</div>
|
||||
`;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue