function escapeHtml(s: string): string { return s.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """); } /** Sanitize FTS5 snippet() output, preserving delimiters. */ export function sanitizeSnippet(raw: string): string { return raw .split(/(|<\/mark>)/g) .map((part) => (part === "" || part === "" ? part : escapeHtml(part))) .join(""); }