Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

📅 周次化课程表(Weekly Timetable)

单文件、零依赖、可离线打开的按周课程表。数据默认只保存在你自己的浏览器(localStorage);可选「☁️ 云同步」把课表存进你自己的 GitHub 私有 gist,实现多设备共用一份。

为什么做"按周"的课表?

很多课程不是每周都上:单双周交替(大小周)、只在一段周次里开课、讲座/培训只办一次、还有些任务只要在某个日期区间内完成即可。普通"固定每周"课表表达不了这些,于是有了这个工具。

功能

  • 按周浏览:‹ 上一周 | 第 N / 共 M 周 | 下一周 ›,一键回到本周,今天所在的列高亮
  • 校历驱动:设置「第 1 周从哪天开始 + 本学期总周数」后,自动算出当前是第几周
  • 六种排课规则(每门课可选):
    规则 含义
    每周 每周固定上
    单周 第 1、3、5...周(大周)
    双周 第 2、4、6...周(小周)
    指定周次 7-9,11-123,5,7-97-(到期末)
    单次日期 只在某一天(讲座/培训/会议)
    限时任务 某日期区间内任选一天完成(如线上培训),以横条显示在周视图顶部
  • 假期自动停课:中秋/国庆等假期按日期范围配置后,落在假期的课自动跳过,当周列灰显并标注 🎉 假期名
  • 可视化时间轴:卡片按真实时间绝对定位,短课也会完整展示名称/时长/地点
  • 课程卡片可查看 / 编辑 / 删除;Ctrl+P 可直接打印
  • 📱 手机自动适配:窄屏自动切换为「按天分块的纵向列表」,无横向滚动、整页只上下滑(周几表头与课程不再分开滚动)
  • 📅 导出 .ics:一键导出标准日历文件(📅 导出 按钮),传到手机打开即可导入 iPhone / Android 系统日历,自动按周次展开、跳过假期、上课前 15 分钟提醒
  • ☁️ 可选云同步:电脑 / 手机打开同一个页面 → 各自粘一次 GitHub 令牌 → 自动共享同一份课表

快速开始

  1. 直接打开 index.html(或使用在线版)
  2. 点右上角 ⚙️ 校历设置:填「第 1 周周一的日期」「本学期共几周」「假期」
  3. + 添加 创建课程 / 活动,选好周次规则即可
  4. 数据自动保存在浏览器本地,关掉页面不丢

单双周按「第 1 周 = 单周」计算;改校历起点即可整体重排奇偶。

多设备云同步(可选)

课表默认只存在当前设备的浏览器里;想让另一台电脑 / 手机打开就能看到同一份课表,点右上「☁️ 同步」:

  1. 点面板里的链接生成一个 GitHub 令牌(只勾选 gist 权限一项)
  2. 把令牌粘贴进「☁️ 同步」面板 → 点「保存并连接」
  3. 首次连接会自动在你的 GitHub 账号里创建一个私有 gist 存放课表;之后这台设备:
    • 改课表 → 自动上传;打开页面 / 切回页面 / 每 90 秒 → 自动检查并拉取
  4. 换设备:打开同一个页面,粘自己的令牌(新生成也行),保存并连接 → 自动拉到同一份课表
  5. **只想"手机打开就能看"?**连接后面板里会生成「📱 只读查看链接」:手机浏览器直接打开即可(无需登录/令牌),自动刷新,只能看不能改

隐私与机制:

  • 课表与令牌都只存在你自己的浏览器里:本仓库代码、GitHub Pages 站点中不含任何人的课表或令牌;令牌是「只读/写你的 gist」的最小权限,可随时在 GitHub(Settings → Developer settings)撤销
  • 多处同时编辑时按「最后一次改动时间」判定:另一台设备改得更晚 → 本机自动改拉取;面板里也有「⬇️ 拉取云端 / ⬆️ 上传本地(覆盖云端)」两个手动按钮兜底
  • 云端 gist 自带版本历史,误覆盖可在 gist 页面恢复

手动导入一条(可选)

URL 参数快速添加:index.html?add=名称|星期(1-7)|开始|结束|地点|周次|备注

  • 周次留空 = 每周;o = 单周;e = 双周;d:2026年09月08日 = 单次某天;r:2026年09月11日|2026年09月18日 = 限时任务窗口

技术

  • 纯 HTML + CSS + JavaScript,无任何依赖,单文件 ~30KB
  • 数据模型:localStorage(课程 timetable.v23、校历 timetable.cfg.v23)
  • 课程字段:name / d(1-7) / start / end_time / loc / tea / detail / wk(周次规则)

许可

MIT License,见 LICENSE

About

📅 按周次排课的课程表:支持单双周/指定周次/单次活动/限时任务,假期自动停课,纯前端零依赖

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /