Skip to content

SDGxxx/Obsidian-reader

Repository files navigation

Obsidian Reader

CI Release Obsidian

AI 辅助阅读工具——陪你读,而不是替你读。

这是什么

Obsidian Reader 是一个 Obsidian 插件,帮助你在阅读长文时压缩低价值段落展开高价值要点。它不替你读完全文,而是让你把时间花在最值得深读的内容上。

适合谁

  • 在 Obsidian 中阅读长文、论文、读书笔记的用户
  • 希望快速跳过铺垫和重复论述,聚焦核心观点的人
  • 对某个要点想深入理解,需要 AI 帮忙展开逻辑的人

当前支持

功能 说明
压缩选中文本 选中一段文字 → 执行命令 → AI 压缩为核心要点
压缩当前段落 不选中文本,光标在段落内 → 自动识别段落并压缩
展开选中文本 选中一段文字 → 执行命令 → AI 围绕已有观点深入阐释
展开当前段落 不选中文本,光标在段落内 → 自动识别段落并展开
选中文本提问 选中一段文字或光标置于段落内 → 输入问题 → AI 基于原文回答
结构地图(当前标题) 光标在标题范围内 → 分析该标题下的子章节,标记深读/略读
结构地图(整篇文档) 分析整篇 Markdown 文档章节,生成核心意思和重点推荐
结构化读书笔记 在结构地图中勾选章节和笔记档位 → 生成带来源追踪的结构化读书笔记
复制结果 弹窗内一键复制压缩/展开结果到剪贴板
写入正文 弹窗内一键将结果以 callout 形式插入原文后方
中转站兼容 支持 Anthropic 官方和兼容中转站(authToken 模式)

当前不支持

  • 全文摘要
  • 流式输出(需等完整结果)
  • 代码块/列表/引用块的特殊处理(会被拦截提示)
  • OpenAI 兼容接口
  • 移动端(未验证)

安装

从 Release 安装

  1. 打开 Releases
  2. 下载最新的 obsidian-reader-*.zip
  3. 解压到你的 Obsidian vault:
    <你的vault>/.obsidian/plugins/obsidian-reader/
    ├── main.js
    ├── manifest.json
    └── styles.css
    
  4. 打开 Obsidian → 设置 → 第三方插件 → 关闭安全模式 → 启用 Obsidian Reader。

从源码构建

  1. 在项目根目录执行:
    npm install
    npm run build
  2. main.jsmanifest.jsonstyles.css 复制到你的 Obsidian vault 中:
    <你的vault>/.obsidian/plugins/obsidian-reader/
    ├── main.js
    ├── manifest.json
    └── styles.css
    
  3. 打开 Obsidian → 设置 → 第三方插件 → 关闭安全模式 → 启用 Obsidian Reader。

配置

设置 → Obsidian Reader,填写以下内容:

设置项 说明
Base URL API 端点,默认 https://api.anthropic.com。使用中转站时填中转站地址
Auth Mode API Key(Anthropic 官方)或 Auth Token(中转站)
Secret 你的 API Key 或 Auth Token
Model 模型名称,默认 claude-sonnet-4-6,可手动修改
Default Reading Note Mode 读书笔记默认档位:轻量、标准或深度

隐私与密钥

  • 不要把 Obsidian 插件目录里的 data.json 上传到 GitHub;它可能包含你的 API Key、Auth Token 或中转站配置。
  • 仓库中的 .gitignore 已默认忽略 data.json.env*.obsidian/ 和本地依赖目录。
  • 如果不希望密钥写入 Obsidian 的插件数据文件,可以在设置中关闭 Remember Secret。关闭后密钥只保存在当前 Obsidian 会话内,重启后需要重新输入。
  • Base URL 可能暴露你使用的中转站地址;公开仓库中请只保留默认值或示例值。

使用

压缩

  1. 打开一个 Markdown 文件
  2. 方式一:选中一段文本
  3. 方式二:不选中,把光标放在段落内
  4. Ctrl+P → 搜索"Reader: 压缩" → 回车
  5. 等待"正在压缩..."提示消失,查看弹窗结果

展开

操作方式与压缩完全相同,命令名为"Reader: 展开"。

提问

选中文本或把光标放在段落内,执行命令"Reader: 提问",输入问题后,AI 会基于原文回答。原文信息不足时会提示信息不足。

结构地图

  • 当前标题:把光标放在某个标题或其内容范围内,执行"Reader: 结构地图(当前标题)"
  • 整篇文档:打开 Markdown 文件后执行"Reader: 结构地图(整篇文档)"

结构地图会为每个章节生成一句核心意思,并标记"深读"或"略读"。弹窗中可以继续对单个章节执行压缩、展开或提问。写入正文时会包含分析范围、生成时间、章节数以及深读/略读统计,方便之后回溯。

读书笔记

生成结构地图后,在弹窗左侧勾选需要沉淀的章节。默认会勾选"深读"章节,你也可以全选、清空、只选深读、只选略读、选到上限,或直接点击章节行快速切换勾选。弹窗会显示当前已选章节中的深读/略读数量和大致字数;空选择或超过读书笔记上限时会直接禁用生成按钮,并说明原因。也可以在"建议"列手动调整章节的"深读/略读"状态。

生成前可以选择笔记档位;默认档位可在插件设置中调整:

  • 轻量:更短,只保留最关键沉淀
  • 标准:默认档位,覆盖固定结构
  • 深度:展开更多论证链、旧知连接和追问

点击"生成读书笔记"后,结果会先在弹窗中预览,包含:

  • 核心观点
  • 值得记住的点
  • 可连接旧知
  • 待追问问题
  • 来源章节

预览弹窗中可以复制 Markdown,也可以写入当前文档。默认"写入正文"会使用 Obsidian callout;读书笔记还可以选择"写入为标题块",更适合后续整理。写入内容会附带笔记档位和来源章节,便于回溯,不会覆盖原文。若模型返回的 Markdown 缺少固定标题结构,插件会基于结构化字段自动补齐为标准读书笔记格式。已选章节总长度超过 30000 字时会提示分批生成。

复制结果

弹窗底部点击"复制结果"或"复制结构地图",结果进入剪贴板。

写入正文

弹窗底部点击"写入正文",结果以 callout 格式插入原文后方:

> [!summary] 压缩结果
> 压缩后的内容...

原文不会被修改或替换。写入后可用 Ctrl+Z 撤销。

读书笔记预览弹窗还提供"写入为标题块",会直接追加 Markdown 标题块,适合把笔记沉淀成正文的一部分。

常见问题

Q: 命令执行后没有反应? 检查设置中 Secret 是否已填写,以及网络是否可用。

Q: 提示"暂不支持处理代码块"? 当前版本不处理代码块,请选中纯文本内容。

Q: 提示"文本过长"? 当前限制为 5000 字,请缩小选中范围。

Q: 读书笔记提示"已选章节过长"? 读书笔记当前限制已选章节原文总长度为 30000 字,请减少勾选章节,分批生成。

Q: 压缩结果和原文一样长? 模型认为该段落没有压缩空间,会原样返回。

Q: 使用中转站时报错? 确认 Auth Mode 选择了"Auth Token",Base URL 填写正确,且中转站支持 Anthropic Messages API 格式(不支持 OpenAI 兼容接口)。

开发

npm install
npm run typecheck
npm test
npm run build

主要目录:

  • src/core/ai/:AI 调用、解析和兜底逻辑
  • src/core/parser/:段落和章节识别
  • src/commands/:Obsidian 命令编排
  • src/ui/:弹窗和交互
  • prompts/:所有模型提示词
  • tests/:单元测试和命令/UI 回归测试

发布

创建形如 v0.0.1 的 tag 后,GitHub Actions 会自动构建并生成 release zip,包含:

  • main.js
  • manifest.json
  • styles.css

许可证

暂未选择开源许可证。公开使用、二次分发或商用前请先确认许可证策略。

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors