From 64dd8c5cd16212fd85096a6c122705f2e0b92d88 Mon Sep 17 00:00:00 2001 From: timeTable2 dev Date: Mon, 13 Jul 2026 17:31:43 +0800 Subject: [PATCH] docs: add timeTable2 design spec --- .gitignore | 5 + .../specs/2026-07-13-timetable2-design.md | 556 ++++++++++++++++++ 2 files changed, 561 insertions(+) create mode 100644 .gitignore create mode 100644 docs/superpowers/specs/2026-07-13-timetable2-design.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b01a18a --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +dist/ +.vite/ +*.log +.DS_Store diff --git a/docs/superpowers/specs/2026-07-13-timetable2-design.md b/docs/superpowers/specs/2026-07-13-timetable2-design.md new file mode 100644 index 0000000..20470b5 --- /dev/null +++ b/docs/superpowers/specs/2026-07-13-timetable2-design.md @@ -0,0 +1,556 @@ +# timeTable2 - 纯前端 ICS 日历整理与编辑器 + +**日期**: 2026-07-13 +**状态**: 设计已定稿,待用户复核 +**位置**: `D:\zcode\timeTable2`(与 `D:\zcode\timeTable` 平级,独立 git 仓库) + +--- + +## 1. 目标与范围 + +### 1.1 目标 + +构建一个**纯前端**(HTML + JS + CSS,无 Python、无后端服务)的 ICS 日历应用,实现: + +1. **解析**:浏览器内读取任意 `.ics` 文件(支持 VTIMEZONE、RRULE、EXDATE) +2. **去重整理**:将"每周相同却被导出为 N 个独立事件"的扁平列表,自动合并为带 `RRULE` + `EXDATE` 的重复事件 +3. **编辑**:可视化编辑每个事件(标题/地点/描述/时间/重复规则/排除日期) +4. **增删拆**:手动新增事件、删除事件、把一个已合并的重复事件按日期拆成两段 +5. **导出**:编辑完成后下载整理好的 `.ics` + +用户全程通过拖拽/选择文件进入,编辑完成后下载,**无需任何命令行或服务器**。 + +### 1.2 范围边界 + +**包含**: +- Vite + Vue3(SFC,`