diff --git a/src/lib/components/chat/FileNav.svelte b/src/lib/components/chat/FileNav.svelte index 9daf03592..dfeb9064c 100644 --- a/src/lib/components/chat/FileNav.svelte +++ b/src/lib/components/chat/FileNav.svelte @@ -26,6 +26,7 @@ setCwd, type FileEntry } from '$lib/apis/terminal'; + import { isCodeFile } from '$lib/utils/codeHighlight'; import Folder from '../icons/Folder.svelte'; import Document from '../icons/Document.svelte'; import PenAlt from '../icons/PenAlt.svelte'; @@ -116,6 +117,7 @@ $: isMarkdown = MD_EXTS.has(getFileExt(selectedFile)); $: isCsv = CSV_EXTS.has(getFileExt(selectedFile)); $: isHtml = HTML_EXTS.has(getFileExt(selectedFile)); + $: isCode = isCodeFile(selectedFile); $: isOfficeFile = OFFICE_EXTS.has(getFileExt(selectedFile)); $: isTextFile = fileContent !== null && fileImageUrl === null && filePdfData === null && !isOfficeFile; @@ -281,11 +283,9 @@ excelSheetNames = wb.SheetNames; if (excelSheetNames.length > 0) { selectedExcelSheet = excelSheetNames[0]; - const ws = wb.Sheets[selectedExcelSheet]; - const DOMPurify = (await import('dompurify')).default; - fileOfficeHtml = DOMPurify.sanitize( - XLSX.utils.sheet_to_html(ws, { id: 'excel-table', editable: false, header: '' }) - ); + const { excelToTable } = await import('$lib/utils/excelToTable'); + const result = await excelToTable(wb.Sheets[selectedExcelSheet]); + fileOfficeHtml = result.html; } } else if (ext === 'pptx') { const { pptxToImages } = await import('$lib/utils/pptxToHtml'); @@ -612,7 +612,7 @@ {/if} - {#if (isMarkdown || isCsv || isHtml) && fileContent !== null && !editing} + {#if (isMarkdown || isCsv || isHtml || isCode) && fileContent !== null && !editing}