yuque-exporter:3步实现语雀文档数据迁移与Markdown导出
一、工具概述
yuque-exporter是一款开源的语雀文档批量导出工具,专为需要将语雀知识库迁移到本地的用户设计。该工具能够将语雀文档完整转换为Markdown格式,并保持原有的目录结构,同时自动处理图片链接转换、内部链接调整和HTML标签清理等关键问题。适用于个人知识库迁移、团队文档备份以及多平台内容发布等场景,帮助用户实现知识资产的自主管理与跨平台流动。
二、准备工作
🔧 环境配置
在使用yuque-exporter前,需确保系统已安装以下依赖环境:
| 依赖项 | 版本要求 | 检查命令 |
|---|---|---|
| Node.js | v14.0.0+ | node -v |
| npm | v6.0.0+ | npm -v |
| Git | 任意版本 | git --version |
若未安装上述工具,请先通过官方渠道获取并安装。
🔑 获取API令牌
- 登录语雀账号,进入个人设置 → API令牌页面
- 点击"创建令牌",设置令牌名称和权限范围
- 生成后立即复制并保存令牌(关闭页面后无法再次查看)
📦 安装工具
通过以下命令获取并安装yuque-exporter:
# 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/yuqu/yuque-exporter
# 进入项目目录
cd yuque-exporter
# 安装依赖包
npm install
三、核心功能
📥 基础导出功能
功能描述:通过命令行快速导出语雀文档,支持全量或增量导出
操作命令:
# 使用环境变量方式(推荐)
YUQUE_TOKEN=<您的令牌> npm start
# 或使用命令行参数方式
npx yuque-exporter --token=<您的令牌>
效果说明:
- 导出文件默认存放在项目根目录的
output文件夹 - 文档按原知识库结构自动创建目录层级
- 已导出文件会被标记,再次运行时自动跳过
📷 媒体资源处理
功能描述:自动下载文档中的图片资源并转换为本地引用
效果说明:
- 图片自动保存至
output/assets目录 - Markdown中的图片链接自动替换为相对路径
- 支持常见图片格式(jpg、png、gif等)
🔗 链接转换
功能描述:将语雀内部链接转换为本地相对路径
效果说明:
- 文档间引用自动调整为Markdown相对路径格式
- 锚点链接保持原功能不变
- 外部链接保持原始URL
四、高级应用
⚙️ 配置自定义
功能描述:通过修改配置文件调整导出行为
配置文件路径:src/config.ts
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| outputDir | string | './output' | 导出文件存放目录 |
| concurrency | number | 5 | 并发请求数量 |
| timeout | number | 30000 | 请求超时时间(毫秒) |
| retry | number | 3 | 请求失败重试次数 |
🤖 自动化脚本示例
功能描述:通过脚本实现定期自动备份
创建auto-export.sh文件:
#!/bin/bash
# 语雀文档自动导出脚本
# 配置参数
TOKEN="your_api_token_here"
EXPORT_PATH="/path/to/backup/directory"
LOG_FILE="$EXPORT_PATH/export.log"
# 创建目录
mkdir -p $EXPORT_PATH
# 执行导出
cd /path/to/yuque-exporter
YUQUE_TOKEN=$TOKEN OUTPUT_DIR=$EXPORT_PATH npm start >> $LOG_FILE 2>&1
# 保留最近30天备份
find $EXPORT_PATH -type f -mtime +30 -delete
添加执行权限并设置定时任务:
# 添加执行权限
chmod +x auto-export.sh
# 设置每日凌晨执行
crontab -e
# 添加以下行
0 0 * * * /path/to/auto-export.sh
五、对比同类工具
| 特性 | yuque-exporter | 语雀官方导出 | 其他第三方工具 |
|---|---|---|---|
| 批量导出 | ✅ 支持 | ❌ 不支持 | 部分支持 |
| 目录结构保留 | ✅ 完整保留 | ❌ 不支持 | 基本支持 |
| 图片本地化 | ✅ 自动下载 | ❌ 仅链接 | 部分支持 |
| 增量导出 | ✅ 支持 | ❌ 不支持 | 大多不支持 |
| API令牌认证 | ✅ 支持 | ❌ 需手动操作 | 部分支持 |
| 开源免费 | ✅ 完全开源 | ✅ 免费但功能有限 | 部分收费 |
六、常见问题
❓ 导出过程中断如何处理?
解决方案:直接重新执行导出命令,工具会自动跳过已完成的文件,继续未完成的任务。
❓ 遇到API调用限制怎么办?
解决方案:语雀API限制为5000次/小时,可通过修改src/config.ts中的concurrency参数降低并发数,或等待一小时后再试。
❓ 中文显示乱码如何解决?
解决方案:确保系统环境编码为UTF-8,可在终端执行以下命令:
export LANG=en_US.UTF-8
七、扩展开发指南
🛠️ 核心模块说明
yuque-exporter采用模块化设计,主要功能模块包括:
- 文档爬取:
src/lib/crawler.ts- 负责从语雀API获取文档数据 - 内容处理:
src/lib/doc.ts- 处理文档内容转换与清洗 - 目录构建:
src/lib/tree.ts- 生成本地目录结构 - 工具函数:
src/lib/utils.ts- 提供通用辅助功能
🚀 功能扩展建议
- 多账号支持:修改
src/lib/sdk.ts中的SDK类,添加多账号管理逻辑 - 自定义格式转换:扩展
src/lib/builder.ts,添加新的输出格式支持 - UI界面:基于现有核心功能,使用Electron或React构建图形界面
🤝 贡献代码
- Fork项目仓库
- 创建特性分支:
git checkout -b feature/amazing-feature - 提交修改:
git commit -m 'Add some amazing feature' - 推送到分支:
git push origin feature/amazing-feature - 提交Pull Request
八、总结
yuque-exporter提供了一种可靠、高效的语雀文档迁移解决方案,通过简单的命令即可实现知识库的完整导出。其模块化设计不仅保证了工具的稳定性和可维护性,也为用户提供了扩展定制的可能性。无论是个人用户还是团队,都能通过该工具实现知识资产的自主管理,摆脱平台限制,实现数据的自由流动。
通过本文介绍的方法,您可以快速掌握工具的使用技巧,并根据实际需求进行定制化配置。如有任何问题或建议,欢迎参与项目贡献或提交issue反馈。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0382
openPangu-2.0-Flash昇腾原生的openPangu-2.0-Flash语言模型Python00
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0268
LongCat-2.0LongCat-2.0,这是一款大规模混合专家(MoE)语言模型,总参数量达1.6万亿,每token激活参数量约480亿。LongCat-2.0深度集成Claude Code、OpenClaw、Hermes等主流评测框架,在代码理解、仓库级编辑、自动化任务执行及智能体工作流等场景均表现优异——为开发者提供更稳定高效的协作体验。00