Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

132 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

武汉大学 iCalendar 校历

License: MIT npm version TypeScript Node.js Build Status Last commit Issues Stars FOSSA Status

武汉大学校历数据集合,支持导入各种日历应用,轻松管理学校日程。

项目简介

本项目提供武汉大学官方校历的 iCalendar 格式数据,目前包含从 2021 年到 2026 年(持续更新中)的完整校历信息。

本项目使用数据驱动架构,所有校历数据均存储在 data/*.json 中。

注意:本项目仅提供校历数据,不保证数据的绝对实时性。请以武汉大学官方发布的最新校历为准。

主要特性

  • 官方数据源:基于武汉大学本科生院官方校历数据。
  • Sunday-Start 规范:所有教学周严格从周日开始,到周六结束,完美契合武大作息。
  • 现代化架构:采用 JSON 结构化存储,支持 1-indexed 月份表示,告别 JS Date 的 0 索引歧义。
  • 自动更新:支持在线订阅,校历更新时自动同步。
  • 网页预览:通过 calendar.whu.sb 动态加载并提供下载。

快速开始

在线使用

访问 项目主页 直接预览并下载所需的校历文件。

NPM 安装使用

本项目也可以作为 NPM 包引入到你的项目中:

npm install @closedwhu/calendar
# 或者
pnpm add @closedwhu/calendar

代码中使用示例

// 引入类型
import type { CalendarData } from '@closedwhu/calendar';

// 直接引入预编译的 JSON 格式历年数据
import allData from '@closedwhu/calendar/data';
import yearsList from '@closedwhu/calendar/years';

// 若配置了相应的打包工具,也可以直接引入 ICS 原始文本
import ics2024 from '@closedwhu/calendar/ics/2024-2025.ics';

本地开发

  1. 克隆项目
git clone https://github.com/ClosedWHU/WHU-Calendar.git
cd WHU-Calendar
  1. 安装依赖
pnpm install
  1. 构建项目
pnpm run build

项目结构

whu-calendar/
├── data/                   # 结构化 JSON 校历数据
├── src/                    # 引擎源文件
│   ├── engine.ts           # 统一构建引擎
│   ├── check-alignment.ts  # 自动对齐校验工具
│   └── check-legacy-parity.ts # 溯源审计工具
├── legacy/                 # (弃用) 年度 TS 数据源
├── dist/                   # 构建输出目录
│   ├── *.ics               # 生成的 ICS 文件
│   ├── all.ics             # 完整合集
│   └── years.json          # 供前端使用的年份元数据
├── index.html              # 项目主页
└── README.md

数据说明

自 2026 年起,本项目弃用了 calendar_YYYY.ts 脚本方式,转而采用 JSON 数据驱动。

格式对比 (Legacy vs Modern)

特性 Legacy (TS) Modern (JSON)
存储方式 硬编码脚本 (legacy/*.ts) 结构化数据 (data/*.json)
月份索引 0-indexed (0=Jan) 1-indexed (1=Jan)
周起始日 视脚本而定 强制 Sunday (周日)
校验机制 自动化脚本审计

开发指南

添加新年度校历

  1. data/ 目录下创建新的 YYYY-YYYY.json 文件(参考现有模板)。
  2. 日期规范
    • 月份使用真实数字(如 9 代表 9 月)。
    • 每个学期的 start 日期必须固定为该周的星期天
  3. 运行 pnpm run build 重新生成资源。
  4. 运行 npx tsx src/check-alignment.ts 进行审计。

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

致谢

  • 感谢武汉大学本科生院提供官方校历数据。
  • 感谢所有贡献者的支持和建议。
Hsukqi Lee

Eric_Lian Little Weakduck Leixin Sun misa想变猫猫娘 CauchYoung

联系方式

Star History

Star History Chart

License

FOSSA Status

About

WHU Academic Calendar

Resources

Stars

13 stars

Watchers

12 watching

Forks

Used by

Contributors

Languages