- Home
- Plugin
- Miglioramenti UI
- dsh-pdf-bookmarks
dsh-pdf-bookmarks
woody-dx/dsh-pdf-bookmarks
PDF outline navigation and local reading bookmarks in the existing right-sidebar file preview; supports adding, renaming, deleting and revisiting page positions, with version and integrity guards. Verified on macOS Apple Silicon with dsh Desktop 0.2.1-rc.2.
Installazione
dsh plugin --profile web add github:woody-dx/dsh-pdf-bookmarksREADME
dsh PDF 书签插件
在 DeepSeek Harness 右侧文件预览中增加 PDF 书签 查看器,提供文档目录与本地阅读书签。
演示
截图来自 scripts/harness.mjs 生成的合成三页 PDF,展示插件组件;不包含真实任务或文件,不代表完整桌面外壳。


使用
- 在现有任务的工作区文件栏打开 PDF。
- 如果仍是原查看器,在文件头部的查看器菜单选择 PDF 书签。
- 工具栏的 ☰ 开关导航,文档目录 展示 PDF 自带章节,可展开层级并点击跳转。
- 点击 ☆ 书签 收藏当前阅读位置,可直接输入名称并保存。
- 我的书签 支持点击跳转、行内改名和删除。重开同一 PDF、切换任务或重启桌面版后仍可读取。
较窄的侧栏以覆盖面板显示导航,点击目标后自动收起。工具栏提供页码跳转、适应宽度和固定缩放;正文支持连续滚动和文字选取。
没有内置目录的 PDF 显示说明,仍可添加个人书签。需要密码的 PDF 沿用现有引擎的限制,暂不支持输入密码。
数据
个人书签只保存文档内容 SHA-256、名称、页码、页内相对位置和创建时间,存在桌面应用自身 origin 的 localStorage 中,键前缀为 dsh-pdf-bookmarks:v1:。同一内容的 PDF 副本共用书签;内容变更后使用新的集合。不会修改 PDF,也不会把 PDF 或书签放进模型请求、原有任务记录或账号配置。
已有书签数据损坏、版本不认识或本地存储不可写时,显示错误并保留原数据。卸载插件不清空书签;清除桌面应用的全部网站存储则会移除这些书签。
兼容性与故障回退
当前实测支持 dsh Desktop 0.2.1-rc.2。启用条件位于 cordis.patch.yml:在加载插件入口前,调用 guard.cjs 核对精确版本白名单以及两个构建文件的 SHA-256。检查异常、版本未验证、文件缺失或哈希不匹配均仅禁用本插件。升级 dsh 后,未经适配验证的版本会继续使用内置预览。
Host 入口 index.js 无运行时依赖、不提供或替换任何核心服务。正式插件不安装 dsh-tools、Cordis 或其他 dsh 核心包。客户端接口注册异常会被捕获;PDF 引擎在打开 PDF 时才加载,加载失败会移除增强预览定义并交回内置查看器;正文错误边界提供 使用内置 PDF 预览。这是对已验证版本及测试故障场景的保护,不宣称能覆盖未来宿主完全移除插件加载协议等无法事先验证的变化。
安装与停用
当前仅验证 macOS Apple Silicon 上的 dsh Desktop 0.2.1-rc.2;不宣称 Web、Windows、Linux 或其他 dsh 版本可用。其他版本默认禁用此查看器。
从本仓库下载源码 ZIP 并解压,在桌面版 插件 → 添加插件 中输入解压后的插件目录绝对路径,然后在 已安装插件 中启用 dsh-pdf-bookmarks。仓库包含预构建 lib/,安装不需要构建或运行安装脚本。
也可从 GitHub Release 下载 .tgz,在桌面版添加插件时填写该文件的绝对路径。不要使用旧版全局 dsh CLI 管理较新的桌面 profile。
插件遵循 dsh.bundle 组合包机制。启动保护从当前 profile 的包解析找到自身,不要求源码位于特定用户名或 ~/.dsh/plugins 路径。在 插件 → 已安装插件 中可启停和卸载;列表未更新时点击 刷新。删除本地源码前应先停用并移除安装引用。
停用可在 dsh 插件列表中禁用本插件,或在 profile patch 最后增加:
- id: pdf-bookmarks
disabled: true
再次启用前删除这条手工禁用覆盖。停用或使用查看器菜单切回 PDF 后,内置查看器继续工作。删除本地源码目录前应先停用并移除 profile 引用。
开发与验证
源码、测试和构建脚本随本地目录保留。开发依赖仅用于构建测试,不安装到 dsh profile。
npm ci --ignore-scripts
npm test
npm run build
node scripts/host-smoke.cjs
vendor/source.json 记录来自当前应用的离线 PDF 引擎快照、版本和 SHA-256。构建仅调整模块身份、样式归属及自身所需的低层导出。第三方许可证见 THIRD_PARTY_NOTICES.md 和原始快照文件头部。修改源码后必须重新构建以更新完整性清单。
test/harness.jsx 和 scripts/harness.mjs 是隔离的浏览器验收入口,使用合成三页 PDF,不读取个人任务。scripts/host-smoke.cjs 使用独立数据目录验证普通安装、本地链接、未知版本、引擎缺失四个场景;需要本机安装上述 dsh Desktop,脚本不会读取真实 profile。
与其他插件的区别
本插件只增强已有工作区 PDF 的右侧预览,提供内嵌目录与个人阅读书签。论文文献库、AI 伴读、PDF 内容提取与批注工作台解决其他需求;本插件不增加模型工具或会话持久状态。社区目录中的会话书签与文件路径收藏也不等同于 PDF 页内阅读位置。
Plugin correlati
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui
dsh-web-ui (dsh-web-ui-all)
zhu1090093659/dsh-web-ui