docs/PAGES_DEMO.md
Rama main · réplica de lectura del repositorio original.
# 校园墙 GitHub Pages 演示
演示地址:https://jay1023cn.github.io/school_wall/
## 演示来源与范围
演示复用 GitHub 公开快照中的 `frontend/`,随公开分支 `main` 自动更新。源码经过脱敏,演示不连接生产数据库,也不带入本地私有配置或生产仓库历史。
浏览器端 `demo/runtime.js` 提供贴近日常校园生活的示例帖子、歌曲、账号与私信,通过同源 API 拦截支持浏览、评论、点歌及后台审核。数据写入演示域名下的浏览器存储,不会进入服务器数据库;顶部“重新体验”可恢复初始内容。未实现的操作返回明确提示。
| 功能 | 演示行为 |
| --- | --- |
| 首页、分类、详情 | 读取校园生活示例帖子,支持分类和搜索 |
| 点歌、评论、私信、审核 | 在当前浏览器中记录操作 |
| 管理后台 | 自动切换到演示管理员 |
| 邮件、微信同步、AI、上传 | 不执行真实外部操作 |
| 登录与注册 | 顶部入口切换演示身份;不会创建真实账号 |
## 本地构建与预览
需要 Node.js;构建本身仅使用标准库,不需要 MySQL 或私有配置。
```bash
npm run build:demo
python -m http.server 8080 --directory .pages-demo
```
上方默认构建面向 GitHub 的仓库子路径。本地站点根目录预览需要将构建基础路径设为 `/`:
```powershell
$env:PAGES_BASE_PATH = '/'
npm run build:demo
python -m http.server 8080 --directory .pages-demo
```
访问 `http://localhost:8080/`。发布到 GitHub 时保留默认 `/school_wall/`,以适配仓库子路径。`.pages-demo/` 是忽略的构建产物,不提交 Git。
## 自动发布
`.github/workflows/pages-demo.yml` 在 GitHub `main` 推送或手动触发时执行构建、上传 Pages 产物并发布。仓库 Pages 的发布来源为 GitHub Actions,首页 Website 指向演示地址。
构建器 `scripts/build-pages-demo.js` 只复制前端允许的文件类型,禁止链接与敏感文件,排除 `uploads/`。产物内注入演示 API 与顶部身份入口,调整资源、导航和帖子详情的仓库子路径,替换专用学校名称及真实站点地址,移除搜索提交脚本。前端源码和生产镜像不受演示注入影响。
`demo-build.json` 记录 GitHub 构建提交与基础路径,用于确认当前线上版本。Pages 部署成功后还需要实际打开首页、点歌、详情、私信和后台,确认资源及导航正常。
浏览器专项回归:默认基础路径构建后运行 `python scripts/test-pages-demo-browser.py`(需 Playwright 与 Edge,可用 `WALL_BROWSER_CHANNEL` 指定浏览器)。可通过 `DEMO_TEST_URL` 指定已发布演示地址;测试操作仍只进入演示浏览器存储。