我开源了一个 Chrome 插件:一键总结网页为 Markdown

让 AI 帮你阅读,而不是被信息淹没。

在信息爆炸的时代,我们每天面对成百上千的网页内容------技术文档、新闻报道、产品说明、学术论文......但真正能沉淀为知识的却寥寥无几。有没有一种工具,能一键将任意网页提炼为核心要点,并以 Markdown 格式输出,方便我们整理笔记或分享观点?

答案是:有!而且你可以自己动手实现它。

本文将带你从零开始,使用现代前端技术栈(React + Vite)开发一款 AI 驱动的网页内容摘要 Chrome 插件 ,并完整适配最新的 Manifest V3 规范。更重要的是------这个项目已经开源,你不仅可以跟着教程学习,还能直接使用、二次开发,甚至贡献代码!

🔗 项目地址 :https://gitee.com/qiaoyuning/ai-page-summarizer

✅ 支持区域高亮总结|✅ 多格式输出|✅ 本地运行|✅ 无后端依赖


一、为什么需要这个插件?

  • 快速抓取核心信息:长文阅读不再耗时,30 秒生成摘要。
  • 辅助知识管理:将网页转化为结构化笔记,便于导入 Obsidian、Notion 等工具。
  • 隐私安全 :所有 API 调用均在用户本地发起,不经过任何第三方服务器。
  • 高度可定制:支持自定义 AI 模型(如 ModelScope、DeepSeek)、输出风格、字数限制等。

二、技术选型与架构设计

核心技术栈

  • UI 框架:React 18(Popup 弹窗界面)
  • 构建工具:Vite(极速热更新 + 多入口支持)
  • 扩展规范:Chrome Extension Manifest V3(更安全、更高效)
  • 通信机制 :chrome.runtime.sendMessage
  • 数据存储 :chrome.storage.sync(配置跨设备同步)

项目结构

复制代码
ai-page-summarizer/
├── popup/              # React 构建的弹出界面(ESM 模块)
├── content/            # 注入网页的内容脚本(IIFE 格式,MV3 要求)
├── background.js       # Service Worker(替代旧版后台页面)
├── manifest.json       # MV3 配置清单
├── utils/              # 公共工具(API 调用、文本处理等)
└── public/             # 静态资源(图标、manifest)

关键挑战 :Manifest V3 要求 Content Script 必须是 IIFE(立即调用函数表达式) ,而 Popup 使用 ESM。我们通过 Vite 的 build.rollupOptions.input 配置多入口,分别输出两种格式,完美兼容。


三、核心功能实现详解

1. 精准提取网页正文

直接读取 document.body.innerHTML 会包含大量噪音(广告、导航栏、评论区)。我们采用轻量级策略:

  • 过滤 <script>、<style>、<nav>、.ad 等无关元素
  • 保留语义化标签(<article>, <main>, <p>, <h1~h6>)
  • 计算文本密度,优先提取高密度区块

后续可集成 Readability.js 提升准确性。

2. 调用大模型生成摘要

用户可在设置中填入自己的 ModelScope / DeepSeek API Key,插件将调用对应接口:

ts 复制代码
// utils/summarize.ts
export async function generateSummary(text: string, apiKey: string, style: string) {
  const prompt = `请将以下内容总结为一篇${style},不超过300字:\n\n${text}`;
  const response = await fetch('https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'qwen-max',
      input: { messages: [{ role: 'user', content: prompt }] }
    })
  });
  const data = await response.json();
  return data.output.choices[0].message.content;
}

所有请求均由用户浏览器发起,开发者无法获取你的 API Key 或网页内容。

3. 区域高亮总结(独家功能!)

除了全文总结,你还可以:

  1. 在网页上拖选任意文字区域
  2. 点击插件图标
  3. 插件仅对该选中区域进行总结

这极大提升了灵活性------比如只总结论文的"方法"部分,或新闻中的"事件经过"。

4. 多格式输出

支持四种输出风格,满足不同场景:

  • 要点列表:适合快速记录
  • 博客文章:带引言和小结
  • 技术报告:结构严谨,术语准确
  • 简洁摘要:一句话概括核心

四、如何本地运行?

  1. 克隆项目

    bash 复制代码
    git clone https://gitee.com/qiaoyuning/ai-page-summarizer.git
    cd ai-page-summarizer
  2. 安装依赖并构建

    bash 复制代码
    pnpm install && pnpm run build
    # 输出目录:dist/
  3. 加载到 Chrome

    • 地址栏输入 chrome://extensions
    • 开启右上角「开发者模式」
    • 点击「加载已解压的扩展程序」
    • 选择项目中的 dist 文件夹
  4. 配置 API Key

    • 点击插件图标 → 「设置」
    • 填入你的 ModelScope 或 DeepSeek API Key
    • 保存后即可使用!

无需后端服务!整个插件完全运行在浏览器内,符合 Manifest V3 安全规范。


五、为什么这个项目值得学习?

  • 完整的 Manifest V3 实践案例:涵盖权限声明、Service Worker 生命周期、Content Script 注入、跨上下文通信等核心概念。
  • 工程化最佳实践:Vite 多入口构建、TypeScript 类型安全、模块化设计、错误边界处理。
  • 开箱即用的生产力工具:配置后立即提升阅读效率。
  • 优秀的学习模板:可基于此项目快速开发其他插件(如翻译、划词搜索、内容存档等)。

六、开源与贡献

本项目已在 Gitee 开源,遵循 MIT 协议,欢迎所有开发者使用与参与!

🔗 Gitee 仓库地址 :

👉 https://gitee.com/qiaoyuning/ai-page-summarizer

你可以:

  • ⭐ Star 项目:支持作者持续更新
  • 🍴 Fork 并二次开发:添加新模型、新功能
  • 🐞 提交 Issue:反馈 Bug 或建议
  • 🤝 发起 PR:贡献代码,一起打造更好用的工具

项目根目录包含详细文档《插件开发指南与实战.md》,深入讲解:

  • 从 Web 应用到浏览器扩展的思维转变
  • Manifest V3 迁移避坑指南
  • 调试技巧(Popup / Content Script / Background 分别如何调试)
  • 上架 Chrome Web Store 的全流程

结语

在这个注意力稀缺的时代,工具的价值不在于功能多少,而在于能否帮你聚焦真正重要的信息。

「AI Page Summarizer」正是这样一个小而美的工具------它不喧宾夺主,只在你需要时,安静地为你提炼精华。

现在,就去 Gitee 获取源码,让它成为你每日阅读的得力助手吧!

相关推荐
java1234_小锋6 小时前
【技术专题】HTML5 网页技术 - HTML5 Canvas 基础以及动画入门
前端·html·html5
魔乐社区8 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
知了学历孙老师9 小时前
小自考的校考和统考,出题方和难度差在哪
java·大数据·前端
冬奇Lab11 小时前
开源项目第242期:HyperFrames —— 写 HTML 就能渲染视频,专为 AI Agent 设计的确定性视频框架
人工智能·开源·音视频开发
ShineWinsu11 小时前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
AI日报派送佬11 小时前
2026年10月19日AI行业日报|三星联合台积电代工英伟达HBM裸片,智谱开源法律大模型,清华发布智能体操作系统PilotDeck 2.0
人工智能·开源·英伟达·智能体·anthropic·ai日报·法律大模型
Tangyuewei11 小时前
小米的 Coding Agent 开源了
人工智能·开源·ai编程
福兮说12 小时前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
程序员老赵13 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
Swot13 小时前
Asciidoctor 公式数字下标错位问题:原因分析与解决方案
前端