fix: prioritize filename extension in materialTypeFromMime for .md files
.md files are uploaded as text/plain mime, causing materialTypeFromMime to return .text instead of .markdown. Extension now checked first. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
4059f0197e
commit
88babf14f8
@ -265,7 +265,7 @@ struct LibraryDetailPage: View {
|
|||||||
NavigationLink(value: Route.materialReader(
|
NavigationLink(value: Route.materialReader(
|
||||||
materialId: src.id,
|
materialId: src.id,
|
||||||
filePath: "",
|
filePath: "",
|
||||||
materialType: materialTypeFromMime(src.mimeType),
|
materialType: materialTypeFromMime(src.mimeType, filename: src.originalFilename),
|
||||||
knowledgeBaseId: knowledgeBaseId,
|
knowledgeBaseId: knowledgeBaseId,
|
||||||
title: src.originalFilename ?? src.title ?? "未命名"
|
title: src.originalFilename ?? src.title ?? "未命名"
|
||||||
)) {
|
)) {
|
||||||
@ -1496,7 +1496,16 @@ struct EditKnowledgePage: View {
|
|||||||
|
|
||||||
// MARK: - Helpers
|
// MARK: - Helpers
|
||||||
|
|
||||||
private func materialTypeFromMime(_ mime: String?) -> MaterialType {
|
private func materialTypeFromMime(_ mime: String?, filename: String? = nil) -> MaterialType {
|
||||||
|
let ext = filename?.split(separator: ".").last?.lowercased()
|
||||||
|
// Extension takes priority for known types
|
||||||
|
if ext == "md" || ext == "markdown" { return .markdown }
|
||||||
|
if ext == "pdf" { return .pdf }
|
||||||
|
if ext == "epub" { return .epub }
|
||||||
|
if ext == "docx" || ext == "doc" { return .word }
|
||||||
|
if ext == "xlsx" || ext == "xls" { return .excel }
|
||||||
|
if ext == "pptx" || ext == "ppt" { return .powerPoint }
|
||||||
|
// Fallback to mime
|
||||||
guard let m = mime?.lowercased() else { return .markdown }
|
guard let m = mime?.lowercased() else { return .markdown }
|
||||||
if m.contains("pdf") { return .pdf }
|
if m.contains("pdf") { return .pdf }
|
||||||
if m.contains("epub") { return .epub }
|
if m.contains("epub") { return .epub }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user