# yuque-export **Repository Path**: wengxiulin/yuque-export ## Basic Information - **Project Name**: yuque-export - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-12 - **Last Updated**: 2025-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 语雀文档导出工具 这是一个Java编写的命令行工具,用于将语雀文档导出为Markdown格式,并将文档中的图片下载到本地。 ## 功能特性 - 通过 Personal Access Token进行用户认证 - 获取指定知识库中的特定文档 - 将文档内容保存为Markdown (.md) 文件 - 自动下载Markdown中的语雀图片到本地 `images` 目录 - 图片链接替换为本地相对路径 - 图片文件名使用哈希值命名,避免重复,保留原始扩展名 - 在Markdown文件头部添加元数据(标题、原始URL、创建时间) - 支持API请求失败重试机制 - 并发下载图片以提高效率 - 增量导出:已下载的图片将被跳过 ## 环境要求 - Java 8 或更高版本 - Maven (用于构建项目) ## 构建项目 1. 克隆或下载本项目。 2. 在项目根目录下打开命令行工具。 3. 执行以下Maven命令来编译项目并打包成一个可执行的jar文件: ```bash mvn clean package ``` 构建成功后,会在 `target` 目录下生成 `yuque-export-1.0-SNAPSHOT-jar-with-dependencies.jar` 文件。 ## 使用方法 在命令行中执行以下命令来运行工具: ```bash java -jar target/yuque-export-1.0-SNAPSHOT-jar-with-dependencies.jar ``` **参数说明:** - ``: 你的语雀 Personal Access Token。你可以在 [语雀Token设置页面](https://www.yuque.com/settings/tokens) 获取。 - ``: 知识库的ID。例如,如果你的知识库URL是 `https://www.yuque.com/user/blog`,那么 `repo_id` 就是 `user/blog`。 - ``: 文档的短路径 (slug)。这是文档URL的最后一部分。例如,如果文档URL是 `https://www.yuque.com/user/blog/intro`,那么 `doc_slug` 就是 `intro`。 - ``: 导出的Markdown文件和图片存放的目录。如果目录不存在,工具会自动创建。 **示例:** ```bash java -jar target/yuque-export-1.0-SNAPSHOT-jar-with-dependencies.jar ABCDEFG12345 user/notes my-first-doc ./exported_docs ``` 这将会: 1. 使用提供的Token访问语雀API。 2. 获取知识库 `user/notes` 中路径为 `my-first-doc` 的文档。 3. 在当前目录下创建 `exported_docs` 文件夹(如果不存在)。 4. 将文档内容保存为 `exported_docs/文档标题.md`。 5. 将文档中的图片下载到 `exported_docs/images/` 目录下,并在Markdown文件中更新链接。 ## 注意事项 - **API频率限制**:语雀API有调用频率限制(通常为单用户1000次/小时)。如果遇到频率限制错误,工具会尝试重试几次。如果文档包含大量图片,请注意不要过于频繁地运行。 - **图片域名**:目前工具主要处理 `.yuque.com` 域名下的图片。其他外部图床的图片链接将保持原样。 - **错误处理**:工具会尝试处理常见的API错误(如401, 403, 404)和网络问题。详细的错误信息会输出到控制台。 - **Token安全**:请妥善保管你的Personal Access Token,不要泄露给他人。 ## 依赖库 - Apache HttpClient: 用于发送HTTP请求到语雀API。 - Jackson: 用于解析API返回的JSON数据。 - Apache Commons IO: 用于文件操作和路径处理。 ## 待办与未来增强 - [ ] 支持导出整个知识库的所有文档。 - [ ] 提供更灵活的配置选项(例如通过配置文件)。 - [ ] 完善日志记录系统。 - [ ] 交互式输入参数。