fancive_obsidian-parallel-r.../README.zh-CN.md
fancivez c10c641949 docs: trim e2e gate section in readme
Drop the self-contained/no-Python historical note and the contributor-
focused tests/catalog.json paragraph; keep the gate command + TEST_LIVE=1
hint. Public README does not need internal test classification details.

Change-Id: Ic7a2ed45af0ebeb3be227aed03079ce258ed30c2
2026-05-02 12:51:19 +08:00

6.9 KiB
Raw Blame History

Obsidian Parallel Reader

Obsidian 对照阅读插件 — 左边原文、右边 AI 摘要卡片,滚动联动、点击跳转。

最新版本 累计下载 CI 状态 开源协议 Obsidian 1.4+

Star 数 未关闭 issue 最近提交 TypeScript strict 代码风格 Biome English README

English · 中文


灵感来自 这个 B 站视频 的阅读工作流演示。

功能

  • 自适应切段 — LLM 自行判断主题边界,不依赖 markdown 标题。短段合并、长段拆分。
  • 滚动联动 — 滚动编辑器时,右侧对应卡片自动高亮。
  • 流式输出 — 支持 OpenAI Chat 和 Anthropic API 的 SSE 流式响应,生成时实时显示进度。
  • 20+ Provider — Anthropic、OpenAI、Gemini、OpenRouter、Groq、DeepSeek、Moonshot、Ollama、LM Studio 等,还支持 Claude Code CLI 和 Codex CLI。
  • 持久化缓存 — 按源文件 SHA-1 + 配置指纹缓存,重新打开秒出。内容或配置变更后显示"已过期"提示。
  • Markdown 渲染 — 通过 Obsidian 的 MarkdownRenderer 渲染表格、加粗、代码、wikilink 均正常显示。
  • 卡片编辑 — 右键任意卡片:复制、编辑、删除、跳转原文。
  • 导出 — 保存为 Vault 中的 Markdown 文件,或复制到剪贴板。
  • 中英双语 UI — 命令、设置、面板文案全部支持中文和英文。

快速开始

第一步:安装插件

  1. 打开 Release 页面,下载最新版的三个文件:main.jsmanifest.jsonstyles.css
  2. 打开你的 Vault 文件夹,进入 .obsidian/plugins/(没有就新建),再创建一个叫 parallel-reader 的文件夹
  3. 把下载的三个文件放进去
  4. 打开 Obsidian → 设置第三方插件 → 找到 Parallel Reader → 打开开关

找不到 .obsidian 文件夹? macOS 在 Finder 里按 Cmd+Shift+. 显示隐藏文件Windows 在文件资源管理器里勾选「显示隐藏的项目」。

第二步:配置 AI 服务

  1. 在 Obsidian 中打开 设置Parallel Reader
  2. 选择一个 Provider(比如 Anthropic、OpenAI、DeepSeek 等)
  3. 粘贴你的 API Key
  4. (可选)修改 模型
  5. 点击 Test 验证连接

搞定!打开任意笔记,按 Cmd/Ctrl+P 调出命令面板,运行 「Parallel Reader: 为当前笔记生成对照笔记」 即可。

支持的 Provider 一览
Provider 说明
Anthropic 默认推荐
OpenAI GPT 系列
Google Gemini Gemini 系列
OpenRouter / Groq / DeepSeek / Moonshot 等 OpenAI 兼容格式
Ollama / LM Studio 本地模型,无需 API Key
自定义端点 任何 OpenAI 或 Anthropic 兼容的 API
CLI 模式(进阶)

如果你本地装了 Claude CodeCodex,在设置里切换后端即可,插件会自动找到安装位置。万一自动探测失败,可以手动填写路径。

使用

操作 效果
点击卡片 跳转到原文对应位置
右键卡片 上下文菜单:复制、编辑、删除、跳转
滚动编辑器 右侧卡片自动高亮
Alt+↑ / Alt+↓ 在卡片间导航
Enter(摘要面板内) 跳转到当前卡片原文
Ribbon 图标 打开对照面板
文件右键菜单 生成 / 重新生成 / 清除缓存

原理

LLM 返回结构化 JSON

{
  "cards": [
    {
      "title": "短标题",
      "anchor": "从原文逐字复制的引用,用于定位",
      "gist": "一句话领读",
      "bullets": ["支撑要点 1", "支撑要点 2"]
    }
  ]
}

anchor 是滚动联动的核心 — 通过 indexOf 加多级容错定位行号,不依赖标题。

gist + bullets 兼顾概览和细节 — 纯散文太密,纯列表太碎。

开发

npm install
npm run dev       # watch 模式
npm run build     # 生产构建
npm run typecheck # TypeScript strict 模式
npm run lint      # Biome
npm test          # 构建 + 类型检查 + 测试
npm run test:unit
npm run test:component
npm run test:contract
npm run test:e2e  # 打包插件 + 临时 Vault smoke

CI / 发布前跑一次 contract gate 留证据:

bash .e2e/gate.sh --json    # 写出 .e2e/artifact.json已 gitignore

TEST_LIVE=1 可开启真实本地 Vault / provider 检查。

Star History

Star History Chart

License

MIT