[teamai] Push 1 resource(s) from root

This commit is contained in:
2026-09-10 16:51:20 +08:00
parent f3388c50e2
commit 766efe4076
15 changed files with 1284 additions and 0 deletions
+121
View File
@@ -0,0 +1,121 @@
---
name: "feishu-wiki-tools"
description: "读写飞书知识库:增删查改节点、写入页面、创建早报、记录踩坑,基于 tenant_access_token。"
metadata:
author: xf
version: "1.0.0"
---
# Feishu Wiki Tools
飞书知识库读写操作。所有脚本使用 `tenant_access_token`,从 `~/.openclaw/openclaw.json` 读取凭证。
## 前置条件
- 飞书应用已开通 `wiki:wiki docx:document` 权限
- 机器人已加入目标知识库并获 `full_access`(参考 `references/auth.md`)
- 服务器可访问飞书 API
## 环境变量
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `FEISHU_SPACE_ID` | `7664817589230570761` | 知识库 Space ID |
| `FEISHU_ROOT_NODE` | `LY5wwNWpniOoFwkHHG4cmDvGnSh` | 首页 node token |
| `FEISHU_DIGEST_PARENT` | `BH8AwLgJhipBcUkehCAcyKvDngE` | 早报父节点 |
| `FEISHU_SUMMARY_PARENT` | `XunCwlk7JiSTuAkvoKlcq54pnPb` | 每日总结父节点 |
## 通用脚本(CRUD)
### 初始化 Token
```bash
source scripts/init_token.sh
```
设置 `BEARER_TOKEN` 环境变量。其他脚本会自动调用。
### 列节点
```bash
python3 scripts/wiki_list.py [parent_node_token]
```
不传 parent 则列根目录。
### 创建节点
```bash
python3 scripts/wiki_create.py --title "标题" --parent "PARENT_TOKEN" [--obj-type docx]
```
### 读取页面
```bash
python3 scripts/wiki_read.py --node "NODE_TOKEN"
```
输出纯文本内容到 stdout。
### 写入页面
```bash
python3 scripts/wiki_write.py --node "NODE_TOKEN" --file content.md
```
支持 Markdown 转换。
> ✅ **表格支持**:`md_to_blocks.py` **完整支持 Markdown 表格语法**(`| ... |`),会转换为飞书原生表格 block(31)+ 单元格 block(32),由 `wiki_write.py` 自动走 descendant API 创建。直接写表格即可,无需改用列表。
> (2026-08-11 更正:旧版文档误写「不支持表格」,已核实源码 `parse_table()` 完整实现表头/分隔线/行列构建,特此修正。)
### 删除页面
```bash
python3 scripts/wiki_delete.py --node "NODE_TOKEN"
```
移到回收站(需 `space:document:delete` 权限)。
## 特化脚本
### 创建早报
```bash
python3 scripts/create_digest.py --title "07.21 周二 早报" --content content.md
```
自动挂到 `FEISHU_DIGEST_PARENT` 按周分组下。
### 创建方案(方案库)
```bash
python3 scripts/create_plan.py --title "方案标题" --content plan.md
```
自动挂到「📋 方案库」节点(`LjXOwVZkriKmQwkjoixcnrSbnhd`);同名节点已存在则跳过不重复创建。
### 记录踩坑
```bash
python3 scripts/create_pitfall.py --title "标题" --file content.md
```
自动挂到 `踩坑记录合集` 节点下。
### 创建每日总结
```bash
python3 scripts/create_summary.py --title "07.21 周二 总结" --content summary.md
```
自动挂到 `FEISHU_SUMMARY_PARENT`(🌙 每日总结)下。内容精简,仅含当日「晚星今日动态」。
## Block 类型速查
- 3=heading1, 4=heading2, 5=heading3
- 2=text, 12=bullet, 22=divider, 14=code
- 写入时支持 Markdown → Block 转换(`scripts/md_to_blocks.py`)
## 早报模板渲染注意事项(踩坑)
`project/morning-digest-skill/templates/digest.md` 由 `scripts/build.py` 用 Jinja2 渲染,环境为 `trim_blocks=True, lstrip_blocks=True`(见 build.py)。因此:
- **别用 `{% if %}`/`{% endif %}` 块做行内条件**(如 `{% if item.summary %}:{{ item.summary }}{% endif %}`):trim_blocks 会把该行末尾的换行一起吃掉,导致下一条目粘连到同一行。
- **改用内联表达式**:`{{ ':' ~ item.summary if item.summary else '' }}`,换行保留、每条独立成行。渲染后务必核对是否有条目挤在一行。
## 参考
- `references/auth.md` — 鉴权配置完整流程
- `references/block_types.md` — Docx Block API 参考
- `references/api_endpoints.md` — Feishu API 端点速查