Files
apes-sidebar/docs/plans/2026-08-10-pptx-preview-design.md
T

1.2 KiB

PPTX 高保真预览设计

日期: 2026-08-10 状态: 已批准 范围: dsh-better-sidebar 的 .pptx 浏览器预览

目标

使用 @aiden0z/pptx-renderer 在侧边栏内预览 .pptx,保留图片、表格、 图表、SmartArt 与常见 OOXML 样式,同时保持下载降级出口。

架构

  • .pptx 从 download-only 调整为独立 pptx 预览类型。
  • PptxView 从现有 media route 获取 ArrayBuffer。
  • 使用 PptxViewer.open() 渲染到库专属 DOM 容器。
  • 开启 lazyMedia、lazySlides 与推荐 ZIP 安全限制。
  • UI 提供上一页、下一页、页码和下载按钮。
  • 卸载时销毁 viewer 并清空库专属容器。
  • 旧 .ppt/.doc/.xls 继续仅下载。

Bundle

  • 先验证普通 bundler 入口不会遗留 Node builtin require()。
  • 若普通入口不纯,切换包提供的 standalone browser ESM 入口。
  • 不启用可选 PDF.js EMF fallback,避免额外体积。

错误处理

  • 损坏、加密或超限文件显示错误信息和下载链接。
  • viewer 初始化失败时清理部分创建的实例与 DOM。

测试

  • .pptx 类型分发。
  • bundle 模块表 require guard。
  • Typecheck、manifest/plugin-shape 与构建通过。