Răsfoiți Sursa

WIP: 兼容带点的文本扩展名

[gstack-context]
Decisions: 预览分类在比较扩展名之前移除前导点,并对 MIME 匹配忽略大小写。
Remaining: 对最终 HEAD 重跑 Vitest 和完整 Playwright。
Skill: /investigate
[/gstack-context]
samien 2 luni în urmă
părinte
comite
5a9e9e6b5b

+ 2 - 2
src/client/components/workspace/viewModels.ts

@@ -245,11 +245,11 @@ export function roomToUi(room: GroupRoomDetail): UiRoom {
 }
 
 export function fileToUi(item: FileLibraryItem): UiLibraryItem {
-  const extension = (item.extension || item.name.split('.').at(-1) || '').toLocaleLowerCase()
+  const extension = (item.extension || item.name.split('.').at(-1) || '').replace(/^\./, '').toLocaleLowerCase()
   const isTextFile = ['md', 'markdown', 'txt', 'json', 'yaml', 'yml', 'csv', 'js', 'ts', 'py', 'sh', 'css', 'html', 'xml'].includes(extension)
   const kind: UiLibraryItem['kind'] = item.mimeType === 'application/pdf' || extension === 'pdf'
     ? 'pdf'
-    : isTextFile || /text|json|xml|javascript|typescript|css|html/.test(item.mimeType)
+    : isTextFile || /text|json|xml|javascript|typescript|css|html/i.test(item.mimeType)
       ? 'text'
       : item.kind === 'document' ? 'document' : item.kind === 'other' ? 'file' : item.kind
   const origin = item.origins.at(-1)

+ 1 - 1
tests/e2e/workspace.spec.ts

@@ -106,7 +106,7 @@ test('previews an octet-stream Markdown file from the file library', async ({ pa
             id: 'markdown-file',
             path: '/tmp/版本说明.md',
             name: '版本说明.md',
-            extension: 'md',
+            extension: '.md',
             mimeType: 'application/octet-stream',
             size: 48,
             modifiedAt: Date.now() / 1000,