xiufengsun/pagedissect

★ 0Forks 0TypeScriptGitHub ↗Compare

README

PageDissect 浏览器插件

一键在任意网页生成「页面结构树 + 文案表」,复制到 Notion / Confluence / 纯 Markdown。本项目为 Chrome MV3 扩展,基于 Vite + React + TypeScript + @crxjs/vite-plugin。

安装与开发

yarn install        # 安装依赖
yarn dev            # 开启开发(CRX 热重载,由 @crxjs 提供)
yarn dev:watch      # 生成 dist 并持续监听(需手动加载 dist)
yarn build          # 产出发布包(dist)

开发时:在 Chrome 打开 chrome://extensions,开启开发者模式,加载 dist 目录。yarn dev 启动后修改代码会自动刷新扩展;若使用 yarn dev:watch,需手动点击扩展卡片的「刷新」。

目录结构

src/
  manifest.ts           # MV3 配置(popup/side panel/options/background/content)
  background/           # Service worker,转发分析请求
  content/              # 注入页面的脚本 + DOM 解析器
  popup/                # 弹窗入口(默认 action)
  panel/                # Side panel 入口
  options/              # 设置页入口
  shared/               # 类型、消息封装、导出、设置存储、通用 UI
  styles/               # 全局样式

运行流程

  1. Popup/Side Panel 发送 ANALYZE_CURRENT_PAGE 消息到 background。
  2. Background 找到当前活动标签页,向 content script 发 RUN_ANALYSIS。
  3. Content script 使用纯函数 analyzeDocument() 解析 DOM,返回 PageAnalysisResult。
  4. UI 渲染结构树/文案表,可选择模板并复制 Markdown。

数据结构

  • PageBlock:包含区块类型、标题、文本、按钮列表、xpath。
  • PageAnalysisResult:meta(url/title/capturedAt)+ blocks: PageBlock[]。
  • 导出模板:notion | confluence | markdown;语言:zh | en。

设置存储

  • chrome.storage.sync 保存:导出模板、字段语言。
  • Options 页面可配置;Popup/Side Panel 读取后作为导出默认值。

构建与发布

  1. yarn build 输出 dist(包含 manifest 与各入口)。
  2. 在 Chrome 的「加载已解压的扩展程序」中选择 dist。
  3. 若需要源码分发,附带本 README 即可。

更新记录

  • 优化页签默认态的文字颜色,对比度更高,按钮文案不再发白。

Contributors

xiufengsun

Issues