Fix escaping quote in chat references to prevent it breaking out of html

This commit is contained in:
Debanjum Singh Solanky
2023-04-27 19:10:55 +08:00
parent 26cb878327
commit 865d12b6f2
2 changed files with 5 additions and 3 deletions

View File

@@ -62,7 +62,7 @@ export class KhojChatModal extends Modal {
generateReference(messageEl: any, reference: string, index: number) { generateReference(messageEl: any, reference: string, index: number) {
// Generate HTML for Chat Reference // Generate HTML for Chat Reference
// `<sup><abbr title="${escaped_ref}" tabindex="0">${index}</abbr></sup>`; // `<sup><abbr title="${escaped_ref}" tabindex="0">${index}</abbr></sup>`;
let escaped_ref = reference.replace(/"/g, "\\\"") let escaped_ref = reference.replace(/"/g, "&quot;")
return messageEl.createEl("sup").createEl("abbr", { return messageEl.createEl("sup").createEl("abbr", {
attr: { attr: {
title: escaped_ref, title: escaped_ref,
@@ -75,7 +75,7 @@ export class KhojChatModal extends Modal {
renderMessageWithReferences(message: string, sender: string, context?: [string], dt?: Date) { renderMessageWithReferences(message: string, sender: string, context?: [string], dt?: Date) {
let messageEl = this.renderMessage(message, sender, dt); let messageEl = this.renderMessage(message, sender, dt);
if (context && !!messageEl) { if (context && !!messageEl) {
context.map((reference, index) => this.generateReference(messageEl, reference, index+1)); context.map((reference, index) => this.generateReference(messageEl, reference, index + 1));
} }
} }

View File

@@ -17,8 +17,10 @@
} }
function generateReference(reference, index) { function generateReference(reference, index) {
// Escape reference for HTML rendering
let escaped_ref = reference.replaceAll('"', '&quot;');
// Generate HTML for Chat Reference // Generate HTML for Chat Reference
let escaped_ref = reference.replaceAll("\"", "\\\"")
return `<sup><abbr title="${escaped_ref}" tabindex="0">${index}</abbr></sup>`; return `<sup><abbr title="${escaped_ref}" tabindex="0">${index}</abbr></sup>`;
} }