# 校园墙 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` 指定已发布演示地址;测试操作仍只进入演示浏览器存储。