Markdown 解析子技能
职责
将 Markdown 文件解析为飞书文档块格式,输出 JSON 文件。
输入
- Markdown 文件路径(命令行参数或配置文件)
输出
output/blocks.json- 解析后的块数据output/metadata.json- 解析元数据(块数量、表格数量等)
工作流程
第一步:读取 Markdown 文件
从指定路径读取 Markdown 文件内容。
第二步:解析 Markdown 内容
- 解析标题(# - ######)
- 解析列表(无序、有序)
- 解析表格
- 解析代码块
- 解析引用块
- 解析粗体/斜体
- 解析分割线
- 解析图片 ⭐ 新增功能 ⭐
第三步:清理内容
- 移除零宽字符(
\u200b,\u200c,\u200d,\ufeff) - 清理表格单元格内容
- 清理粗体标记
第四步:输出 JSON 文件
将解析结果保存到 output/blocks.json。
数据格式
blocks.json 格式
{
"blocks": [
{
"block_type": 2,
"text": {
"elements": [{"text_run": {"content": "文本内容"}}],
"style": {}
}
},
{
"block_type": 27,
"image": {
"token": "D:/path/to/image.png",
"width": 0,
"height": 0
},
"local_path": "D:\\00-work_study\\path\\to\\image.png"
}
}
],
"metadata": {
"total_blocks": 50,
"heading_count": 10,
"table_count": 5,
"list_count": 3,
"code_count": 0,
"callout_count": 0,
"image_count": 1
}
}
使用方式
命令行
python scripts/md_parser.py input.md output/blocks.json
作为子技能被调用
result = call_skill("feishu-md-parser", {
"input_file": "path/to/markdown.md",
"output_dir": "workflow/step1_parse"
})
# 返回: {"blocks_file": "workflow/step1_parse/blocks.json"}
图片上传支持说明
Markdown 图片语法支持
支持两种图片格式:
本地图片路径(将上传到飞书):
网络图片 URL(仅显示链接,不上传):

解析实现细节
- 检测
语法 - 提取
local_path字段:D:\\00-work_study\\AIsthdy\\test-claude\\test_upload.png - 如果是本地路径且文件存在,则保存到
local_path字段 - 支持的图片格式:
.png,.jpg,.jpeg,.gif
块类型参考
| block_type | 名称 | 说明 |
|---|---|---|
| 2 | text | ✅ |
| 3-8 | heading1-6 | ✅ |
| 12 | bullet | ✅ |
| 13 | ordered | ✅ |
| 14 | code | ✅ |
| 15 | quote | ✅ |
| 17 | todo | ✅ |
| 19 | callout | ✅ 高亮块 |
| 22 | divider | ✅ |
| 27 | image | ✅ |
| 31 | table | ✅ 表格(特殊处理) |
图片上传流程(由 feishu-block-adder 实现)
图片块创建 → 上传文件 → 设置 token,三步自动完成