本项目旨在配合vannvan/yuque-tools: 🧰 玩转语雀-朴实无华的语雀工具集合,语雀知识库+团队资源批量导出/备份工具(无需Token)|浏览器插件助手 (github.com)项目实现语雀知识库批量导出到本地。
yeque-tools这个工具很好用,我们从官方仓库下载release包解压后,可以看到ytool.exe文件(这里我使用windows电脑),我们只需要使用./ytool.exe pull 命令进入交互模式,按照提示输入我们的语雀用户名和密码,就可以看到我们名下的知识库,选择要导出的知识库,就可以导出到本地markdown文档。
但是此时,导出的markdown文档中,所有图片或者附件,甚至mermaid图和latex公式(都是导出为svg图片),都是在线模式的,就是图片或者附件仍放在语雀的在线服务器上,并没有完全本地化。
我从我的知识库中,找到了以下几类典型的link模式:

[【周报】多空博弈?国家队救市?【20240121】音频(阿乐).mp3](https://www.yuque.com/attachments/yuque/0/2024/mp3/793259/1705814652947-91d1dd42-3cd8-46d4-9c12-ab47481f4912.mp3)
[20240330-【周报】盘整仍在继续,重量级产品预发布【20240331】.pptx](https://www.yuque.com/attachments/yuque/0/2024/pptx/793259/1711871660204-f5250585-c460-43b6-8a9e-f1b7d0fccf00.pptx)

[20240330-【周报】盘整仍在继续,重量级产品预发布【20240331】.pptx](https://www.yuque.com/attachments/yuque/0/2024/pptx/793259/1711871660204-f5250585-c460-43b6-8a9e-f1b7d0fccf00.pptx)



因此,我们还需要把这些图片和附件都下载到本地才行。
这个项目就是解决这个问题的。
- 遍历当前目录,处理所有.md文件。
- 对于每一个.md文件:
- 读取文件内容到内存。
- 查找所有语雀的图片链接,下载图片,替换链接。
- 查找所有语雀的附件链接,下载附件,替换链接。
- 将处理好的文件内容重新写入到文件。
将download_yuque_images_and_files.py 文件复制到下载好的知识库根目录,命令行下运行:
python download_yuque_images_and_files.py如果缺少依赖,自己打开源码,看看依赖,自行安装。
如果报错,大家可以根据程序执行输出,看到是哪一个文件的哪一个图片导出出错,十有八九是相关URL没有被正确识别。这里我故意没有做错误的忽略处理,而是让它中断,就是为了方便提示哪里有问题。
大家可以自己修改源码解决。
修改好源代码后,重新运行即可,程序不会重复下载已经下载过的图片或附件,很快就会重新回到出错的位置继续下载。