DSH 插件 dsh-novel-shelf:在右侧栏读本地 txt 小说

前言

用 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 路径>

刷新页面后,右栏标签栏应出现「小说书架」。

典型用法

  1. 点击 DSH 界面右上角按钮,展开右侧栏。
  2. 在右栏顶部选择「小说书架」标签。
  3. 在输入框填写本地 txt 的绝对路径(例如 Windows 下 D:\books\foo.txt),回车确认;书名出现在列表中。
  4. 点击书名进入阅读页;用「上一章 / 下一章」翻章,目录按钮展开章节列表,搜索框回车做全书检索。
  5. 底部滑块调字号,五个色板切换背景主题。
  6. 进度写入 %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 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜