# STORY STUDIO 0.4.0

浏览器端剧情编辑器。服务器只提供静态网页；工程和素材保存到访问者授权的本机目录，或当前浏览器 IndexedDB。配置格式与现有游戏客户端保持兼容。

## 启动与构建

```powershell
# 在 story-editor 目录
python server.py --port 8790
# 或 Windows 后台启动
./start.ps1
# 构建静态版与可选本地工具包
python tools/build.py
```

打开 `http://127.0.0.1:8790/`。本地静态启动器需 Python 3.10+；部署静态版无需 Python / Node。前端无运行时外部依赖。

- 源码：`src/web/`；静态服务器：`src/server.py`；可选本地 CLI：`src/cli.py`、`src/repository.py`。
- 静态部署：`dist/story-studio-0.4.0/` 及同名 ZIP，index.html 在根目录。
- 本地工具包：`dist/story-studio-local-0.4.0/` 及同名 ZIP。
- 现有章节原件：相邻 `story-chapters/`，不随编辑器打包，也不自动删除。

## 首次打开：选择保存位置

点击“章节库”：

1. **打开 / 新建本机仓库**：选择含 story.repository.json 和 chapters/ 的仓库根目录，或空目录。工程自动保存回授权目录；方便 Git 与本地 Codex 协作。浏览器需支持目录读写且处于 HTTPS / localhost。
2. **使用浏览器章节库**：适用于内置浏览器无法授权目录的情况。新建、导入、素材和修改存进 IndexedDB。导入是复制，不会自动回写原目录；需要导出工程包后解压、核对，再提交 Git。
3. 本机模式重新打开页面可能需要“重新授权上次的本机仓库”。浏览器存储模式受站点配额、清理站点数据、隐私模式影响，请保留完整工程备份。

主线与回忆录放在同一个工作空间才能预览跨章跳转。不同章节的素材仍隔离，同章内容相同的素材复用 GUID。移动素材文件与 .meta 不改变节点引用。

## 日常流程

1. 新建章节，输入名称和目录名；素材库为空。
2. 导入素材文件 / 文件夹，或拖放文件。素材卡片添加节点，再配置剧情、互动、动作判定、奖励和回忆录。
3. 自动保存约 1.3 秒；顶部明确显示“本机目录”或“此浏览器”。切换前等待保存。
4. 素材卡片 ••• 可移动 / 替换文件；替换保持 GUID 和格式。
5. 剧情检查、试走验证，再导出章节工程包或客户端剧情包。客户端包会检查并包含跨章依赖、合并变量、转换资源路径。
6. 草稿和失败写入的恢复入口在章节库。检测到外部 Git 或其他页面修改时拒绝覆盖；先下载当前修改快照再合并。

多人协作通过本机各自 Git checkout 完成；网站不提供实时协作、自动 Git 提交或推送。浏览器与 Python CLI 对同一目录不要同时写入。单个 JSON / .meta 有稳定缩进和键排序，节点拆分文件，适合 diff。

## 教程与部署

页面顶部“教程 ↗”和左下角“?”打开内置教程中心，含基础、动作/奖励/回忆录、客户端部署、Git 与 Skill 教程。内容随静态包提供。

[部署与 Nginx Proxy Manager](DEPLOY.md) · [目录协议](PROJECT_FORMAT.md) · [验证记录](TESTING.md)

教程和 skill 的维护源仍在 `story-chapters/docs/`、`story-chapters/.agents/skills/`，`manual/` 是构建快照。更新后执行 `python tools/build_help.py --sync-from ../story-chapters`。普通构建不需要相邻章节仓库。

默认深色，可切换明暗。保持三列，支持拖动分隔线、键盘调宽、窄窗口横向滚动。偏好保存在当前浏览器，不进入章节工程。
