novel-atlas:把一本小说打成离线互动看板

前言

在 DSH 里做内容类工作流时,常见做法是请模型概括章节、抽人物表,再靠 Markdown 或在线笔记拼装。正文能读,但人物、地点、势力与境界之间的关系往往散在多处,换设备或断网后更难对照。novel-atlas 走另一条路:从 EPUB、TXT 或 PDF 确定性抽取数据,再构建单个可双击打开的 HTML,把阅读、地图、关系网等多视角压进同一份离线文件。下面介绍它是什么、如何安装,以及 extract → build → verify 三步怎么用。

这是什么

novel-atlas 是维护者 lilinshuei 发布的 DeepSeek Harness 插件,在社区目录中归类为工作流。一句话定位来自官方简介:把一本小说变成能读、能点、能探索的离线世界;阅读器、世界地图、人物关系、成长曲线,一条命令出成品。

普通阅读器通常只有自上而下的正文流。设定向长篇更难记的是人物、势力、地点、境界及其关系。该插件把同一本书拆成可互相跳转的多个视角(读到哪里、谁在场、地图、关系变化、突破节点、器物归属等),产物是一个 HTML,本地打开即可,也可直接发给他人查看。

许可为 MIT(package.json 版本 1.0.0)。GitHub 仓库当前星标数为 1。

核心功能

以下能力均来自仓库 README 与包结构说明,未列入的不做延伸。

多视角共享数据。 阅读、剧情、关系网、世界地图、成长曲线、感情线与器物图谱等视图共用一份数据;例如点人物可跳转章节。构建时若只需部分视图,可在 build 阶段用 --only 筛选。

确定性流水线。 默认路径为 extract → build → verify,README 写明默认 0 次模型调用,且运行时无 npm 依赖(runtime deps 为 0)。

单文件离线交付。 CSS、JS、数据与地图内联在同一个 HTML 中,不依赖自建服务器。

草稿可人工改 JSON。 人物归属、地区分组、感情线对象等会标为草稿;改 data/*.json 后重新 build,无需手改生成 HTML。

legacy 增量增强。 对已有的巨型 HTML(如 10MB+ 生成页),legacy 路线可在不重写原文件的前提下只增加地图等能力。

仓库内主要目录:scripts/(extract、build、verify、add-view)、views/(read、plot、rel、map、curve、items、love、overview 等)、templates/、lib/(含 DSH 适配层 lib/index.js,零 npm 依赖)、references/、legacy/。挂载声明见 cordis.patch.yml。

安装与启用

插件已发布到 npm。在命令行安装时,README 推荐:

dsh plugin --profile web add novel-atlas

若在 DSH 桌面端「添加插件」窗口中填写,只填包名 novel-atlas,不要粘贴整条命令。桌面端把 profile 中的 web 换成 desktop;安装后重启 DSH,新会话即可调用。

需要从 GitHub 跟随时可使用:

dsh plugin --profile web add github:lilinshuei/novel-atlas

环境要求(README):Node.js ≥ 18;处理 PDF 需本机 Python 与 pymupdf。package.json 的 engines 字段要求 Node >=20,部署时以你实际使用的 Node 版本与二者中较高要求为准。TXT / EPUB 抽取不依赖 Python。

插件在 DSH 进程权限下运行。安装前建议浏览仓库源码与 MIT 许可证,确认处理的书籍文件你有权使用;README 明确不处理 DRM 加密书籍。

典型用法

在插件 Skill 所在目录(安装后为 ~/.dsh/skills/novel-atlas/)或克隆后的仓库根目录执行以下三步。

1、抽取原文

node scripts/extract.cjs "你的书.epub" --out data

支持 .txt、.epub、.pdf;PDF 依赖本地 pymupdf。

2、构建看板

node scripts/build.cjs --data data --out out/书.html

仅需部分视图时示例:

node scripts/build.cjs --data data --out out/书.html --only read,map,rel

3、实测验证

node scripts/verify.cjs out/书.html --sizes 1440x900,390x844 --shots shots

退出码为 0 表示通过;失败项会列在 fails 数组中。

经过上面的步骤,得到单个 out/书.html,双击即可在浏览器中探索各视图。

适用场景与注意

适合谁。 手头有合法来源的 EPUB/TXT/PDF,想把长篇做成可离线分享、可多视角跳转互动看板的开发者或读者;希望在 DSH 工作流里用确定性脚本收尾、少依赖模型幻觉补全设定的情况。

能力边界(README 原文)。 抽取结果是统计草稿,不保证每个人物、器物归属正确,关键字段需人工核对。地图质量取决于原文是否写出足够地点与方位,不会凭空生成地理。

安全与隐私。 仓库声明零遥测、本地执行、脚本以只新增不删除为约束、不含凭据;详情见仓库 SECURITY.md。

结尾

novel-atlas 把「读书」和「逛世界」收到一条 Node 流水线里:装插件、抽数据、构建 HTML、可选 verify,交付物是一个自给自足的离线页面。DSH 生态强调「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。源码、Issue 与完整说明见 GitHub:lilinshuei/novel-atlas。

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

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

Xiaoye