向飞书文档写入内容,支持 Mermaid/PlantUML 图表自动转画板。支持添加画板、Callout、批量更新块等高级操作。当用户请求创建、写入、更新飞书文档时使用。推荐使用 Mermaid 画图。
Install
npx skillscat add riba2534/feishu-cli/feishu-cli-write Install via the SkillsCat registry.
We need to produce a 2-3 sentence plain-text summary in English, objective, factual, no marketing language, no superlatives, no calls to action. Must be at most 60 words. No quotes, no markdown, no bullet points, no headings. Just plain text. Summarize: skill writes content to Feishu docs, supports Mermaid/PlantUML auto conversion to boards, supports adding boards, callouts, batch updates. Used when user requests creating, writing, updating Feishu docs. Recommended to use Mermaid for diagrams. We need 2-3 sentences, objective. Let's craft ~45 words.
飞书文档写入技能
创建或更新飞书云文档,通过 Markdown 作为中间格式。支持 Mermaid/PlantUML 图表自动转飞书画板。
核心概念
Markdown 作为中间态:本地文档与飞书云文档之间通过 Markdown 格式进行转换,中间文件存储在 /tmp 目录中。
使用方法
# 创建新文档
/feishu-write "文档标题"
# 更新已有文档
/feishu-write <document_id>执行流程
创建新文档
收集内容
- 与用户确认文档标题
- 收集用户提供的内容或根据对话生成内容
生成 Markdown
- 在
/tmp/feishu_write_<timestamp>.md创建 Markdown 文件 - 使用标准 Markdown 语法
- 在
导入到飞书
feishu-cli doc import /tmp/feishu_write_<timestamp>.md --title "文档标题"添加权限(可选,给指定用户添加 full_access)
feishu-cli perm add <document_id> --doc-type docx --member-type email --member-id user@example.com --perm full_access通知用户
- 提供文档链接
- 发送飞书消息通知
更新已有文档
先读取现有内容
feishu-cli doc export <document_id> --output /tmp/feishu_existing.md修改内容
- 根据用户需求修改 Markdown 文件
重新导入
feishu-cli doc import /tmp/feishu_updated.md --document-id <document_id>
支持的 Markdown 语法
| 语法 | 飞书块类型 | 说明 |
|---|---|---|
# 标题 |
Heading1-6 | |
普通文本 |
Text | |
- 列表项 |
Bullet | 支持缩进嵌套 |
1. 有序项 |
Ordered | 支持缩进嵌套 |
- [ ] 任务 |
Todo | |
```code``` |
Code | |
```mermaid``` |
Board(画板) | 推荐使用 |
```plantuml``` / ```puml``` |
Board(画板) | PlantUML 图表 |
> 引用 |
QuoteContainer | 支持嵌套引用 |
> [!NOTE] 等 |
Callout(高亮块) | 6 种类型 |
--- |
Divider | |
**粗体** |
粗体样式 | |
*斜体* |
斜体样式 | |
~~删除线~~ |
删除线样式 | |
<u>下划线</u> |
下划线样式 | |
`行内代码` |
行内代码样式 | |
$公式$ |
行内公式 | 支持一段多个公式 |
$$公式$$ |
块级公式 | 独立公式行 |
[链接](url) |
链接 | |
| ` | 表格 | ` |
推荐:使用 Mermaid / PlantUML 画图
在文档中画图时,推荐使用 Mermaid(也支持 PlantUML),会自动转换为飞书画板:
```mermaid
flowchart TD
A[开始] --> B{判断}
B -->|是| C[处理]
B -->|否| D[结束]
``````plantuml
@startuml
Alice -> Bob: Hello
Bob --> Alice: Hi
@enduml
```支持的 Mermaid 图表类型:
- ✅ flowchart(流程图,支持 subgraph)
- ✅ sequenceDiagram(时序图)
- ✅ classDiagram(类图)
- ✅ stateDiagram-v2(状态图)
- ✅ erDiagram(ER 图)
- ✅ gantt(甘特图)
- ✅ pie(饼图)
- ✅ mindmap(思维导图)
Mermaid 注意事项:
- 避免在节点标签中使用
{}花括号(如{version}),会触发解析错误 - 禁止使用
par...and...end,飞书解析器完全不支持,改用Note over X: 并行执行... - sequenceDiagram 渲染复杂度组合超限:10+ participant + 2+ alt 块 + 30+ 长消息标签会触发服务端 500
- 安全阈值:participant ≤8、alt ≤1、消息标签尽量简短
- 导入失败的图表会自动降级为代码块展示
Callout 高亮块
在文档中使用 Callout 语法创建飞书高亮块:
> [!NOTE]
> 提示信息。
> [!WARNING]
> 警告信息。
> [!TIP]
> 技巧提示。
> [!CAUTION]
> 警示信息。
> [!IMPORTANT]
> 重要信息。
> [!SUCCESS]
> 成功信息。Callout 内支持多行文本和子块(列表等)。
公式
行内公式:圆面积 $S = \pi r^2$,周长 $C = 2\pi r$。
块级公式:
$$\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}$$高级操作
添加画板
向文档添加空白画板:
# 在文档末尾添加画板
feishu-cli doc add-board <document_id>
# 在指定位置添加画板
feishu-cli doc add-board <document_id> --parent-id <block_id> --index 0添加 Callout
向文档添加高亮块:
# 添加信息类型 Callout
feishu-cli doc add-callout <document_id> "提示内容" --callout-type info
# 添加警告类型 Callout
feishu-cli doc add-callout <document_id> "警告内容" --callout-type warning
# 指定位置添加
feishu-cli doc add-callout <document_id> "内容" --callout-type tip --parent-id <block_id> --index 0Callout 类型:info (信息/蓝色), warning (警告/红色), error (错误/橙色), success (成功/绿色)
批量更新块
批量更新文档中的块内容:
# 从 JSON 文件批量更新
feishu-cli doc batch-update <document_id> --source-type content --file updates.jsonJSON 格式示例:
[
{
"block_id": "block_xxx",
"block_type": 2,
"content": "更新后的文本内容"
}
]输出格式
创建/更新完成后报告:
- 文档 ID
- 文档 URL:
https://feishu.cn/docx/<document_id> - 操作状态
示例
# 创建新的会议纪要
/feishu-write "2024-01-21 周会纪要"
# 更新现有文档
/feishu-write <document_id>