Files
timeTableFix/README.md

3.1 KiB
Raw Blame History

timeTableFix - 纯前端 ICS 日历整理器

浏览器内解析、去重、编辑 ICS 日历文件,全程无需后端服务。拖入 .ics -> 整理去重 -> 编辑 -> 下载。独立可维护,亦可作为 mainPage 的子模块集成展示。

项目结构

timeTableFix/
├── index.html                  Vite 入口
├── package.json
├── vite.config.js
├── vitest.config.js
├── .npmrc                      npmmirror 镜像加速
├── README.md
├── src/
│   ├── main.js                 应用挂载i18n + 全局样式)
│   ├── App.vue                 便携式根组件(嵌入与独立两用)
│   ├── i18n/                   独立 vue-i18n 实例 + 中英 locale
│   ├── composables/
│   │   ├── useCalendar.js      中心 store自动保存无 undo
│   │   └── useLocale.js        语言辅助(直读自身 i18n 实例)
│   ├── lib/
│   │   ├── weekday.js          星期常量与工具
│   │   ├── date.js             日期工具
│   │   ├── colors.js           事件配色
│   │   ├── uuid.js             UUID 生成(含非安全上下文回退)
│   │   ├── ical-io.js          ICS 文本 <-> plain model
│   │   ├── recur.js            RRULE 网格展开
│   │   ├── organize.js         间隔去重 + 链拆分算法
│   │   ├── event-factory.js    事件构造工厂
│   │   └── split.js            事件拆分逻辑
│   └── components/
│       ├── HeaderBar.vue       顶栏:整理/导入/下载
│       ├── DropZone.vue        拖拽/选择文件
│       ├── EventList.vue       侧栏事件列表
│       ├── EventDetail.vue     编辑表单 + 拆分
│       ├── OccurrenceGrid.vue  排除日期网格
│       ├── MonthPreview.vue    月预览
│       └── WeekPreview.vue     周预览
├── test/                       Vitest 单元测试
└── docs/                       设计文档

外部依赖

说明
Node.js ≥ 18
ical.js ICS 解析库npm 依赖)

纯前端应用,无运行期后端依赖。

如何使用

# 克隆并安装
git clone https://git.zikai.wang/zikai/timeTableFix.git
cd timeTableFix
npm install        # 已配 npmmirror 镜像加速

npm run dev        # 开发服务器 http://localhost:5173
npm run build      # 构建到 dist/
npm test           # 单元测试42 项)

技术栈

选择
框架 Vue 3.5SFC<script setup>
构建 Vite 6
ICS 库 ical.js 2.x
国际化 vue-i18n 9中文同步英文懒加载
状态管理 composable 单例 store
测试 Vitest
包源 npmmirror.com中国镜像加速

了解更多