ZhuSheng-0807/dsh-novel-reader

Plugin插件 Native原生 ⭐ 2 MIT Docs & Writing文档与写作

Project Overview项目介绍

This is a native plugin built exclusively for DeepSeek Harness (DSH) Web that adds a floating novel reading panel directly inside DSH, so you can read novels without switching to another browser tab or app. There are three supported installation methods: installing from npm via the DSH CLI command, installing directly from the GitHub repository via DSH, or loading it locally for development. It follows DSH’s plugin specification, includes a valid DSH bundle manifest, and uses the standard Dual-half architecture split between a host backend part and a client frontend part.

After installation and a restart of DSH Web, a semi-transparent book icon button will appear in the lower right corner of the interface. You can drag this button anywhere you want on the screen, click it to expand the reading panel, and press the Escape key to close it quickly. The panel itself can be resized by dragging its edges or corners, and both its position and size are saved automatically for your next visit. It includes core features like a paginated chapter directory, bookmarkable bookshelf, reading progress tracking, chapter pre-caching, and novel search, making it ideal for users who want to read novels during work breaks in DSH.

This plugin is written entirely in plain JavaScript, so it does not require TypeScript or any build step to run, and changes can be tested immediately after editing. All of its styling uses DSH’s native design tokens, so it automatically adapts to both light and dark DSH themes. No user data including your reading progress, bookshelf, or panel settings is ever uploaded to any external server, everything is stored only in your local browser storage. The plugin is licensed under the open source MIT license, it only crawls content from a specific free public novel site, and use is restricted to personal non-commercial purposes to respect original author copyright.

dsh-novel-reader 是专为 DeepSeek Harness (DSH) Web 打造的原生插件,在 DSH 内提供悬浮小说阅读面板,无需切换窗口即可阅读小说。插件支持三种安装方式,分别是通过 npm 命令安装、GitHub 源直装以及本地开发调试安装,遵循 DSH 插件开发规范,自带完整的 DSH 包清单。它采用标准的 Dual-half 架构,分为服务端 Host 半和前端 Client 半两部分开发,符合 DSH 插件的设计约定。

安装启用后,DSH 右下角会出现一个半透明的悬浮阅读按钮,点击即可展开阅读面板,按 Esc 可一键收起。面板支持自由拖动位置和缩放大小,位置和大小会被自动记忆,还支持分页目录跳转、多本小说书架收藏、按书名搜索小说、阅读进度自动保存、章节预缓存等功能,适合想要在工作间隙用 DSH 阅读小说放松的用户。

该插件全程采用纯 JavaScript 开发,无需 TypeScript 编译打包,修改代码后即可直接使用,没有额外的构建依赖。UI 适配 DSH 的明暗主题,会跟随 DSH 主题自动切换样式,所有书架、进度、面板配置数据仅保存在本地 localStorage,不会上传到任何服务器。插件仅允许抓取特定公开免费小说网站的内容,仅供个人阅读使用,遵循 MIT 开源许可协议,需尊重原作者版权,不得用于商业用途。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add dsh-novel-reader

把 ZhuSheng-0807/dsh-novel-reader 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

📖 dsh-novel-reader

DSH Web 摸鱼小说阅读器 · 在 DeepSeek Harness Web 里悬浮一个轻量小说阅读面板,随时摸鱼。

npm version License: MIT DSH Plugin

一个为 DeepSeek Harness (DSH) Web 打造的悬浮小说阅读器插件:点击右下角半透明白色 📖 按钮即可展开阅读面板,看小说不用切窗口,摸鱼利器。

✨ 功能特性

  • 📌 悬浮按钮:半透明白色图标按钮,可随意拖动位置;点击展开,Esc 一键收起
  • 🪟 自由缩放面板:拖动面板边缘/角落即可调整窗口大小,拖拽标题栏移动位置(位置与大小自动记忆)
  • 📑 分页目录:每页 20 章,自动定位到当前阅读章节所在页,支持页码直接跳转
  • 🔖 书架:收藏多本小说,随时继续阅读;「最近阅读」历史一键回到上次位置
  • 💾 阅读进度:章节 + 行内滚动位置双重保存,重启 DSH 后自动续读
  • ⚡ 章节预缓存:自动预取上一章/下一章,翻页秒开
  • 🔍 搜索换书:按书名搜索小说,一键加入书架开始阅读
  • 🎨 原生风格:UI 使用 DSH 设计 token(--dsw-alias-*),随 DSH 明暗主题自动适配
  • 🏗️ 纯 JS 无构建:无需 TypeScript/打包步骤,改完即用

🚀 安装

方式一:npm

dsh plugin --profile web add dsh-novel-reader

方式二:GitHub 直装

dsh plugin --profile web add github:ZhuSheng-0807/dsh-novel-reader

方式三:本地开发调试

cd <dsh-home>\profiles\web
pnpm add file:D:\dsh-novel-reader
# 把 dsh-novel-reader 追加到 package.json 的 dsh.profile.bundles
# 重启 DSH-Web(client 半由 HMR 自动热更)

安装后重启 DSH(或刷新页面),右下角会出现半透明白色 📖 按钮。

📸 界面预览

(待补充截图)

🧱 架构

插件采用 DSH 标准的 Dual-half 结构,参照 dshmarket / dsh-better-sidebar 的写法:

dsh-novel-reader/
├── lib/index.js          # Host 半:/novel/* 同源 JSON API(抓取 + 解析)
├── lib/types/index.d.ts  # 类型声明
├── client/client.js      # Client 半:window.__ModuleLoader__ bundle(纯 JS)
├── cordis.patch.yml      # bundle 挂载补丁
├── package.json          # dsh 元数据(bundle/client 声明)
└── README.md

Host 半(lib/index.js)

在 DSH webserver 注册 /novel/* 路由,以桌面 UA 抓取目标站并解析 HTML (浏览器跨域 fetch 会被目标站 CORS 拦截,所以抓取放在 Host 侧):

路由 说明
GET /novel/toc?book=<id>&page=<n> 分页目录 { book, author, page, pages, pageRanges, chapters[] }
GET /novel/chapter?url=... 章节正文 { title, content, prev, next }(自动合并多页章节)
GET /novel/search?q=... 按书名搜索 { results: [{ id, title, author, category }] }

Client 半(client/client.js)

  • 纯 JS window.__ModuleLoader__.load({ id, factory }) bundle,无需编译
  • 注册进 shell.overlay 槽位,用 createPortal 渲染到 document.body (脱离 overlay 容器 z-index 限制,不被其他插件盖住)
  • 样式全部使用 DSH 设计 token,明暗主题自适应
  • 阅读进度 / 书架 / 历史 / 面板位置大小存于 localStorage

🛠️ 开发与发布

开发:本插件是纯 JavaScript,改完 lib/ 或 client/ 后同步到 <dsh-home>\profiles\web\node_modules\dsh-novel-reader\ 即可 (client 半由 DSH 的 client-hmr 自动热更新,host 半需重启后端)。

发布到 npm:

npm login
npm publish

发布到插件市场:在 awesome-dsh-plugin 提交 PR,将本插件加入 plugins.json 即可被插件市场搜索到。

⚠️ 免责声明

  • /novel/* 代理仅允许 www.hongmengxsw.com 及其子域(防 SSRF)
  • 仅抓取免费公开小说网站的章节文本用于个人阅读,请尊重原作者版权,勿用于商业用途
  • 阅读进度/书架数据仅存本机 localStorage,不上传任何服务器

📄 License

MIT

← 上一个 Prev dsh-plugin-graph 下一个 Next frameevidence →