dsh-paper2html:把 arXiv 与本地 PDF 转成可分享的交互式 HTML 阅读页

前言

在 DeepSeek Harness(DSH)里读论文,常见做法是打开原始 PDF,或在对话里让模型概括全文。前者版式固定、长文翻页成本高;后者快,但缺少可跳转目录、内嵌图表和可反复标注的阅读界面。若你希望「一条链路」从 PDF 或 arXiv 链接得到单文件 HTML,并在 DSH Web 里预览、批注、再让 agent 读你的高亮,客户端插件 dsh-paper2html(维护者 rubyzhao666)就是围绕这条路径做的。它由上游 paper2html(MIT)改造而来,归类为 DSH 社区目录中的客户端插件。

这是什么

dsh-paper2html 是 DSH 插件:把本地 PDF 或 arXiv 论文转成精美、可分享、可交互的 HTML 阅读页。默认不需要任何 API key——内置本地解析(PyMuPDF)抽取标题、正文与图片,再由渲染层排版。配置 DeepSeek key 后可选用 AI 摘要;配置 Doc2X / PDF2X key 后可走云端高保真解析(公式、表格、扫描件 OCR)。

核心能力

下面按「转换 → 阅读 → 批注 → 与 agent 协作」说明已文档记载的能力。

转换与输出

能力 说明
对话驱动 用户用自然语言描述需求即可,模型会调用 paper2html_convert
三套主题 dark_lab(夜间)、clean_paper(打印/分享)、neon_tech(演示)
单文件分享 产物为 self-contained HTML,图片可 base64 内嵌,可离线打开或直接发给他人
默认输出目录 $DSH_HOME/paper2html/exports(默认 ~/.dsh/paper2html/exports)

paper2html_convert 主要参数如下(供排查与二次开发参考):

paper2html_convert({
  input: "/abs/path/paper.pdf" | "https://arxiv.org/abs/1706.03762" | "1706.03762",
  outputDir?: "/abs/out/dir",
  style?: "dark_lab" | "clean_paper" | "neon_tech",
  understand?: false   // true 需要已配置 DeepSeek key
})

返回中包含 htmlPath、previewUrl、title、engine(local | doc2x | pdf2x)、pages、bytes、understand、warnings 等字段。

交互阅读器

生成页提供左侧目录、⌘K 搜索、速读/标准/精读三种阅读模式、阅读进度与锚点复制。公式与图表方面:KaTeX 渲染公式(云端解析时最完整)、Mermaid 架构图、论文插图内嵌。公式/图表依赖 CDN 加载 KaTeX/Mermaid 时,联网打开渲染最完整;离线时正文仍可读。

DSH Web 集成

安装后会自动具备:

  • 工具:paper2html_convert、paper2html_status、paper2html_annotations
  • skill:paper2html
  • 只读预览路由:/paper2html/
  • DSH Web 左侧栏「Paper2HTML」入口:打开论文库单页,展示已转换论文、批注统计、搜索/主题筛选/排序,以及「转换新论文」等操作

左侧栏入口属于浏览器 client 半边:安装或更新插件后需重启 DSH(或重载 Web 界面) 才会出现;重启前工具、skill、预览路由仍可用。

批注、导出与 agent 读取

阅读页右下角提供「批注」能力:划词高亮(四色)或文字批注,侧栏按文档顺序列出;数据保存在浏览器 localStorage,并可「导出带批注版」得到 <原名>-annotated.html。

在 DSH Web 预览页(http://127.0.0.1:<端口>/paper2html/…)打开时,批注会防抖同步到 Host:$DSH_HOME/paper2html/annotations/<docId>.json。对话里可说「把我标的部分总结一下」,由模型调用 paper2html_annotations 读取同步后的批注。注意:仅用 file:// 打开 HTML 时批注不 sync 到 Host,agent 读不到,但仍可用「导出带批注版」分享。

有没有 API key 的差别

无 key(默认) 有 DeepSeek key 有 Doc2X/PDF2X key
解析 本地 PyMuPDF 本地 PyMuPDF 云端高保真
排版/主题/目录/图片 支持 支持 支持
TL;DR / 关键发现 / 章节摘要 否(Abstract 原文顶替) 是(understand: true) 视配置
扫描件 否 否 是(OCR)

插件不会使用作者提供的 key;本地解析时论文内容不出网。云端解析直连 Doc2X/PDF2X,AI 摘要直连你配置的模型地址。

可选配置(勿把 key 贴在对话里):

export DEEPSEEK_APIKEY="sk-..."
export DOC2X_APIKEY="sk-..."
# 或 PDF2X_APIKEY

或写入 ~/.dsh/paper2html/config.json:

{
  "deepseekKey": "sk-...",
  "doc2xKey": "sk-..."
}

可选字段包括 deepseekBaseUrl(默认 https://api.deepseek.com/v1)、llmModel(默认 deepseek-chat)。插件只读该文件,不会自动写入 key。

安装与启用

README 记载:插件由 DeepSeek Harness 安装,方式包括 plugin_manager 或本地目录安装。安装完成后,上述工具、skill、预览路由即注册;首次成功转换时会自动准备 Python 环境:优先使用本机已安装 pymupdf / markdown 的解释器;否则在 ~/.dsh/paper2html/venv 懒建 venv 并联网安装最小依赖(约 50 MB,仅一次)。可通过环境变量 PAPER2HTML_PYTHON=/path/to/python3 指定解释器。

环境要求(摘自 package.json / README):

  • DeepSeek Harness >=0.2.1-rc.2 <0.3.0
  • Node ^22.19.0 || >=24.0.0
  • Python 3.9+

安装前请自行查看 GitHub 仓库 源码与 MIT 许可证;插件以当前 DSH 进程权限访问本机文件与网络(首次装依赖、可选云端解析与 AI 摘要时才会出网)。

典型用法

论文库(左侧栏)

在 DSH Web 左侧点 Paper2HTML:顶栏显示篇数与批注总数,「+ 转换新论文」会在新会话填入提示词,补上 PDF 路径或 arXiv 链接即可。卡片上可「打开阅读页」「复制链接」「复制文件路径」。数据来自本机 $DSH_HOME/paper2html/exports 与批注 store,页面本身不发外网请求。

直接对话

不必记忆工具名,例如:

  • 「把这个 PDF 变成能看的网页」
  • 「这篇 arXiv 帮我转成网页,用 clean_paper 主题」
  • 「根据我在预览里标的批注整理成笔记」
  • 「怎么把带批注的版本发给同事」

预览与分享

转换完成后打开返回的 previewUrl(形如 http://127.0.0.1:<端口>/paper2html/p/<id>);分享则发送 htmlPath 指向的单文件 HTML 即可。

手动排查(可选)

node scripts/smoke.mjs https://arxiv.org/abs/1706.03762 --style clean_paper

python3 python/paper2html.py --input /abs/paper.pdf --style clean_paper --no-understand

数据目录与已知限制

本机数据布局:

$DSH_HOME/paper2html/
├── config.json
├── venv/
├── cache/              # arXiv PDF 缓存
├── exports/            # 默认 HTML 输出
├── annotations/        # Web 预览同步的批注 JSON
└── preview-registry.json

使用前需心里有数的几点:

  • 本地解析对复杂公式、表格、版式还原有限;扫描件无文本层时需 OCR 或 Doc2X/PDF2X。
  • 插图上限:单篇 80 张、单张 ≤4 MB、总原始图 ≤20 MB,超出会在 warnings 中提示。
  • 批注同步单文档上限 500 条 / 512KB;file:// 与 Web 预览的 Host 批注不互通,分享批注依赖「导出带批注版」。

结尾

dsh-paper2html 把「PDF / arXiv → 交互 HTML → DSH Web 预览与论文库 → 批注同步给 agent」串成一条默认无 key 可跑的客户端链路,适合在 Harness 里长期囤积、标注和复述论文的场景。安装与能力细节以仓库 README 为准。

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

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

Xiaoye