Files
ClassHelper/docs/get-started/client.md
T
LoveChengke 19c2aa07b2 feat(docs,scripts,build): 用 docfx 搭文档站并发布到 GitHub Pages,版本号收口成脚本迭代
文档站(`docs/` 就是 docfx 项目,发布在 https://lovechengke.github.io/ClassHelper/):

- 四章 + 常见问题 + 完整参考,共 44 页:快速上手(8 页)/ 应用帮助(10 页)/
  管理运维(6 页)/ 开发文档(11 页)。信息架构照 ClassIsland 文档站来:
  顶栏分章、左侧章节导航、右侧本页目录、上一页 / 下一页、站内搜索、深色主题跟随系统;
- 自定义模板覆盖(`templates/classhelper/`):把 docfx modern 模板那套英文 UI 文案
  (In this article / Improve this doc / Next…)换成中文,补 GitHub 入口与版本徽标,
  并加一层只调排版与配色的 `public/main.css`(不动 DOM 结构);
- 站点顶栏的版本徽标取自根 `package.json`(`docs/build.mjs` 用 `--metadata` 注入),
  不在文档里写第二份 —— 否则一定漂;
- 404 页单独生成:GitHub Pages 的项目页挂在 `/<仓库名>/` 子路径下,而浏览器是按**被请求的路径**
  解析页面里的相对链接的,所以 `<base>` 必须钉到站点根,由 `build.mjs`(本地 `./`)与
  workflow(CI 传 `/<仓库名>/`)分别注入;
- 构建前清空 `_site`:docfx 只覆盖不清理,删掉或改名的页面会以旧文件留在目录里,
  而 Pages 上传的是整个目录。

版本迭代(**每一次 releases,不是每一次提交**):

- 新增 `scripts/version.mjs`。这个仓库里同一个版本号散在 **10 个文件**里(5 份 `package.json`、
  `deploy/package.runtime.json`、两个 compose 的镜像 tag、插件 `manifest.yml`、以及插件 C# 里的
  `PluginVersion` 常量),手工改必然漏一处,而漏掉的那处**不会报错**,只在某个不常走的分支上
  表现为"版本号对不上"。现在收口成两条命令:`pnpm version:check`(逐处比对,不一致 exit 1)
  与 `pnpm version:bump patch|minor|major`(一次改写全部 10 处,任何一处匹配不到或匹配到多处
  就直接失败退出,不做尽力而为的部分改写);
- `AGENTS.md` 新增 §4.4「版本迭代(每一次 releases,不是每一次提交)」:写清版本号落在哪 10 处、
  完整发布命令序列(体检 → 验收 → `dist:all` → 哈希清单 → 推 master → `gh release create` →
  Linux 包由 CI 合并哈希行),以及"已发布的版本号不要复用"的理由。

其它:

- `.github/workflows/docs.yml`:推 master(`docs/**` / `package.json` / workflow 自身有变)即构建并
  部署到 Pages;构建带 `--check`,把 docfx 的警告当错误 —— 最常见的警告是"某个 `.md` 没被任何
  `toc.yml` 引用",那种页面有内容但没有侧边栏,属于必须修掉的疏漏;
- docs 目录重组后的引用同步:`production` / `mysql` / `linux-deploy` / `winisland-design-tokens`
  移到新位置后,AGENTS.md、`deploy/`、`scripts/`、客户端源码注释里的路径引用一并更新;
- 文档站只发布 `docs/` 这一棵树,页面里指向树外的相对链接(`../AGENTS.md` 等)改成 GitHub 绝对 URL,
  否则上线全是 404;
- 图标派生清单补上文档站模板里的 `logo.png` 与 `favicon.png`(`pnpm icons` 一并生成,
  仍然只有一个图形源 `build/classhelper.{png,ico}`);
- `docs/_site` 进 `.gitignore` / `.prettierignore` 与 ESLint ignores;
- 根脚本补 `version:check` / `version:bump` / `docs:build` / `docs:serve` / `docs:check`。
2026-10-06 16:27:44 +08:00

90 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 装学生端
description: 在教室机器上安装班级小助手桌面客户端,用班级码登录,并第一次跑通实时通知。
---
# 装学生端
桌面客户端装在**教室的那台机器**上(教室大屏、讲台电脑)。它是学生看课表作业的地方,
也是「消息到达的第一现场」—— 灵动岛就长在这一端。
## 1. 下载与安装
从 [Releases](https://github.com/LoveChengke/classhelper/releases) 取:
| 产物 | 用途 |
| ------------------------------------ | ------------------------------------------ |
| `班级小助手-<版本>-x64-setup.exe` | 安装包(约 98 MB),装到本机并建快捷方式 |
| `班级小助手-<版本>-x64-portable.exe` | 单文件便携版,双击即用,适合不改动机房机器 |
要自己打:
```bash
pnpm dist:win # 安装包 + 便携版;只要免安装目录用 pnpm dist:dir
```
> **装不上 / 双击没反应 / 一闪就没**(报 `0x80000003`)通常不是产物坏了,而是交付物被打了
> Low 完整性标签。打包脚本收尾已自动修正;从 Release 下载的包不受影响。
> 另外:关窗是隐藏到托盘,进程还在,再双击会因单实例锁秒退 —— 先从托盘退出。
## 2. 登录
打开客户端 → 填三项:
| 字段 | 填什么 |
| ---------- | ------------------------------------------------------------- |
| 服务器地址 | `http://<服务器IP>:4000`(局域网用内网 IP,别用 `localhost`) |
| 班级码 | 管理员在「班级管理」里给这个班设的码,例如 `G203` |
| 班级密码 | 建班级时设的密码 |
旁边的「测试连接」可以先确认网络通。**已登录过但服务器暂时不可达时**,登录页会给一个「离线进入」——
进去后看到的是上次缓存的课表 / 作业 / 通知(顶部会标「离线缓存」),网络恢复后自动刷新。
> 客户端**没有改密码入口**,这是刻意的:教室机器上误改班级密码会把别的机器锁在门外。
> 班级密码由管理员在 Web 端「班级管理 → 修改班级账号」维护。
## 3. 首次启动的六步向导
第一次启动会在登录页上自动弹一个向导:欢迎 → 连接服务器 → 登录班级 → 登录之后(主界面与离线缓存)→
灵动岛提醒 → 完成。走完或跳过都会记为已完成,之后不再自动弹。
想重看:登录页的**「查看使用引导」**,或进去之后 **设置 → 通用 → 使用引导**。
## 4. 认一认主界面
左侧是四个一级项(**课表 / 作业 / 通知 / 成绩**)加上一个可展开的**设置**分组,
顶部汉堡按钮把整栏收成 64px 的图标导轨(折叠状态会记住)。「通知」项上有未读红点。
| 页面 | 一句话 |
| ---- | -------------------------------------------------------------- |
| 课表 | 周视图 + 「今天」时间轴(大时钟 / 正在上什么 / 下一节) |
| 作业 | 看板模式(按科目卡片、可全屏)/ 列表模式;教室机器还能录入作业 |
| 通知 | 未读红点、优先级标签、点开自动标为已读 |
| 成绩 | 班级账号看到的是全班总览(表格 + 柱状图 + 等级分布) |
| 设置 | 通用 / 外观 / 灵动岛 / 提醒 / 账号 / 关于,六个子页 |
细节见[应用帮助](../app/index.md)。
## 5. 在教室机器上把它调成"能看"的样子
教室大屏的观看距离和角度跟办公桌不一样,装完建议顺手做三件事:
1. **开全屏作业看板** —— 作业页「全屏看板」,按屏幕尺寸自动排版,整个屏幕刚好放得下、不用滚动。
2. **调灵动岛** —— 设置 → 灵动岛:高度、宽度、字号、主题色、停靠位置、视觉风格。
讲台机器上通常把字号调大一点、位置放到顶部居中。
触摸屏(希沃白板等)走的是另一套命中逻辑,客户端会自动识别,不用手动开。
3. **选提醒弹在哪端** —— 设置 → 提醒:`ClassHelper 与 ClassIsland 都弹` / 只在客户端 / 只在 ClassIsland。
这个选择会同步到班级记录,服务端据此决定要不要推 ClassIsland。
## 6. 确认实时链路是通的
在 Web 管理端给这个班发一条普通通知,教室机器上应该几秒内出现灵动岛胶囊。如果没有:
- 客户端顶栏的实时通道状态是不是"已连接"?
- 现在是上课时段吗?上课时段的普通通知**只进队列、下课才弹**,这是设计行为,不是故障。
- 服务器与教室机器之间能互相 ping 通吗?防火墙放行 4000 了吗?
排查清单见[常见问题](../faq.md)。
下一步(可选):[接入 ClassIsland](classisland.md)。