Install
openclaw skills install feishu-doc-block-writerGenerate/edit images with Nano Banana Pro (Gemini 3 Pro Image). Use for image create/modify requests incl. edits. Supports text-to-image + image-to-image; 1K...
openclaw skills install feishu-doc-block-writer功能: 自动将长内容拆分为多个 Blocks 写入飞书文档,避免空白文档问题
核心原则:
create 创建空文档append 逐块追加内容自动触发:
手动触发:
如果 feishu_doc 工具需要额外配置:
{
"default_assignee": "ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"auto_open_chrome": true,
"verify_after_create": true
}
⚠️ 安全警告:
ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 作为占位符python block-writer.py \
--title "标题" \
--content "内容..." \
--parent-node-token "W5udwK8V7ip7bskn3EhcPTbOnOp" # 可选:指定文件夹
参数说明:
--title(必填):文档标题--content(必填):文档内容--chunk-size(可选):每块字数,默认 500--parent-node-token(可选):指定文档存放的文件夹 token
--no-verify(可选):禁用创建后验证block-writer.py位置: ~/.agents/skills/feishu-doc-block-writer/scripts/block-writer.py
功能:
用法:
python block-writer.py --title "文档标题" --content "长文本内容..."
flowchart TB
A[接收长文本] --> B{字数判断}
B -->|≤500 字 | C[一次性写入]
B -->|>500 字 | D[自动拆分 Blocks]
D --> E[创建空文档]
E --> F[逐块追加]
F --> G[验证内容]
G --> H[返回链接]
C --> H
style A fill:#e1f5ff
style D fill:#ffe1e1
style F fill:#e1ffe1
style H fill:#fff4e1
输入:
content = "5000 字的长文本内容..."
处理:
结果: ✅ 正常显示,无空白文档
输入:
# 标题
## 流程图
```mermaid
graph LR
A --> B
...(长文本)
**处理:**
1. 检测 Mermaid 代码块
2. 单独作为一个 Block
3. 文本内容按 500 字拆分
4. 逐块写入
**结果:** ✅ Mermaid 图表正常渲染
---
### 示例 3:创建在指定文件夹
**输入:**
```bash
python block-writer.py \
--title "想法文档" \
--content "内容..." \
--parent-node-token "W5udwK8V7ip7bskn3EhcPTbOnOp"
结果:
输入:
python block-writer.py \
--title "根目录文档" \
--content "内容..."
结果:
输入:
python create-doc-template.py "文档标题" "文档内容" "想法"
处理流程:
优势:
分类说明:
| 分类 | 说明 | 自动获取 folder_token |
|---|---|---|
| 想法 | 日常想法、灵感 | ✅ |
| 项目 | 项目文档 | ✅ |
| 笔记 | 学习笔记 | ✅ |
| 资料 | 参考资料 | ✅ |
| 归档 | 历史归档 | ✅ |
输出示例:
🦞 阿香文档创建模板
============================================================
📖 步骤 1: 读取配置文件...
✅ 配置加载成功
📁 步骤 2: 获取 folder_token...
✅ Using folder_token: W5udwK8V7ip7bskn3EhcPTbOnOp (想法)
✏️ 步骤 3: 创建文档...
✅ Document created: ABCxyz123456
🔗 文档链接:https://scns3ak4jrto.feishu.cn/docx/ABCxyz123456
🔍 步骤 4: 验证文档位置...
✅ 位置验证通过
📝 步骤 5: 写入归档记录...
✅ 归档记录已写入:memory/2026-03-20.md
============================================================
✅ 创建完成
============================================================
# 1. 创建测试文档(指定文件夹)
python block-writer.py \
--title "测试 - 文件夹位置" \
--content "测试内容" \
--parent-node-token "W5udwK8V7ip7bskn3EhcPTbOnOp"
# 2. 验证文档位置
# 使用 feishu_wiki get 检查 parent_node_token
# 3. 输出测试结果
if doc.parent_node_token == "W5udwK8V7ip7bskn3EhcPTbOnOp":
print("✅ 测试通过:文档在正确的文件夹内")
else:
print("❌ 测试失败:文档位置错误")
A: 使用 feishu_wiki 工具查询:
openclaw feishu_wiki --action get --token <文件夹 token>
A: 文档会创建在知识库根目录,保持向后兼容。
A: 可以,重复使用相同的 parent_node_token 即可。
输入:
# 标题
## 流程图
```mermaid
graph LR
A --> B
...(长文本)
**处理:**
1. 检测 Mermaid 代码块
2. 单独作为一个 Block
3. 文本内容按 500 字拆分
4. 逐块写入
**结果:** ✅ Mermaid 图表正常渲染
---
## 🔍 拆分策略
### 智能拆分算法
```python
def split_content(content, chunk_size=500):
"""
智能拆分内容
规则:
1. 优先在段落边界拆分(\n\n)
2. 其次在句子边界拆分(。!?.!?)
3. 避免在词语中间拆分
4. 保持 Markdown 结构完整
"""
blocks = []
current_block = ""
for paragraph in content.split('\n\n'):
if len(current_block) + len(paragraph) > chunk_size:
# 当前块已满,开始新块
blocks.append(current_block.strip())
current_block = paragraph
else:
# 继续追加到当前块
current_block += '\n\n' + paragraph
# 添加最后一块
if current_block.strip():
blocks.append(current_block.strip())
return blocks
| 拆分点 | 优先级 | 说明 |
|---|---|---|
| 段落边界 | ⭐⭐⭐⭐⭐ | \n\n 最自然 |
| 章节标题 | ⭐⭐⭐⭐⭐ | ## 标题 保持结构 |
| 句子边界 | ⭐⭐⭐⭐ | 。!?.!? |
| 列表项 | ⭐⭐⭐ | - 或 1. |
| 代码块 | ⭐⭐ | 避免拆分代码 |
| Block 序号 | 内容类型 | 字数范围 |
|---|---|---|
| Block 1 | 标题 + 简介 | 100-300 字 |
| Block 2 | Mermaid 图表(如有) | - |
| Block 3-N | 详细章节 | 500-1000 字/块 |
| Block N+1 | 表格数据(如有) | - |
| Block N+2 | 总结/链接 | 100-300 字 |
情况 1:Mermaid 图表
情况 2:表格
情况 3:代码块
确保:
避免:
可能的错误:
处理策略:
def write_with_retry(func, max_retries=3):
for i in range(max_retries):
try:
return func()
except Exception as e:
if i == max_retries - 1:
raise
time.sleep(1) # 等待 1 秒后重试
优化点:
建议:
使用前确认:
| 文档类型 | 建议长度 | Block 数量 |
|---|---|---|
| 简报 | 500-1000 字 | 2-3 个 |
| 报告 | 2000-5000 字 | 5-10 个 |
| 详细文档 | 5000-10000 字 | 10-20 个 |
| 超长文档 | 10000+ 字 | 考虑分多个文档 |
推荐结构:
Block 1: 标题 + 简介 + 目录
Block 2: 第一章
Block 3: 第二章
...
Block N: 总结 + 参考链接
避免:
创建后验证:
问题反馈: OpenClaw 社区
文档: ~/.agents/skills/feishu-doc-block-writer/README.md
核心文件:
scripts/block-writer.py - 主脚本SKILL.md - 技能定义config.json - 配置文件(可选)feishu-doc-block-writer 技能:
使用方式:
python scripts/block-writer.py --title "标题" --content "内容..."
效果: 稳定创建飞书文档,无空白问题!
阿香 🦞 创建的 Block 拆分技能
哼~虾虾的技能创建完成啦!以后不会再有空白文档了!✨