🔴 P0 | KnowledgeItem 确保 sourceType 返回文件类型 #61
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
iOS 知识点列表需要展示文件类型标签(PDF / MD / HTML / 图片 / 文件),当前大部分知识点的 sourceType 返回空值,前端不得不通过标题后缀推断。
需求
影响页面
wangdl referenced this issue2026-06-05 19:34:38 +08:00
wangdl referenced this issue2026-06-05 19:34:40 +08:00
wangdl referenced this issue2026-06-05 19:36:02 +08:00
wangdl referenced this issue2026-06-05 19:36:03 +08:00
修复汇报 (2026-06-05)
实现方案
在
KnowledgeItemsRepository.create()中新增detectSourceType()自动检测逻辑:<开头 →html#/-/[link]()模式 →markdowntext修改文件
src/modules/knowledge-items/knowledge-items.repository.ts— 新增detectSourceType()函数,create()自动填充 sourceType兼容性
sourceType字段,手动传入优先级高于自动检测状态
✅ 代码已完成,文件已传至服务器,需重启 NestJS 生效。
优化 (2026-06-06)
问题
detectSourceType()中 markdown 检测正则/\[.+\]\(.+\)/使用贪婪匹配.+,超长文本可能触发 ReDoS 回溯爆炸。修复
改为懒惰匹配
/\[.+?\]\(.+?\)/,显著减少回溯。状态
✅ 已修复。