# 图谱宇宙链 XYLink · Cloudflare Pages 部署说明

纯静态站点，零服务端逻辑。本 zip 即为 `public/` 构建产物，**可直接部署到 Cloudflare Pages**。

## 方式一：命令行一键部署（推荐）

```bash
# 1. 安装 wrangler（已装可跳过）
npm i -g wrangler            # 或 npx wrangler

# 2. 首次登录授权（浏览器一次性操作，之后不再需要）
wrangler login

# 3. 部署（public/ 为构建输出根，项目名见 wrangler.toml 的 name）
wrangler pages deploy public
```

部署成功后终端会打印你的站点地址，形如：

```
https://xiyou-xylink.pages.dev
```

> 若 `xiyou-xylink` 已被他人占用，先改 `/workspace/wrangler.toml` 里的 `name` 再部署，
> 或部署时显式指定：`wrangler pages deploy public --project-name 你的项目名`

## 方式二：控制台拖拽上传（无需 CLI）

1. 打开 Cloudflare 控制台 → **Workers & Pages** → **Create** → 选择 **Pages** → **Upload assets (Direct Upload)**
2. 上传本 zip（解压后根目录即 `index.html`）
3. 项目名填 `xy-xylink`（或其他），点 **Deploy**
4. 完成后得到 `https://<项目名>.pages.dev`

## 部署后的站点结构

```
/                        门户：protocol 宿主 + 实时共享钱包仪表盘 + 4 应用 iframe 启动器
/game/                   西游红警化 RTS（#L1..#L5 直达关卡）
/gongdelu/               功德录（默认已接图谱宇宙链；?bridge=1 走门户协议桥接）
/engine/                 叙事引擎五层演示
/sdk/                    图谱宇宙链 XYLink SDK 文档 + 可交互 demo
/xyLink.js / xyLink-data.js / protocol-client.js   门户与桥接共享的核心文件
```

## 验证部署成功

打开 `https://<项目名>.pages.dev`：
- 仪表盘应显示默认钱包 `gongde: 20`、阵营「花果山新生代」、Flag `entered_ch1`
- 点「演示桥接」按钮 → 钱包实时变为 功德 120 / 灵韵 8、猕三郎好感 +1、车迟国入册
- 分别点开 4 个应用链接，确认各自独立运行

## 自定义域名（可选）

Cloudflare 控制台 → Pages → 你的项目 → **自定义域** 绑定 `xy.yourdomain.com`。
绑定后共享钱包（localStorage 按 origin）+ protocol 桥接双保险，同源子路径下自动打通。

## 升级真·上链后端（可选，进阶）

在 `/workspace` 建 `functions/` 目录，用 Workers/Pages Functions + D1/KV 持久化钱包；
`_routes.json` 改 `exclude` 放行对应路径即可。XYLink 调用点不变。

## 图谱三层体系（2026-09-08 新增）

- **原著窗口**：首页「西游图谱·原著窗口」只读展示《西游记》正典（v8.1 抽取：52 人物+20 法宝+92 关系+6 阵营+21 关系类）。数据由 `tools/extract-v8.mjs` 从 v8.1 单文件自动抽取（`sdk/data/canon-data.js`，勿手编）。
- **游客创作**：`/create.html` 独立页面，游客新增维度/关系存 `xy_graph_ugc`，可引用原著节点。
- **模块图谱**：各游戏卡「图谱」角标 → `/module-graph.html?module=<id>`，命名空间 `xy_graph_module:<id>` 按模块隔离。
- **完整版**：`/v81.html` 为 v8.1 原版单文件原样部署。
- URL 直达：`/index.html?graph=1&net=1`（关系网全景）、`?graph=1&sel=swk`（孙悟空详情）。

## 对外结构（2026-09-08 二次调整：原著图谱即门面）

- `/`（index.html）＝ **v8.1 原版《西游记人物关系图谱》**（对外窗口，只显示原著），顶栏注入原版 `.tbtn` 样式的「🧭 个人中心」入口按钮（`tools/build-home.mjs` 生成，v8.x 升级后重跑即可）。
- `/center.html` ＝ 个人中心（原 index.html）：共享钱包 / 模块中心 / 原著窗口 / 游客创作 / 模块图谱。
- `/create.html`、`/module-graph.html` 返回链接已指向 `/center.html`。
- URL 直达：`/center.html?open=v8-full`（内嵌原版）、`?graph=1&net=1`（关系网）、`?graph=1&sel=swk`（节点详情）。

## 多平台部署（2026-09-08 新增）

同一份构建产物（本 zip）可部署到任意静态托管平台，无需任何改动。

### Cloudflare Pages（主站，现状）

见上文方式一/二。大陆访客可访问，`pages.dev` 免备案。

### 腾讯云 EdgeOne Pages（海外线，2026-09-08 已部署 ✅）

```bash
# CLI 一键部署（Token 在 EdgeOne Pages 控制台 → 设置 → API Token 生成）
npm i -g edgeone
edgeone pages deploy xy-xylink-cloudflare-deploy.zip -n xy-xylink -t <API_TOKEN>
```

- **已部署**：项目 `xy-xylink`（Project ID `makers-sdprnf6xojb0`），区域 = 全球可用区（不含中国大陆），生产环境。
- **访问规则（平台合规策略，无开关）**：
  - 海外网络访客 → 直接访问 ✅
  - 中国大陆网络访客访问默认域名 `xy-xylink.edgeone.cool` → **401**（默认域名统一限制）
  - **绑定自定义域名（免备案，区域保持"不含中国大陆"）后，大陆访客即可正常访问**；注意域名托管在 Cloudflare 时根域不可绑，需用子域名。
- 版本更新：重跑同一条 deploy 命令即覆盖生产环境。

### 其他免备案备选

| 平台 | 方式 | 备注 |
|------|------|------|
| Netlify | [app.netlify.com/drop](https://app.netlify.com/drop) 拖入本 zip | 30 秒上线，`*.netlify.app` |
| Vercel | `npx vercel deploy` | `*.vercel.app` |
| GitHub Pages | push 仓库 + Settings→Pages | `*.github.io`，可配 Actions 全自动 |

> ⚠️ **存档迁移提醒**：共享钱包/图谱数据存于 localStorage，**按域名隔离**——换域名 = 游客进度清零。主域名确定后不要频繁迁移。
