课表功能
课表是 AstraSchedule 客户端的核心功能,显示当天的课程安排,通过颜色、动画和倒计时提示上课状态。
课程显示
每节课程支持简称和全称两种显示方式。简称通常为单字科目名,全称则为完整名称(如简称"语"对应全称"语文")。在科目配置中,简称支持特殊的 @ 下标语法:@ 之前的部分为简称,@ 之后的部分显示为下角标。例如配置为 自@物,课表上将渲染为"自物",表示"自习(物理)"。这一语法仅影响简称的显示,全称字段不受影响。
课表按照作息表中配置的每日课程顺序排列。每节课显示科目简称,当前时间所在的课程或课间会被高亮标记。

三种高亮状态
课程根据当前时间与作息表的匹配关系,呈现三种不同的高亮状态:
- 已结束(灰色):当前时间已超过该课程结束时间,课程名称显示为灰色,表示该课程已上完。
- 当前课程(绿色/橙色):当前时间正处于该课程的范围内。在 WebSocket 连接正常时显示绿色,异常断开时显示橙色,意味着当前可能存在网络问题。Serverless 模式下总是显示为绿色。
- 即将到来(闪烁):当前时间处于上一节课和本节课之间(即课间休息),下一节即将开始的课程会以闪烁动画提示。闪烁的颜色同样随 WebSocket 连接状态变化:连接时为白色与绿色交替闪烁,断开时为白色与橙色交替闪烁。
高亮状态的切换由客户端的实时时钟和作息表数据共同计算得出,每秒更新一次。
四种显示模式
通过托盘菜单中的三个开关——"课上计时""上课隐藏""始终缩小"——可以组合出四种显示模式:
默认配置为课上计时开启、上课隐藏开启、始终缩小关闭。上课时段课表主体和普通倒计时框隐藏,仅保留迷你倒计时窗口;下课时段恢复完整显示。
倒计时框
倒计时框显示在当前高亮课程的下方,包含课程的全称和以 MM:SS 格式显示的剩余时间。倒计时框的位置会根据当前时段移动。
倒计时框顶部有一个指向当前高亮课程的三角形箭头,指示倒计时所属的课程。倒计时每秒更新一次,显示距离课程结束剩余的时间(精确到秒,如“离下课还有 05:32”)。
分隔线
作息表中可以配置分隔线(divider),在特定课程序号之前插入一条水平分隔线。分隔线的宽度、颜色和间距可通过 CSS 变量控制,默认为灰色圆角线条。可以用于分隔上下午等大时间段。
每周轮换课程
部分学校存在单双周甚至多周交替上课的情况(如单周上物理、双周上化学)。系统支持 任意周 轮换课程。

托盘菜单"切换日程"
"切换日程"菜单项可以将当天的课表显示为本周内的任意一天。选择后客户端替换 daily_class 数据源,显示目标日期的课程安排。日期自然变化时自动重置回当天。菜单中提供"重置至当前日期"选项以立即恢复。
可用于本地临时切换显示日程,供临时调休时使用。
托盘菜单"配置课表"
"配置课表"菜单项提供临时的单节课修改功能,供临时换课时使用。点击后弹出两步对话框:第一步选择要修改的课程时段,第二步从所有可用科目中选择替换科目。
此修改仅在当前运行实例的内存中生效,不会持久化或同步到服务端,重启客户端后恢复为服务端配置。