文件预览

content-reorganize.md

查看 腾讯乐享知识库 Lexiang Knowledge Base 技能包中的文件内容。

文件内容

references/content-reorganize.md

# 场景:内容重组

使用 MoveBlocks 调整文档结构,将块移动到新位置。

## 移动块 API

```
MCP Tool: lexiang.block_move_blocks
Arguments: {
  "entry_id": "<entry_id>",
  "block_ids": ["block_1", "block_2", "block_3"],
  "parent_block_id": "<目标父块 ID>",
  "after": "<插入位置,某块之后,可选>"
}
```

**限制**: 单次最多移动 20 个块

---

## 参数说明

| 参数 | 说明 |
|------|------|
| `entry_id` | 文档 entry_id |
| `block_ids` | 要移动的块 ID 数组,按顺序移动 |
| `parent_block_id` | 目标父节点块 ID |
| `after` | 插入到此块之后,为空则插入到开头 |

---

## 使用场景

### 将分散内容整合到同一章节

```
MCP Tool: lexiang.block_move_blocks
Arguments: {
  "entry_id": "doc123",
  "block_ids": ["para_1", "para_2", "list_1"],
  "parent_block_id": "section_h2",
  "after": "intro_callout"
}
```

### 调整段落顺序

```
MCP Tool: lexiang.block_move_blocks
Arguments: {
  "entry_id": "doc123",
  "block_ids": ["para_3"],
  "parent_block_id": "root_block",
  "after": "para_1"
}
```

---

## 使用辅助工具

```typescript
import { ContentReorganizer } from './scripts/block-helper';

const reorganizer = new ContentReorganizer()
  .move(['para_1', 'para_2'], 'section_h2', 'intro_callout')
  .move(['list_1', 'list_2'], 'section_h2');

const mcpCalls = reorganizer.toMCPCalls(entryId);
// 返回多个 MCP 调用
```

---

## 注意事项

1. **所有块只能移动到同一个目标父节点**
2. **目标父节点不能是叶子节点类型**,包括:
   - h1, h2, h3, h4, h5(标题块)
   - code(代码块)
   - image(图片块)
   - attachment(附件块)
   - video(视频块)
   - divider(分割线)
   - mermaid、plantuml(图表块)
3. 移动操作会保持块的子孙结构
4. 建议移动前先获取文档结构确认 block_id

---

## 获取文档结构

```
MCP Tool: lexiang.block_list_block_children
Arguments: {
  "entry_id": "<entry_id>",
  "with_descendants": true
}
```

返回完整的块树结构,包含所有 block_id。