写点什么

自动动手制作一款 Chrome 扩展,一键转存文章

作者:悟空聊架构
  • 2025-05-14
    湖北
  • 本文字数:1620 字

    阅读完需:约 5 分钟

我正在参加 CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴


你好,我是悟空。

一、背景

你是否有看过好的技术文章后,回头再找,很难找到的痛苦?


你是否有收藏了一堆好文链接,等下次再次访问的时候,发现网站挂了?


假如有一款工具,直接将网上的文章下载下来,并用 markdown 来存储,以后还可以离线观看,是不是就很舒服了。


这次我们借助 CodeBuddy 来做一款下载文章的 Chrome 浏览器扩展,一键转存文章成 markdown 文件。

二、Chrome 扩展开发原理与流程

2.1 Chrome 扩展的基本架构

Chrome 扩展是基于 Web 技术(HTML、CSS、JavaScript)构建的软件包,可以扩展 Chrome 浏览器的功能。以下是 Chrome 扩展的核心架构和工作原理:

2.1.1 核心组件

Chrome扩展├── Manifest文件 (manifest.json)├── 用户界面元素│   ├── 弹出页面 (Popup)│   ├── 选项页面 (Options)│   └── 侧边栏 (Sidebar)├── 后台脚本 (Background Scripts)├── 内容脚本 (Content Scripts)├── 资源文件│   ├── 图标│   ├── 样式表│   └── 其他资源└── Web API访问
复制代码

2.1.2 工作流程图

graph TD    A[用户安装扩展] --> B[Chrome加载manifest.json]    B --> C{扩展类型}    C -->|Browser Action| D[在工具栏显示图标]    C -->|Page Action| E[在特定页面显示图标]    C -->|无界面| F[后台运行]        D --> G[用户点击图标]    E --> G    G --> H[显示弹出页面]        H --> I[用户交互]    I --> J{操作类型}    J -->|页面操作| K[执行内容脚本]    J -->|API调用| L[调用Chrome API]    J -->|数据处理| M[在扩展内处理数据]        K --> N[与网页交互]    L --> O[访问浏览器功能]    M --> P[更新扩展状态]        N --> Q[完成任务]    O --> Q    P --> Q
复制代码


2.2 开发流程图

graph LR    A[规划扩展功能] --> B[创建manifest.json]    B --> C[开发用户界面]    B --> D[编写后台脚本]    B --> E[编写内容脚本]    C --> F[测试扩展]    D --> F    E --> F    F --> G{测试通过?}    G -->|否| C    G -->|是| H[打包扩展]    H --> I[发布到Chrome Web Store]
复制代码



我们只需要开发一个本地的扩展就行,不需要上传到 Chrome 扩展商店。

三、让 CodeBuddy 帮我们写插件

3.1 编写 Chrome 扩展

提示语:帮我写一个 chrome 插件,将网页内容一键转成 markdown 文件。


然后 CodeBuddy 就开始写插件了。



它主要完成了这几件事情:


  1. 扩展程序结构:Chrome 扩展通常需要 manifest.json 文件、背景脚本、内容脚本和弹出页面

  2. 核心功能:将 HTML 转换为 Markdown 的算法

  3. 用户交互:如何触发转换和下载 Markdown 文件


它会从 0 开始帮我们创建一个 Chrome 插件。


最后生成的文件结构是这样的:


3.2 安装 Chrome 扩展

将这个扩展安装到 Chrome 上。



安装方式如下:


  1. 打开 Chrome 浏览器,访问 chrome://extensions/

  2. 开启右上角的"开发者模式"

  3. 点击"加载已解压的扩展程序"

  4. 选择包含上述文件的目录

3.3 使用扩展

点击这个扩展,就会弹出转换为 Markdown。如下图所示:



点击转换为 Markdown 按钮,就会下载正在查看的这篇网页,并将其转换成 markdown 格式。


如下图所示,这是下载下来的 markdown 文件。



然后预览下文章内容,格式还是不错的。


四、问题

4.1 扩展的按钮在浏览器上显示乱码。

让 CodeBuddy 帮我们修改,即可解决。


4.2 导出的 markdown 文件名中文和英文都被替换成了下划线。

让 CodeBuddy 帮我们修改。


4.3 无法生成图片

试过好几次,CodeBuddy 都无法帮我生成 48*48,不确定是不是网络原因。


解决方案,到这个网站下载免费的图片。


https://icon-icons.com/
复制代码

五、总结

通过本篇我们学习了浏览器扩展的卡发原理和流程、浏览器扩展的代码结构。然后用 CodeBuddy 帮我们写扩展,几分钟就完成了,但是中途也遇到了一些问题,CodeBuddy 都可以帮我们解决。


整体来说 CodeBuddy 在开发浏览器扩展这一块杠杠的!

发布于: 刚刚阅读数: 6
用户头像

用故事、大白话讲解Java、分布式、架构设计 2018-05-06 加入

公众号:「悟空聊架构」 【个人博客】www.passjava.cn 【开源项目】基于 SpringCloud 的一套面试刷题系统 【Github】https://github.com/Jackson0714/PassJava-Platform

评论

发布
暂无评论
自动动手制作一款Chrome扩展,一键转存文章_悟空聊架构_InfoQ写作社区