前言¶
用 DSH(DeepSeek Harness)做项目时,主界面往往一直开着:对话、代码、终端都在同一套环境里。若要把本地 txt 小说单独开一个阅读器或浏览器标签,窗口切换频繁,阅读和开发很难并行。
下面介绍社区插件 dsh-novel-shelf(维护者 good-saltfish):它在 DSH 原生右侧栏增加「小说书架」标签,直接读本机 txt,不另开应用。书架、阅读进度、主题与桌面版 novel-reader 共用同一套数据目录,两边切换时进度与样式可对齐。
这是什么¶
dsh-novel-shelf 属于 DSH 插件目录中的客户端类插件。定位是:在 DSH 右侧栏内完成「加书 → 分章阅读 → 搜书 → 记进度」,文件只在本机读取,插件自述不做网络请求、不上传正文。
运行要求(来自 package.json):Node >=20,DSH >=0.2.0-rc.2。当前包版本为 0.1.0,许可证 MIT。
核心功能¶
依据仓库 README,能力可概括为以下几块。
界面与阅读
- 以 DSH 右栏标签形式打开(标签 id 为
dsh-novel-shelf/reader),主界面仍可继续处理项目。 - 书架通过绝对路径添加本地
.txt;章节按「第 N 章 / 节 / 回 / 卷 / 篇」等标题识别,识别失败时按长度分段兜底。 - 编码自动探测:UTF-8、UTF-8 BOM、UTF-16LE、UTF-16BE、GB18030。
- 全书搜索:章节内全文匹配,返回章节名与上下文片段。
- 阅读进度:章节号与滚动比例自动写回,重开可回到原位置。
- 五套配色(白 / 护眼绿 / 米黄 / 深灰 / 纯黑),与 novel-reader 的
body[data-theme]同名同色;字号、行距等写入共享settings.json。
数据与隐私
- 与 novel-reader 共用数据:读写
books.json、settings.json、annotations/*.json(路径见下文「数据位置」)。 - 实现侧称零第三方运行时依赖,Host 提供本地文件 IO 与 JSON 落盘;API 经信任栅栏与跨站检查,命令行直连 API 会被拒绝。
实现概要(改插件时可对照)
Host(lib/host.js)在 /novel-shelf/api 前缀下暴露 library.get、library.add、library.remove、book.open、book.chapter、book.save、settings.save、book.search 等方法。Client(lib/client.js)注册右栏标签并向上述 API 发 POST JSON。右栏 slots 注入需返回清理函数,否则面板可能退化为宿主占位文案。
安装与启用¶
DSH 生态以「一切皆插件」为方向;插件条目由社区目录站点收录,与 DeepSeek / 幻方无官方从属关系。安装任选其一(装完后须刷新 DSH 页面,client 半边随页面加载,安装或升级不会热替换已加载模块)。
方式一:插件市场(推荐)
在 DSH 插件市场里搜索 dsh-novel-shelf,点击安装。
方式二:命令行
dsh plugin --profile desktop add good-saltfish/dsh-novel-shelf
方式三:手动安装 tarball
从 Releases 下载 dsh-novel-shelf-<版本>.tgz,然后:
dsh plugin --profile desktop add file:<tgz 路径>
刷新页面后,右栏标签栏应出现「小说书架」。
典型用法¶
- 点击 DSH 界面右上角按钮,展开右侧栏。
- 在右栏顶部选择「小说书架」标签。
- 在输入框填写本地 txt 的绝对路径(例如 Windows 下
D:\books\foo.txt),回车确认;书名出现在列表中。 - 点击书名进入阅读页;用「上一章 / 下一章」翻章,目录按钮展开章节列表,搜索框回车做全书检索。
- 底部滑块调字号,五个色板切换背景主题。
- 进度写入
%APPDATA%/novel-reader/annotations/<id>.json(各平台实际目录见下表);关闭后再开可回到原章节与滚动位置。
右栏宽度有限,拉宽窗口或改用更宽布局时阅读会更顺手。
数据位置
| 文件 | 内容 |
|---|---|
books.json |
书架(路径、名称、大小、加入时间) |
settings.json |
主题、字号、行距、最后阅读的书 |
annotations/<id>.json |
每本书的批注与阅读进度 |
plugin-client.log |
客户端诊断日志(自述不含正文) |
目录根路径:Windows 为 %APPDATA%/novel-reader;macOS 为 ~/Library/Application Support/novel-reader;Linux 为 ~/.config/novel-reader。JSON 损坏时插件会先备份为 *.corrupt-<时间戳> 再回退,不静默覆盖原数据。
适用场景与注意¶
适合谁
- 长期在 DSH 桌面环境里开发、又希望用本地 txt 摸鱼阅读、且已与 novel-reader 共用书架的用户。
- 需要在同一工作区内做全文检索、记进度,而不想频繁切应用的人。
使用前请注意
- 插件以当前 DSH 进程权限读盘;添加的是本机绝对路径,安装前宜自行查看 源码 与 MIT 许可证,确认符合你的安全策略。
- 仅接受
.txt;API 请求体上限 1 MiB。 - 改 client 后刷新页面验证;改 host 后需重装 bundle。本地开发可运行
npm test(host 单测与 client 冒烟)。
结尾¶
dsh-novel-shelf 把本地 txt 阅读收进 DSH 右栏,并与 novel-reader 共享书架与进度,适合「边做项目边读」的桌面用法。条目与说明见社区目录页 good-saltfish/dsh-novel-shelf,源码与详细架构说明见 GitHub 仓库。