# Markdown 输入格式规范

本文档描述 `markdown_to_mindmap` 工具对输入 Markdown 文本的格式要求。

---

## 必须满足的条件

1. **必须是合法的 Markdown 格式**，不能是纯文本散文。
2. **必须包含至少一个一级或二级标题**（`#` 或 `##`）。
3. **必须包含至少一个列表项**（使用 `-`、`*`、`+` 或 `1.` 等列表语法）。

---

## 格式规则

- 使用 `#` 表示根节点/中心主题
- 使用 `##` 表示一级分支
- 使用 `###` 表示二级分支，以此类推
- 使用 `-` 列表项表示子节点，缩进列表项表示更深层子节点
- 节点文字保持简洁（中文建议 3-10 个字，英文建议 3-5 个词）
- 去除编号前缀（例如 `## 1.1 xxx` → `## xxx`），使节点更整洁
- 建议最大深度：4-5 层
- 建议最大节点数：约 150 个（保证可读性）

---

## 层级映射关系

| Markdown 语法 | 思维导图层级 |
|---------------|-------------|
| `# 一级标题` | 中心主题（根节点） |
| `## 二级标题` | 一级分支 |
| `### 三级标题` | 二级分支 |
| `- 列表项` | 子节点 |
| `  - 缩进列表项` | 更深层子节点 |

---

## 推荐示例

```markdown
# 项目架构
## 前端
- React
- TypeScript
## 后端
- Python
- FastAPI
## 数据库
- PostgreSQL
- Redis
```

## 不推荐示例（过于冗长）

```markdown
# 这是一个关于项目架构的完整详细说明文档
## 1.1 前端技术栈的选型与使用方式
### 1.1.1 我们选择了React作为前端框架因为它很流行
```

---

## 内容清理建议

- 当源文档中有编号章节（如 `## 3.1 设计原则`）时，去除编号得到 `## 设计原则`
- 建议每次只使用一个一级标题作为根节点
- 对于大型文档（100+ 个标题），按顶级章节拆分为多个思维导图
- 内容过长时可拆分为多份分别生成
