whu_calendar 0.3.2 copy "whu_calendar: ^0.3.2" to clipboard
whu_calendar: ^0.3.2 copied to clipboard

WHU academic calendar data and Flutter utilities — multi-language (TS + Dart) support.

武汉大学 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想变猫猫娘 0x535A laplaceyoung fossabot

联系方式 #

Star History #

Star History Chart

License #

FOSSA Status

0
likes
135
points
233
downloads

Documentation

API reference

Publisher

verified publisherwhu.sb

Weekly Downloads

WHU academic calendar data and Flutter utilities — multi-language (TS + Dart) support.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter

More

Packages that depend on whu_calendar