前言¶
在 DSH Web 的使用场景中,管理本地文献与数据文件通常需要频繁在浏览器、文档阅读器和表格软件之间切换。dsh-paperpanel 旨在解决这一痛点,它将本地磁盘上的 PDF、Word、Markdown 文档以及 CSV/Excel 数据表,转化为一个类似 Zotero 的统一库管理界面。
插件介绍¶
该插件由 Floatingfur 维护,分类属于“记忆”。它通过 shell.overlay 在 DSH Web 右侧提供一个浮动抽屉,用于浏览、阅读和编辑文件。核心价值在于将本地文件系统与 DSH Web 的阅读体验深度集成。
核心功能¶
库面板与导入¶
插件在右侧展示一个浮动抽屉,不占用 DSH 内置的 details 槽位。面板包含文件列表和类型筛选(全部/论文/数据/笔记)。支持导入整个文件夹或单个文件,重复文件名会自动添加时间戳后缀。导入后需点击刷新。
居中阅读¶
双击 PDF、Word、TXT 或 MD 文件,会在屏幕中央打开阅读窗口。支持缩放(放大/缩小/重置)以及黑白背景切换。PDF 使用 pdf.js 渲染,支持多页和选中文本;Word 使用 docx-preview 渲染,保留格式;旧版 .doc 格式会提示重新保存为 .docx。
选择转笔记与笔记管理¶
在阅读窗口选择文本,点击“记笔记”即可将引用内容追加到笔记中。每个阅读项对应一个同名的 .notes.md 文件,笔记面板位于阅读窗口右侧,可随时编辑保存。
电子表格工作台¶
支持 CSV、TSV 和 Excel (.xlsx/.xls) 文件的编辑。单元格可编辑,保存时会自动生成 .bak 备份文件。支持排序、搜索、分页、图表生成(ECharts)以及列统计。当数据行数超过 2000 行时,行会自动变为只读。
AI 集成¶
提供 paperpanel_read 工具接口,可将文件路径发送给 DSH Agent 进行解释或总结。
离线运行¶
前端库在构建时内联,无需打包器,client.js 是一个单文件 CommonJS,可完全离线工作。
安装与启用¶
使用官方安装命令添加插件:
dsh plugin --profile web add dsh-paperpanel
安装后重启 dsh web,右侧会出现“Library”抽屉。
配置与开发¶
配置数据目录¶
在 cordis.patch.yml 中设置 config.libraryRoots,指定扫描根目录。将文件放入这些目录,点击抽屉中的刷新或导入按钮即可。
本地开发命令¶
修改客户端源码后,需重新构建:
npm run build:client
启动 DSH 的脚本会自动清理占用 3080 端口的旧实例:
powershell -File scripts\start-dsh.ps1
注意事项¶
- 槽位占用:插件不使用
details槽位,而是使用shell.overlay。 - 会话依赖:桌面端在无活动会话时,输入操作(如记笔记)会被禁用。
- 数据安全:电子表格保存前会自动备份原文件为
.bak。 - 扫描排除:
.notes.md文件不会出现在扫描结果中。 - 兼容性:未声明
dsh.engines.dsh,可跨版本兼容。
获取与反馈¶
插件目录:https://www.skillhub.cn/plugins/Floatingfur/dsh-paperpanel
源码仓库:https://github.com/Floatingfur/dsh-paperpanel