feat(calendar): unify life events by date
This commit is contained in:
1 parent
1e7f8ed549
commit
f5e689d68b
11 files changed
+101
-20
No files matched your search
@@ -11,12 +11,13 @@
|
|||||||
- **Timeline**:按时间轴浏览、编辑和删除记忆。
|
- **Timeline**:按时间轴浏览、编辑和删除记忆。
|
||||||
- **Museum**:将重要记忆长期珍藏为馆藏。
|
- **Museum**:将重要记忆长期珍藏为馆藏。
|
||||||
- **Tasks / Goals**:创建目标和待办,关联任务、设置截止日期与优先级,查看今天/即将开始/已完成事项并追踪目标进度。
|
- **Tasks / Goals**:创建目标和待办,关联任务、设置截止日期与优先级,查看今天/即将开始/已完成事项并追踪目标进度。
|
||||||
|
- **Calendar**:月历查看每天的记忆、待办截止与完成记录,以及目标创建、目标日期和完成节点;可切换到日视图查看当天详情。
|
||||||
- **Insights / Profile**:查看情绪、能量、连续记录与个人系统状态。
|
- **Insights / Profile**:查看情绪、能量、连续记录与个人系统状态。
|
||||||
- **System**:深浅主题、自动识别浏览器语言(也可固定中文/English)、JSON 导入导出与本地存储说明。
|
- **System**:深浅主题、自动识别浏览器语言(也可固定中文/English)、JSON 导入导出与本地存储说明。
|
||||||
- **Bing 每日一图**:桌面壁纸每日自动更新;由 Life OS 同源代理读取,避免浏览器跨域限制。
|
- **Bing 每日一图**:桌面壁纸每日自动更新;由 Life OS 同源代理读取,避免浏览器跨域限制。
|
||||||
- **Windows 式操作**:桌面端单击选择、双击打开;右键桌面或 App 图标可使用快捷菜单。
|
- **Windows 式操作**:桌面端单击选择、双击打开;右键桌面或 App 图标可使用快捷菜单。
|
||||||
- **快捷键与草稿恢复**:`Ctrl / ⌘ + K` 打开启动器,`Ctrl / ⌘ + F` 搜索记忆,`Ctrl / ⌘ + S` 归档 Today;当天未归档文字会自动恢复。
|
- **快捷键与草稿恢复**:`Ctrl / ⌘ + K` 打开启动器,`Ctrl / ⌘ + F` 搜索记忆,`Ctrl / ⌘ + S` 归档 Today;当天未归档文字会自动恢复。
|
||||||
- **Tasks 快捷键**:`Alt + 6` 打开目标与待办,`Alt + 7` 打开 System。
|
- **App 快捷键**:`Alt + 6` 打开目标与待办,`Alt + 7` 打开日历,`Alt + 8` 打开 System。
|
||||||
- **移动端**:App 以全屏方式打开,保留任务栏恢复入口。
|
- **移动端**:App 以全屏方式打开,保留任务栏恢复入口。
|
||||||
- **个人云端**:使用 ChatGPT 登录后,数据按账号隔离并同步到 SQLite 兼容的 D1 数据库。
|
- **个人云端**:使用 ChatGPT 登录后,数据按账号隔离并同步到 SQLite 兼容的 D1 数据库。
|
||||||
|
|
||||||
@@ -54,6 +55,7 @@ npm run validate
|
|||||||
```text
|
```text
|
||||||
public/index.html # 桌面框架与窗口交互
|
public/index.html # 桌面框架与窗口交互
|
||||||
public/tasks.js # 目标与待办 App
|
public/tasks.js # 目标与待办 App
|
||||||
|
public/calendar.js # 记忆、待办与目标节点的日历时间轴
|
||||||
public/addons.js # 窗口与辅助交互
|
public/addons.js # 窗口与辅助交互
|
||||||
worker/index.js # ChatGPT 登录门槛、云端数据 API 与 Bing 壁纸代理
|
worker/index.js # ChatGPT 登录门槛、云端数据 API 与 Bing 壁纸代理
|
||||||
drizzle/ # SQLite / D1 数据库迁移
|
drizzle/ # SQLite / D1 数据库迁移
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "life-os",
|
"name": "life-os",
|
||||||
"version": "1.2.0",
|
"version": "1.3.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
+3
-3
@@ -1,8 +1,8 @@
|
|||||||
/* Life OS reliability and productivity add-ons. */
|
/* Life OS reliability and productivity add-ons. */
|
||||||
(() => {
|
(() => {
|
||||||
const DRAFT_KEY = 'lifeos_today_draft_v1';
|
const DRAFT_KEY = 'lifeos_today_draft_v1';
|
||||||
const APP_VERSION = '1.2.0';
|
const APP_VERSION = '1.3.0';
|
||||||
const appIds = ['today', 'timeline', 'museum', 'insights', 'profile', 'tasks', 'system'];
|
const appIds = ['today', 'timeline', 'museum', 'insights', 'profile', 'tasks', 'calendar', 'system'];
|
||||||
const t = (key, values) => LifeI18n.t(key, values);
|
const t = (key, values) => LifeI18n.t(key, values);
|
||||||
|
|
||||||
function readDraft() {
|
function readDraft() {
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
if (mod && e.key.toLowerCase() === 'k') { e.preventDefault(); toggleLauncher(); }
|
if (mod && e.key.toLowerCase() === 'k') { e.preventDefault(); toggleLauncher(); }
|
||||||
if (mod && e.key.toLowerCase() === 'f') { e.preventDefault(); openSearch(); }
|
if (mod && e.key.toLowerCase() === 'f') { e.preventDefault(); openSearch(); }
|
||||||
if (mod && e.key.toLowerCase() === 's' && document.querySelector('#entry')) { e.preventDefault(); archiveToday(); }
|
if (mod && e.key.toLowerCase() === 's' && document.querySelector('#entry')) { e.preventDefault(); archiveToday(); }
|
||||||
if (e.altKey && /^[1-7]$/.test(e.key)) { e.preventDefault(); openApp(appIds[Number(e.key) - 1]); }
|
if (e.altKey && /^[1-8]$/.test(e.key)) { e.preventDefault(); openApp(appIds[Number(e.key) - 1]); }
|
||||||
if (e.key === 'Escape') { closeSearch(); document.querySelector('#launcher')?.classList.add('hidden'); document.querySelector('#calendar')?.classList.add('hidden'); document.querySelector('#life-context')?.remove(); }
|
if (e.key === 'Escape') { closeSearch(); document.querySelector('#launcher')?.classList.add('hidden'); document.querySelector('#calendar')?.classList.add('hidden'); document.querySelector('#life-context')?.remove(); }
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
Loaded 3 of 11 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user