# 剧本结构化编辑器 — 设计待办

> 状态：待设计
> 优先级：P2（方向 1 完成后推进）

## 背景

当前 ScriptProcessor 使用纯 `<textarea>` 显示 `originalText` 字符串，缺乏行级结构化标识。用户在编辑和阅读剧本时无法快速区分对话、旁白、场景描述、动作指示等不同内容类型。

## 目标

将剧本编辑器从纯文本升级为结构化 block-based 编辑器，自动或手动识别并标注不同内容类型，提供差异化的视觉样式。

## 内容类型（初步）

| 类型 | 示例 | 视觉标识 |
|------|------|---------|
| 对话 | `沈聪OS：（惊恐）不…不！金刚号！` | 蓝色标签 + 左色条 |
| 旁白 | `洪水如同瀑布般疯狂涌入驾驶舱` | 紫色标签 |
| 场景描述 | `△车头驾驶位旁的钢板被彻底咬穿！` | 绿色标签 |
| 动作指示 | `沈聪拼命按下紧急排水按钮` | 黄色标签 |

## 涉及范围

1. **数据模型** — `originalText` 从纯字符串扩展为 `ScriptBlock[]` 结构
2. **解析逻辑** — 前端/后端 parser 自动识别内容类型（可结合 LLM + 规则）
3. **编辑器 UI** — 从 textarea 变为 block-based editor（类 Notion 块编辑器）
4. **下游兼容** — 分镜生成、实体提取适配新数据结构
5. **向后兼容** — 旧项目纯文本平滑迁移

## 参考

- 类似项目中常见的剧本编辑器结构化标注模式
- Fountain 剧本格式（好莱坞标准）
- Notion/Craft 的 block editor 交互模式
