前言¶
在 DeepSeek Harness(DSH)里做智能体或日常开发时,常会攒下一批「稍后读」的网页链接:新闻、长文、专栏。浏览器书签或收藏夹能存 URL,但离线阅读、Kindle 上连续翻章,仍要另找工具:手动复制正文、再进 Calibre 或第三方转换,步骤多且格式不统一。
下面介绍社区插件 dsh-plugin-kindle-book(维护者 wanghs09)。它在 Harness 侧栏增加「Kindle 编书」页面,粘贴链接即可生成 EPUB(可选 AZW3);同时为 Agent 注册同名逻辑的工具 kindle_book,页面与聊天走同一套抓取与打包流程。插件分类为「联网工具」,源码与说明见 GitHub 仓库,社区目录页:SkillHub 插件页。DSH 生态强调「一切皆插件」;SkillHub 等目录为社区站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-plugin-kindle-book 把指定 URL 的正文抓成纯净文字,打包为 EPUB;若本机安装了 calibre,还可输出 AZW3。两条入口等价:
- Web 侧栏:填链接、书名、输出目录,一键构建并下载结果文件(中文文件名保留)。
- Agent 工具:
kindle_book(urls=[...], title="..."),在对话里完成同样操作。
正文清洗会去掉导航、广告、相关阅读、脚本样式等,只保留文字;抓不到的链接单独列出,原始日志可展开查看。
核心功能¶
侧栏「Kindle 编书」页面¶
| 字段 | 说明 |
|---|---|
| 文章链接 | 一行一条;# 开头为注释;URL \| 章节标题 可覆盖该章标题 |
| 书名 | 同时作为输出子目录名;留空则使用 新闻摘编 YYYY-MM-DD |
| 输出目录 | 绝对路径;默认 ~/Documents/Kindle(可通过配置修改) |
| AZW3 | 勾选后调用 calibre;未安装 calibre 时仅生成 EPUB,页面会提示 |
| 生成封面 | 对应脚本的 --no-cover 反向选项 |
生成完成后列出 EPUB、AZW3、封面,点击「下载」存盘。同一时间只允许一次构建,并发请求返回 409。
Agent 工具 kindle_book¶
参数包括:urls(必填,数组)、title、azw3、cover、outDir。返回输出目录、文件列表、失败链接与日志,与页面按钮行为一致。
示例(来自 README):
把这两个链接做成一本 kindle 书,书名《十月观察》
→ kindle_book(urls=["https://...", "https://..."], title="十月观察")
正文抓取与依赖探测¶
- 正文少于配置中的
minChars(默认 120)视为抓取失败。 - Python 解释器依次探测:
config.pythonPath→ DSH 自带 python → 常见系统路径 →PATH中的python3;需能import lxml。 - calibre 的
ebook-convert在 macOS / Linux / Windows 常见路径、PATH及环境变量NEWS2KINDLE_EBOOK_CONVERT下自动识别。
HTTP 接口(Harness webServer)¶
三条路由均经 Host/Origin 与登录校验:
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /kindle-book/env |
Python(含 lxml)、calibre、脚本、默认输出目录与限制 |
| POST | /kindle-book/build |
提交构建参数,返回结果、失败链接、日志 |
| GET | /kindle-book/download?id=&name= |
下载本次构建登记过的文件,不接受任意路径 |
安装与启用¶
前置条件
| 依赖 | 是否必需 | 说明 |
|---|---|---|
Python 3.10+ 与 lxml |
必需 | 安装:python3 -m pip install --user lxml |
| calibre | 可选 | 仅需 AZW3 时安装 |
DSH >= 0.2.1-0 |
必需 | 使用 webServer 路由、main / sidebar.panellist 与工具注册 |
安装均在 Harness 侧栏 插件 页完成,不要手工改 profile 的 package.json。任选一种方式:
插件市场
- 插件页 → 发现 → 添加索引:
https://raw.githubusercontent.com/wanghs09/dsh-plugin-kindle-book/main/market-index.json
- 搜索「Kindle」并安装。
GitHub
插件页 → 添加插件 → 填写:
git+https://github.com/wanghs09/dsh-plugin-kindle-book.git
npm
插件页 → 添加插件 → 填写 dsh-plugin-kindle-book(README 注明尚未发布到 npm,以仓库说明为准)。
本地目录
插件页 → 添加插件 → 本地目录 → 选择已下载的仓库目录。
装好后侧栏出现「Kindle 编书」;未开启 HMR 时需重启 Harness。卸载同样在插件页完成。当前 package 版本为 1.0.0,许可证 MIT,Node >= 18。
典型用法¶
页面:攒链接再编一本¶
README 建议的日常流程:
- 平时把想读但没空看的新闻链接先收藏,不必立即处理。
- 隔几天从收藏复制链接,一次性粘贴到侧栏;书名可用
新闻摘编 10月27日这类日期,一次编 5–10 篇。 - EPUB 可在电脑上用浏览器、Calibre 或 Apple Books 阅读;AZW3 可通过 USB 拷到 Kindle 的
documents/。Send to Kindle 邮箱通道不支持 AZW3,该通道请用 EPUB。 - 未抓到的链接在结果中单列,可单独再生成或打开原文。
可选配置¶
默认无需配置。若需指定 Python、calibre 或输出目录,在 profile 的 patch 中为插件 id kindle-book 增加 config,例如:
- insert:
- id: kindle-book
name: 'dsh-plugin-kindle-book'
config:
pythonPath: /opt/homebrew/bin/python3
calibrePath: /Applications/calibre.app/Contents/MacOS/ebook-convert
outDir: /Users/you/Documents/Kindle
timeoutMs: 300000
minChars: 120
| 键 | 默认 | 说明 |
|---|---|---|
pythonPath |
自动探测 | 能导入 lxml 的解释器 |
calibrePath |
自动探测 | ebook-convert 路径 |
outDir |
~/Documents/Kindle |
页面默认输出目录 |
timeoutMs |
300000 |
单次构建超时(毫秒) |
minChars |
120 |
正文少于此字数视为失败 |
适用场景与注意¶
适合谁
- 已在用 DSH,希望把新闻 / 长文链接离线成电子书的人。
- 希望在 Agent 对话里用自然语言触发编书(
kindle_book)的开发者。
已知限制(README)
- 无 calibre 时只出 EPUB。
- BBC、NYT、Guardian 等国际站点若本机直连不通,会列为失败链接(通常需代理)。
- 微信长文偶发
IncompleteRead,重新生成一次即可;脚本不重试。 - 输出只有文字,图片与视频按脚本设定丢弃。
- 一次只允许一本正在构建。
安全与权限
插件 Host 代码运行在 Harness 宿主进程内,不受工作区沙箱限制:会读写你指定的输出目录,并启动本机 Python 与 calibre。无遥测与外部上报;对外网络请求仅为抓取你提交的文章 URL。安装前建议阅读源码与 MIT 许可证,确认路径与依赖符合本机策略。
结尾¶
dsh-plugin-kindle-book 把「粘贴链接 → 清洗正文 → EPUB / 可选 AZW3」收进 DSH 侧栏与 kindle_book 工具,减少在浏览器、脚本、Calibre 之间来回切换。需要安装步骤与字段说明时,以仓库 README 为准。