insert_block
Insert a new block at a precise position in SiYuan: before or after an existing block, or as a child of a parent block. Specify next_id, previous_id, or parent_id to control placement.
Instructions
插入块(next_id / previous_id / parent_id 至少提供一个)。
适用场景: - 需要按相邻块位置插入(前置/后置锚点)。 - 需要按父块插入(指定 parent_id)。
使用方法: - next_id: 插入到 next_id 对应块之前。 - previous_id: 插入到 previous_id 对应块之后。 - parent_id: 插入为 parent_id 的子块。 - 三者可同时提供,但思源 API 优先级为 next_id > previous_id > parent_id。
注意事项: - 如果你要"确保挂到某个标题(如 H3)下面",请显式传 parent_id, 或直接使用 append_block / prepend_block。 - 若 next_id/previous_id 与 parent_id 指向不同层级,最终位置会以 next_id/previous_id 优先,可能出现"看起来没挂到标题下"的情况。
与 prepend_block/append_block 的区别: - prepend_block/append_block 是"父块优先",强制挂到父块下(开头/末尾)。 - insert_block 是"相邻优先",依赖现有块的位置,可能产生层级歧义。
示例(假设现有结构:父块A -> 子块B -> 子块C): # 插入到 B 之后(中间插入) insert_block(data="新块", previous_id="block_b") # 结果:A -> B -> 新块 -> C
# 插入到 B 之前
insert_block(data="新块", next_id="block_b")
# 结果:A -> 新块 -> B -> C
# 作为 A 的子块插入(不推荐,可能被相邻锚点覆盖)
insert_block(data="新块", parent_id="block_a")
# 注意:若同时传了 previous_id/next_id,parent_id 会被忽略
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| next_id | No | ||
| data_type | No | markdown | |
| parent_id | No | ||
| previous_id | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |