What do you want? (你想要什么?)
希望改进 Cebian VFS 中 AI 生成文档的打开与预览体验,并先完成一个可控的 MVP:
- 修复 Markdown 文档中的相对链接、父目录链接和文内锚点,使其能够以当前文档所在的 VFS 目录为基准正确打开;
- 支持直接预览存储在 VFS 中的 PDF,而不是只显示“二进制文件”并要求下载;
- 为可预览文档提供清晰的“预览 / 源码 / 下载”入口,并允许用户设置默认打开方式;
- 对未知二进制格式安全降级,不再默认按 UTF-8 文本读取。
首期范围聚焦 Markdown 与 PDF。DOCX、XLSX、EPUB 等格式建议后续通过独立 renderer adapter 分阶段接入。
Why? (为什么?)
当前 Agent 整理信息后通常会生成 Markdown 文档并返回 VFS 链接,但文档中的相对链接无法按当前文件目录解析,可能打开错误的扩展资源页面。PDF 在 VFS 中又被明确归类为 binary,只能下载,虽然项目已经包含 pdf.js 和 PDF 内容读取能力,却没有面向用户的页面预览。
这导致“Agent 生成文档 -> 点击链接 -> 阅读附件”的核心流程中断,也让侧边栏的文档体验依赖外部应用。
How? (怎么做? — 可选)
建议分层实现:
- 抽出纯函数 resolveMarkdownHref(href, currentVfsPath),统一处理文内锚点、相对路径、VFS 绝对路径、外部链接和危险协议;
- 将当前 Markdown 文件路径传给渲染器,并让图片引用复用相同的 VFS 路径解析逻辑;
- 将 PDF 从 binary 分类中拆出,在 VFS 页面复用现有 pdfjs-dist loader,首版提供单页按需渲染、翻页、缩放、适应宽度、错误状态和下载入口;
- 将未知扩展名归类为 unknown,仅对白名单文本格式执行 UTF-8 解码;
- 增加默认打开设置:“智能 / 优先预览 / 优先源码”。编辑和脚本执行不属于首期范围。
Acceptance criteria (验收标准)
- VFS Markdown 中的相对文件链接、父目录链接和文内锚点可正确工作;
- VFS 中的 PDF 可分页、缩放并适应侧边栏宽度;
- 损坏、加密、过大或不支持的文件不会导致页面崩溃,始终保留下载入口;
- 未知二进制文件不会被当作文本显示乱码;
- 点击选择和后续拖放进入 VFS 的文件使用同一套预览能力;
- 新增逻辑具备单元测试,并通过 pnpm run check。
Related issues (相关 issue)
如方案可行,请维护者回复 /ready,我可以提交实现 PR。
What do you want? (你想要什么?)
希望改进 Cebian VFS 中 AI 生成文档的打开与预览体验,并先完成一个可控的 MVP:
首期范围聚焦 Markdown 与 PDF。DOCX、XLSX、EPUB 等格式建议后续通过独立 renderer adapter 分阶段接入。
Why? (为什么?)
当前 Agent 整理信息后通常会生成 Markdown 文档并返回 VFS 链接,但文档中的相对链接无法按当前文件目录解析,可能打开错误的扩展资源页面。PDF 在 VFS 中又被明确归类为 binary,只能下载,虽然项目已经包含 pdf.js 和 PDF 内容读取能力,却没有面向用户的页面预览。
这导致“Agent 生成文档 -> 点击链接 -> 阅读附件”的核心流程中断,也让侧边栏的文档体验依赖外部应用。
How? (怎么做? — 可选)
建议分层实现:
Acceptance criteria (验收标准)
Related issues (相关 issue)
如方案可行,请维护者回复 /ready,我可以提交实现 PR。