# AIAnswer-to-Obsidian-Script **Repository Path**: xiedali/AIAnswer-to-Obsidian-Script ## Basic Information - **Project Name**: AIAnswer-to-Obsidian-Script - **Description**: 将豆包、kimi等AI回答一键转为Markdown保存到Obsidian指定的目录中。这是一个实现的油猴脚本。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-26 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Answer to Obsidian 将 AI 平台的回答一键保存为 Markdown 笔记到 Obsidian。 目前支持: - [豆包](https://www.doubao.com) - [Kimi](https://kimi.moonshot.cn) ## 功能 - 在 AI 回答的操作栏中自动添加「保存到 Obsidian」按钮 - 点击按钮将回答内容转换为 Markdown 格式并保存到 Obsidian 指定目录 - 自动以问题标题命名文件,避免覆盖 - 支持代码块、列表、链接等常见 Markdown 格式 - 支持多个 AI 平台(豆包、Kimi) - 过滤代码块和表格容器的 UI 文字(如"bash"、"运行"、"表格"等) - **TypeScript 实现**:提供类型安全和更好的代码可维护性 ## 前置条件 - [Obsidian](https://obsidian.md) 已安装并运行 - [Local REST API](https://github.com/cjscalese/obsidian-local-rest-api) 插件已安装并启用 - [Tampermonkey](https://www.tampermonkey.net/) 浏览器扩展已安装 ## 安装 1. 安装 Tampermonkey 浏览器扩展 2. 下载 `ai-answer-to-obsidian.user.js` 3. 在 Tampermonkey 中打开该脚本,修改 `CONFIG.apiKey` 为你自己的 API Key(见下方配置说明) 4. 保存脚本 ## 配置 Local REST API ### 1. 安装插件 在 Obsidian 中:设置 → 第三方插件 → 浏览 → 搜索 **Local REST API** → 安装并启用。 ### 2. 获取 API Key 1. 打开 Obsidian 设置 → 第三方插件 → Local REST API 2. 找到 **API Key** 字段,点击复制 3. 如果没有显示 API Key,点击「Regenerate」生成一个 ### 3. 配置脚本 编辑 Tampermonkey 脚本,修改 `CONFIG` 对象中的以下字段: ```javascript const CONFIG = { apiKey: '你的API Key', // 从 Local REST API 插件复制的 Key apiBaseUrl: 'http://127.0.0.1:27123', // 默认端口,如插件设置中修改了端口需同步修改 savePath: 'Inbox/ai-answers', // Obsidian 库中的保存路径 // ... }; ``` | 配置项 | 说明 | 默认值 | |--------|------|--------| | `apiKey` | Local REST API 的认证 Key | 无(必须配置) | | `apiBaseUrl` | Local REST API 的地址和端口 | `http://127.0.0.1:27123` | | `savePath` | 笔记在 Obsidian 库中的保存目录 | `Inbox/ai-answers` | ### 4. 验证连接 1. 确保 Obsidian 正在运行且 Local REST API 插件已启用 2. 打开豆包或 Kimi 页面,发送一个问题 3. 点击回答下方的「保存到 Obsidian」按钮 4. 按钮变为「已保存」表示连接成功 ## 使用 1. 打开 [豆包](https://www.doubao.com) 或 [Kimi](https://kimi.moonshot.cn) 并提问 2. 每条回答的操作栏中会出现「保存到 Obsidian」按钮 3. 点击按钮即可将回答保存为 Markdown 笔记 按钮状态说明: - **保存到 Obsidian** — 就绪,可以点击 - **保存中...** — 正在保存 - **已保存** — 保存成功(2秒后恢复) - **保存失败** — 保存失败,鼠标悬停查看原因(3秒后恢复) ## 架构说明 项目采用 TypeScript 实现,使用适配器模式: ``` src/ ├── adapters/ # 站点适配器 │ ├── doubao.ts # 豆包特定逻辑 │ ├── kimi.ts # Kimi 特定逻辑 │ └── index.ts # 适配器导出和 Adapter 接口定义 ├── core/ # 核心模块 │ ├── config.ts # 配置管理 │ ├── converter.ts # HTML 转 Markdown │ ├── extractor.ts # 内容提取 │ ├── filename.ts # 文件命名 │ ├── main.ts # 主入口 │ ├── saver.ts # Obsidian API 保存 │ └── ui.ts # UI 交互 ├── types/ # 类型声明 │ └── index.ts # 油猴 API 和自定义类型 └── header.js # 油猴脚本头 ``` 新增支持的 AI 平台只需在 `adapters/` 目录下创建新的适配器文件,实现 `Adapter` 接口。 ## 开发 ### 环境要求 - Node.js 18+ - npm 或 pnpm ### 开发流程 ```bash # 安装依赖 npm install # 运行测试 npm test # 构建(生成油猴脚本) npm run build ``` ### TypeScript 配置 项目使用 TypeScript 严格模式,配置文件为 `tsconfig.json`: - 目标:ES2015 - 模块:ESNext - 严格模式:启用 - 无编译输出(`noEmit: true`):使用 esbuild 直接构建 ### 添加新适配器 1. 在 `src/adapters/` 目录下创建新文件,如 `newplatform.ts` 2. 实现 `Adapter` 接口(定义在 `src/adapters/index.ts`) 3. 在 `src/adapters/index.ts` 中导入并导出新适配器 4. 运行测试和构建验证 ## 版本历史 - **v3.0.0** (2026-04-28) — TypeScript 重构 - 全部源代码迁移到 TypeScript - 启用严格类型检查 - 定义 Adapter 接口规范适配器实现 - 添加油猴 API 类型声明 - 64个测试用例全部通过 - 保留 100% 测试覆盖率 - **v2.1.0** (2026-04-28) — JavaScript 实现最后版本 - 过滤 Kimi/Doubao 代码块容器的 header 文字 - 过滤 Kimi 表格容器的 header 文字 - **v2.0.1** (2026-04-27) — HTML 表格支持 - **v2.0.0** (2026-04-26) — 基础功能 ## License MIT