将语雀导出的 .lakebook 文件转换为有组织的文件夹,保留原始文档目录树结构。
核心特性:
本工具基于 PZh101/YuqueExportToMarkdown 项目,在其基础上扩展修复了多项问题,增加了更多格式支持。
依赖(自动安装):
beautifulsoup4 — HTML/ASL 解析PyYAML — 元数据解析Requests — 图片/附件下载openpyxl — Excel 文件生成语雀格式类型说明输出lakeDoc富文本文档Markdown (.md)laketableTable数据库式表格Markdown + Excel (.xlsx)lakesheetSheet电子表格(zlib 压缩)Markdown 表格
卡片输出备注codeblock带语言标注的代码块image下载图片, ![]() 语法自动下载并记录状态hr``--- 分割线label标签文本mathLaTeX 公式 + 图片file文件附件链接bookmarkInline``> **[标题](URL)** — 来源``bookmarklink``[标题](URL)``localdoc附件下载 + 链接自动下载,记录成功/失败状态lockedtext占位符: [加密内容 - ...]``yuque跨文档链接
每次转换会自动生成 转换报告.md,包含:
bash
cd scripts
python startup.py -l /path/to/your.lakebook -o /path/to/output_folder
bash
# 禁用图片下载(更快)
python startup.py -l your.lakebook -o output -d False
# 跳过已下载的资源
python startup.py -l your.lakebook -o output --skip-existing-resources
# 直接使用已解压的 meta.json(高级用法)
python startup.py -i /path/to/extracted/\$meta.json -o output
python
import sys
sys.path.insert(0, "/path/to/lakebook-to-md/scripts")
from lake.lake_setup import start_convert
start_convert(
meta=None,
lake_book="/path/to/your.lakebook",
output="/path/to/output",
download_image_of_in=True,
skip_existing=False
)
text
output_folder/
├── 转换报告.md # 转换统计报告
├── 笔记本名称/
│ ├── 文档1.md
│ ├── 文档1.xlsx # laketable 同时生成 Excel
│ ├── 文档1.assert/ # 图片/附件目录
│ │ ├── image1.png
│ │ └── attachment.pdf
│ └── 子目录/
│ └── 文档2.md
/(如 2022/11/21 会议记录),会被替换为 _ 以避免路径嵌套问题os.path.join 和 os.path.sep 进行标准化lakesheet 格式使用 zlib 压缩存储在 body_draft 字段中sheet 字段编码为 latin-1 字符串,需要 encode('latin-1') → zlib.decompress() → JSON 解析lakesheet 中 {'class': 'formula', 'value': ...} 类型的单元格使用计算后的 value 渲染,而非原始 JSONlockedtext 卡片使用 AES-256-GCM 客户端加密,密钥 不在 lakebook 导出中localdoc 卡片包含 OSS 签名下载链接,可能过期.assert 目录lockedtext 内容无法解密(密钥不在导出中)lakesheet 合并表头在 Markdown 中会拆分显示(Markdown 不支持单元格合并)