Skip to content

Commit 2bcf0c3

Browse files
committed
feat: 重构提取器架构,添加可扩展组件设计,支持discover页面,优化图片URL处理
1 parent a4192ad commit 2bcf0c3

File tree

6 files changed

+1821
-193
lines changed

6 files changed

+1821
-193
lines changed

README.md

Lines changed: 66 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,84 @@
11
# Perplexity Clipper
22

3-
> Chrome 扩展:一键提取 Perplexity.ai 文章为干净的 Markdown 格式。支持文章标题、首图、章节结构等完整保留
3+
> Chrome 扩展:一键提取 Perplexity.ai 文章为干净的 Markdown 格式,支持导出到 Anytype 知识库
44
5-
## 效果展示
5+
## 功能概述
66

7-
### 原文页面
8-
![Perplexity 原文](assets/perplexity-original.png)
7+
- ✂️ **一键提取** - 将 Perplexity 文章转换为干净的 Markdown 格式
8+
- 📱 **多页面支持** - 支持 `/page/``/discover/` 路径下的具体文章页面
9+
- 📝 **完整保留** - 保留文章标题、首图、章节结构等完整格式
10+
- 📋 **自动复制** - 提取后自动复制到剪贴板,方便粘贴到任何编辑器
11+
- 🚀 **Anytype 导出** - 一键将内容导出到 Anytype 知识库
12+
- 🔄 **智能记忆** - 记住用户偏好设置,包括空间、类型和模板选择
13+
- 🧠 **自动提取** - 点击导出按钮时自动提取内容,无需手动操作
14+
- 🔌 **可扩展架构** - 基于提取器组件设计,便于添加对新网站的支持
915

10-
### 提取效果
11-
![提取效果](assets/perplexity-clipped.png)
16+
## 支持的页面类型
1217

13-
## 功能特点
18+
- ✅ Perplexity 文章页面 (`perplexity.ai/page/*`)
19+
- ✅ Perplexity Discover 文章页面,例如:
20+
- `perplexity.ai/discover/tech/article-name`
21+
- `perplexity.ai/discover/finance/article-name`
22+
- `perplexity.ai/discover/arts/article-name`
1423

15-
- 🎯 专注于 Perplexity.ai 文章页面
16-
- 📝 提取为干净的 Markdown 格式
17-
- 🖼 保留文章首图
18-
- 📑 保持原文章结构(H1/H2)
19-
- 📋 自动复制到剪贴板
20-
- 💾 可选下载 .md 文件
24+
**注意**:本插件仅支持具体的文章页面,不支持分类列表页面(如 `perplexity.ai/discover/tech`)。
2125

2226
## 使用方法
2327

24-
1. `git clone … && cd perplexity-clipper`
25-
2. 打开 Chrome 扩展管理页面 `chrome://extensions`
26-
3. 开启「开发者模式」
27-
4. 点击「加载已解压的扩展」
28-
5. 打开任意 Perplexity 文章页面
29-
6. 点击扩展图标,一键提取!
28+
### 基本使用
29+
30+
1. 安装扩展后,打开任意 Perplexity 文章页面
31+
2. 点击工具栏中的扩展图标
32+
3. 点击"抽取并复制 Markdown"按钮
33+
4. Markdown 内容将自动复制到剪贴板,同时显示在文本框中
34+
35+
### Anytype 导出功能
36+
37+
1. 在扩展弹窗中勾选"启用 Anytype 导出"
38+
2. 点击"导出到 Anytype"按钮(会自动提取当前页面内容)
39+
3. 首次使用时,需要完成与 Anytype 的配对流程:
40+
- 确保 Anytype 桌面应用已运行
41+
- 在 Anytype 应用中查看弹出的四位验证码
42+
- 在插件中输入该验证码完成配对
43+
4. 选择要导出到的空间、对象类型和模板(可选)
44+
5. 输入对象标题(默认使用文章标题)
45+
6. 点击"确认导出"按钮
46+
47+
**注意**:使用 Anytype 导出功能需要 Anytype 桌面应用 v0.45.0 或更高版本。
48+
49+
## 安装方法
50+
51+
### 手动安装(开发者模式)
52+
53+
1. 下载此仓库的 ZIP 文件并解压
54+
2. 打开 Chrome 浏览器,进入扩展管理页面 (`chrome://extensions/`)
55+
3. 开启"开发者模式"
56+
4. 点击"加载已解压的扩展程序",选择解压后的文件夹
57+
58+
## 隐私声明
59+
60+
- 此扩展不会收集任何用户数据
61+
- 所有内容处理均在本地完成
62+
- Anytype 配对信息仅存储在本地浏览器中
63+
64+
## 技术细节
65+
66+
- **内容提取**:通过 XPath 和 DOM 操作精确提取 Perplexity 文章内容
67+
- **Markdown 转换**:保留文章结构,包括标题、段落、列表和引用
68+
- **Anytype 集成**:通过 Anytype JSON-RPC API 实现与 Anytype 的无缝集成
69+
- **用户偏好**:使用 Chrome Storage API 保存用户设置和偏好
70+
- **可扩展架构**:基于提取器模式设计,便于添加新网站支持
3071

3172
## 开发相关
3273

33-
- 可在 `popup.js` 中取消注释以启用 .md 文件下载功能
74+
- 内容提取脚本位于 `content-perplexity.js`
75+
- 使用基于组件的提取器架构,便于扩展
76+
- 要添加新网站支持,只需创建新的提取器类并注册到管理器
77+
- 弹窗界面位于 `popup.html``popup.js`
78+
- Anytype API 相关功能位于 `anytype-api.js`
3479
- 欢迎提交 Issue 和 PR
3580

3681
## License
3782

3883
MIT License · Made with ❤️ by [SockingPanda](https://github.com/SockingPanda)
84+

0 commit comments

Comments
 (0)