文档批量下载器 (VitePress + VuePress)

创建于 1 天前
更新于 1 天前
通用 VitePress/VuePress 文档批量下载,直接抓取 .md 源码,保存到本地文件夹
#文档下载
#VitePress
#VuePress
#批量下载
总安装量
24
今日新增
+1
用户评分
- / 5.0 (0)
当前版本
0.2.0
脚本详情
适用网站
用于从 VitePress/VuePress 文档站点批量下载 Markdown 源文件的用户脚本

核心功能

功能 说明
站点检测 自动识别 VitePress / VuePress 静态文档站点
页面提取 从侧边栏 (.VPSidebar / .vp-sidebar) 递归提取所有文档链接
智能标题 从 Markdown 的 # 标题 或 frontmatter 的 title 字段提取
.md 源文件抓取 通过 iframe 同源代理直接获取原始 Markdown 文件
文件夹结构保留 按侧边栏层级创建子文件夹,保持文档组织结构
批量下载 使用 GM_download API 逐个保存文件
进度显示 实时显示下载进度、成功/失败数量、耗时统计

技术特点

特点 实现方式
绕过 CSP iframe 同源代理,无需 GM_xmlhttpRequest 权限
请求限流 150ms 间隔 + 重试机制(3次重试,1秒间隔)
文件命名 自动处理非法字符,同一文件夹下文件名冲突自动添加序号
错误隔离 单个文档失败不影响其他文档下载
SPA 支持 MutationObserver + popstate 监听路由变化,自动重新检测
非侵入式 仅在检测到 VitePress/VuePress 时显示按钮

工作流程

1. 页面加载 → 检测站点类型
2. 解析侧边栏 → 提取所有文档 URL 和层级结构
3. 显示下载按钮(右下角,显示文档数量)
4. 点击按钮 → 创建文件夹 → 逐个下载 .md 文件
5. 实时显示进度 → 完成后显示统计信息

依赖要求

依赖 用途
GM_download 文件保存(脚本猫/Tampermonkey 提供)
无外部库 原生 JavaScript 实现

输出结果

{站点名}_docs/
├── .keep
├── 文件夹1/
│   ├── 文档1.md
│   └── 文档2.md
└── 文件夹2/
    └── 文档3.md

适用站点

  • ✅ VitePress 文档站点
  • ✅ VuePress (Theme Hope) 文档站点
  • ❌ 非静态文档站点(不显示按钮)

当前限制

  1. 仅支持侧边栏结构标准的站点
  2. 需要 .md 源文件可直接访问(有些站点会重定向或需要认证)
  3. 依赖用户脚本管理器的 GM_download API