]*>/gi, "")
+ .replace(/<\/b\s*>/gi, "")
+ .replace(/<\/?[^>]+>/g, "");
+}
+
function normalizeAttributeSnippet(snippet: string): string {
- return snippet.replace(/
/gi, " · ");
+ return sanitizeHighlightedHtml(snippet, { allowBreaks: true })
+ .replace(/
/gi, " · ");
}
function getSuggestionIconClass(item: Suggestion): string {
@@ -135,7 +147,9 @@ function getSuggestionInputValue(item: Suggestion): string {
function renderCommandSuggestion(item: Suggestion): string {
const iconClass = escapeHtml(item.icon || "bx bx-terminal");
- const titleHtml = item.highlightedNotePathTitle || escapeHtml(item.noteTitle || "");
+ const titleHtml = item.highlightedNotePathTitle
+ ? sanitizeHighlightedHtml(item.highlightedNotePathTitle)
+ : escapeHtml(item.noteTitle || "");
const descriptionHtml = item.commandDescription ? `${escapeHtml(item.commandDescription)}
` : "";
const shortcutHtml = item.commandShortcut ? `${escapeHtml(item.commandShortcut)}` : "";
@@ -153,7 +167,9 @@ function renderCommandSuggestion(item: Suggestion): string {
function renderNoteSuggestion(item: Suggestion): string {
const iconClass = escapeHtml(getSuggestionIconClass(item));
- const titleHtml = item.highlightedNotePathTitle || escapeHtml(item.noteTitle || item.notePathTitle || item.externalLink || "");
+ const titleHtml = item.highlightedNotePathTitle
+ ? sanitizeHighlightedHtml(item.highlightedNotePathTitle)
+ : escapeHtml(item.noteTitle || item.notePathTitle || item.externalLink || "");
const shortcutHtml = item.action === "search-notes"
? `Ctrl+Enter`
: "";