Skip to content
WfssllPublic

About

日序 Daymark:离线待办、每日心得、打卡计划与提醒,支持 WebDAV 同步和桌面小窗。MIT 开源桌面应用。

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

日序 Daymark

给每一天留一点空间。 一个以本地记录为基础的桌面待办与每日心得应用,左侧按日期回看,中间记录要做的事,右侧留下自己的收获。可选 WebDAV 同步,让自己的电脑共享同一份内容。

日序 1.3:目标仪表盘与每日完成记录

截图使用独立的演示数据;首次打开的软件是空白的个人空间。

直接使用

下载最新版本 · 源码仓库

Mac Apple Silicon 用户:从下载页获取 Daymark-1.5.0-mac-arm64.dmg(本地构建位于 release/1.5.0/),将 Daymark 拖到 Applications / 应用程序,随后从应用程序文件夹启动。也可以下载并解压应用 ZIP,直接打开其中的 Daymark.app。从旧版更新时先退出旧应用,再替换应用;已有任务和心得会保留,新字段会自动补齐。

本地构建未使用 Apple Developer ID 签名和公证。如果从网络分发后 macOS 阻止首次打开,确认软件来源后,按系统提示在“系统设置 → 隐私与安全性”中允许打开。正式公开发行建议由维护者使用自己的证书进行签名与公证。请不要关闭系统的全局安全检查。

Windows 与 Linux 的构建配置已提供,需在对应系统或 GitHub Actions 上构建。这两种平台尚未在本机验证。

功能

  • 三栏布局:日期导航、每日待办、每日心得。
  • 时间归档:日 / 周 / 月 / 年分组;默认倒序,最新日期在前;支持正序。周以周一开始,跨年也按自然周归档。
  • 按天保存:任何分组下选择的仍是一个具体日期,任务与心得不会因视图切换而改变归属。日视图直接列出每一天;周、月、年视图按对应周期归档,可展开或收起分组。
  • 日期导航:折叠整个左栏,折叠分组,回到今天,前一天 / 后一天,打开任意日期。
  • 逐行编辑:左边 + 在当前行后插入,− 删除,序号自动更新;勾选完成;普通 / 重要 / 紧急优先级;拖动或用上下按钮排序。
  • 任务筛选:全部、待完成、已完成,以及当前日期的完成进度。
  • 时间与提醒:每行优先级左侧可设置时间,默认不设置;支持 00:00–23:59 与 24:00,后者表示次日零点。提醒开关与时间放在同一弹窗。
  • 桌面今日小窗:主区顶部按钮或全局快捷键开启;拖动标题栏移动,拖动窗口边缘调整大小,自动记住位置与尺寸。可选择角落和置顶,显示今天未完成任务,可直接勾选完成。关闭主窗口后仍可使用。
  • 小窗背景:素笺、晨雾、暮色三个预设,可自选颜色或 PNG / JPEG / WebP 图片。小窗右上角的调色板按钮和主窗口设置都可调整;图片复制到本地配置,移动或删除原图不影响背景。
  • 可编辑标题:直接修改每天的主标题和心得标题,清空后显示默认标题;右侧心得栏也可隐藏与展开。
  • 目标仪表盘:右上角图表图标,位于 WebDAV 状态左侧;目标总数、已完成数、完成比例、有目标的天数,以及全年每日足迹。日 / 月 / 年切换,年度支持逐月汇总和全年逐日列表,可点击日期继续查看目标。
  • 全局记录本:右上角记录本图标,先收集尚未安排日期的目标。支持多行内容、优先级、完成、筛选、删除撤销;选定日期后移入当天待办,保留同一个目标身份与建立日期。搜索、备份和 WebDAV 均包含全局目标。
  • 统一快捷键设置:所有应用快捷键集中在“设置与备份 → 全部快捷键”,点击后录制按键,可清除、单项恢复或全部恢复默认。检测重复设置,保留当前有效配置;小窗全局键可以自由选择组合键。
  • 延续未完成:把更早日期中有文字的未完成任务移动到当前日期。保留旧日心得和已完成任务,移动后可以撤销。
  • 紧凑心情选择:日期右侧只显示当前心情,点击展开彩色选项,支持键盘选择和清除,增加心得写作空间。
  • 打卡计划:右上角日历勾选图标,可设定开始日期、天数或周数,以及每天固定时间和提醒;默认每天,也可选工作日、周末或自定义星期。按日期生成普通待办,与每日列表、小窗和仪表盘一致。
  • 完成音效:完成一项播放轻快双音,当天有内容的待办全部完成播放更欢快的小和弦。设置中可关闭、调整音量、分别选择 MP3 / WAV 音乐和恢复默认。
  • 每日心得:自由书写、心情记录、插入复盘模板、字数统计。Markdown 预览支持标题、粗体、行内代码、列表行和引用,HTML 作为文字显示。
  • 搜索:查找所有日期里的任务和心得,点击结果回到对应日期。
  • 个性设置:浅色 / 深色 / 跟随系统,四种主题色,系统 / 衬线 / 等宽字体,14–22 px 字号,可调整心得栏宽度。
  • 自动保存:输入后自动写入本地,退出窗口前等待最后一次写入完成。保存失败会持续显示提示,可重试或导出当前内容。
  • 备份与迁移:JSON 全量备份与恢复,Markdown 导出。恢复前显示备份内容数量并要求确认替换。
  • 离线与隐私:不需要 Daymark 账号,无埋点、无远程字体。只有主动配置 WebDAV 时才把内容发送到自己指定的服务。浏览器预览数据与桌面版数据相互独立。

WebDAV 同步

在“设置与备份 → 电脑之间同步”填写已有网盘或 NAS 的 WebDAV 文件夹地址、用户名和密码 / 应用专用密码。地址要指向已经存在且可写的文件夹;应用会在其中建立 daymark/workspace.json。先测试连接,再立即同步。其他电脑填写相同地址和账号即可;需要账号的是你选择的存储服务,不需要注册 Daymark。

科技云盘请填写 https://pan.cstcloud.cn/DAV/个人文件/,也可以用对应的百分号编码路径,末尾不用加 zotero/。1.1.1 会自动将这个服务的 HTTP 地址改为 HTTPS。支持 Basic 与 Digest 认证;同站点路径跳转和同主机 HTTP 升级可处理,跨站跳转和 HTTPS 降级会停止。此前 1.1.0 的 HTTP 跳转报错与仅支持 Basic 认证的问题已修复。

同步任务、完成状态、时间、提醒开关、心得、心情和标题;主题、字号、面板开关与小窗位置各电脑独立。两边的不同修改尽量自动合并;同时修改同一段心得等内容时,弹窗让你选择本机、远端,或将两份心得都留下。不会直接覆盖冲突内容。不同电脑各自执行已开启的提醒,因此两台同时运行时都可能提示。

1.5 加入计划的固定时间与提醒,数据格式升级为版本 5,仍可读取旧版 1 / 2 / 3 / 4 的文件与备份。使用同一 WebDAV 的电脑都应升级到 1.5 或更新版本;旧应用不能读取新格式,会停止同步。快捷键属于设备设置,不通过 WebDAV 同步。一个电脑安排目标日期、另一个修改内容时,会合并为同一个目标;两边安排到不同日期时要求选择,避免重复建立。

默认使用 HTTPS。仅在明确勾选后允许 HTTP;HTTP 不加密用户名、密码和内容。可开启每 5 分钟自动同步,应用必须保持运行。未勾选“记住密码”时仅保留在当前进程,重启后需重新输入;勾选后通过系统安全存储加密保存。不提供安全存储的平台会拒绝保存密码。密码不会写进同步内容或导出的备份。

为避免两台电脑互相覆盖,服务必须支持 强 ETag 和条件写入(If-Match / If-None-Match);不支持时会停止同步并提示原因。测试连接只验证文件夹访问,首次实际同步才验证读写与版本保护。已经在本地测试服务上验证多设备合并、冲突与并发保护,并经用户授权在科技云盘验证隔离测试文件的读写与条件更新。

提醒与后台使用

到点会弹出应用自己的桌面提示,并尝试发送系统通知。关闭主窗口后,日序保留在菜单栏 / 系统托盘,提醒和自动同步继续工作;从托盘菜单选择“退出日序”才完全退出。退出或电脑休眠期间不会按时提醒,再次运行或唤醒后会提示尚未提醒的过期任务。提醒按照运行电脑的本地时区执行,不会自动唤醒电脑或开机自启。

当前未签名的 Mac 构建以应用自己的提醒弹窗为可靠提示方式;原生 macOS 通知需要签名及系统许可,不能保证出现。参见 Electron 通知说明。

桌面今日小窗

小窗默认全局快捷键为 ⌘ + Shift + 空格(Windows / Linux 为 Ctrl + Shift + 空格)。在其他应用中、主窗口关闭后或小窗隐藏时都可切换;日序必须仍在运行。在“设置与备份 → 全部快捷键”可以录制自己的组合键,或清除快捷键。录制期间暂停小窗全局键,结束、取消、关闭窗口后恢复;系统占用时会显示提示,更换失败不会取消原来可用的快捷键。

小窗关闭按钮只隐藏小窗。位置、大小、背景和快捷键保存在当前电脑,WebDAV 不会上传这些配置;JSON 内容备份也不包含背景图片。外接屏断开后,下次启动会把小窗放回可见屏幕范围。

快捷键

以下为默认按键。所有应用快捷键均可在同一设置区修改;界面上的按键提示随设置更新。任务行快捷键在任务输入框内生效,仪表盘、记录本等入口在主窗口内生效,小窗键为系统全局快捷键。文字输入的复制、粘贴和撤销仍按系统编辑方式使用;“撤销删除或延续”用于输入框外。

操作 快捷键
全局显示 / 隐藏今日小窗 ⌘ / Ctrl + Shift + 空格(可更换)
目标仪表盘 ⌘ / Ctrl + Shift + G
全局记录本 ⌘ / Ctrl + Shift + I
打卡计划 ⌘ / Ctrl + Shift + P
设置与备份 ⌘ / Ctrl + ,
关闭弹窗 Esc
当前任务后新增 Enter
任务内换行 Shift + Enter
上移 / 下移 Alt + ↑ / ↓
删除当前任务 Alt + Backspace
搜索 ⌘ / Ctrl + K
新增任务 ⌘ / Ctrl + N
折叠 / 展开日期栏 ⌘ / Ctrl + B
立即保存 ⌘ / Ctrl + S
撤销删除或延续 提示条中的“撤销”;输入框外也可 ⌘ / Ctrl + Z

输入框内的撤销仍由系统文字编辑处理。删除和延续的撤销提示保留约 15 秒。

仪表盘与全局目标

仪表盘默认按计划日期统计,例如为未来周一安排的任务计入周一。切换为建立日期后,可以查看哪一天写下了多少目标,包括尚未安排日期的全局目标。新目标记录建立日期;旧任务没有该字段时,按原计划日期计入。空白行不计入,没有目标的日期显示“未设目标 / —”,与有目标但完成 0% 区分。

月和年的比例为“已完成目标总数 ÷ 有内容的目标总数”,不会对每日百分比简单取平均。全年足迹支持悬停查看日期、数量和比例,点击后进入当天详情。下面默认列出设有目标的日期,也可显示空白日期;年视图可选择逐月汇总或全年逐日记录。这是当前保存目标的完成状态;删除或移动目标后统计会随之更新。

全局记录本用于暂时没有日期的想法和目标,点击“记下目标”建立记录。已有条目的编辑和完成状态自动保存。安排日期会移动目标,不复制一份;也可以直接“安排并打开”相应日期。删除提供撤销,已完成目标可通过筛选回看。

全局记录本

打卡计划与完成音效

“30 个打卡日”按选择的星期累计 30 次:默认连续 30 天,选择工作日后跳过周六、周日,不扣减这 30 次。“4 周”从开始日期起覆盖 28 个自然日,只在所选星期安排任务;全部星期为 28 次,工作日为 20 次。可先查看预计日期与打卡次数,再建立计划。工作日指星期一到星期五,不自动识别法定节假日或调休。

建立计划时可设置每天固定的小时、分钟和“到点提醒”,默认不设置时间,支持 00:00–23:59 与 24:00(次日零点)。提醒仅在实际安排的打卡日期生效;选择工作日后不会在周末生成额外提醒。计划卡片的“时间与提醒”可以统一修改今天和未来尚未完成的打卡,过去和已完成记录保留原设置;选“不设时间”会同时关闭提醒。时间和开关随计划一起备份、导出和通过 WebDAV 同步,各电脑按当地时区提醒。

计划的每日固定时间与提醒

在计划面板直接完成今日打卡,或在当日待办 / 小窗勾选同一个任务。足迹按钮可进入对应日期回看和补记。结束计划会取消未来尚未完成的任务,保留今天、过去与已完成的记录。打卡计划、任务与完成状态包含在 JSON / Markdown 和 WebDAV 中;导入 JSON 会恢复关联。

在“设置与备份 → 完成音效”分别试听、更换单项完成和当天全部完成的声音。关闭主窗口后在小窗中完成任务,也会播放;取消勾选、修改文字、同步、恢复备份不播放。当天全部完成时只播放庆祝音效,空白行不阻止庆祝。

自选音乐支持 10 MB 以内的 MP3 / WAV,复制后保存在本机,播放开头最多 8 秒,新音效会停止上一段。试听不受总开关限制,以便关闭自动播放时挑选音乐。音量、开关和音乐不通过 WebDAV 同步,也不包含在内容备份中。音效需电脑音量与输出设备正常。

数据放在哪里

完整路径可在软件“设置与备份”中查看。

  • macOS:~/Library/Application Support/Daymark/workspace.json
  • Windows:%APPDATA%/Daymark/workspace.json
  • Linux:~/.config/Daymark/workspace.json(受系统 XDG 配置影响)

保存使用临时文件与原子替换,串行处理写入,保留 workspace.json.bak 上一版本。backups/ 保存最近 30 个备份日的快照,并非严格的连续 30 个自然日。主文件损坏时尝试恢复上一版本,并保存损坏文件供排查;无法恢复时不会创建空白数据覆盖原文件。

本地文件是明文 JSON。它们受操作系统账户和磁盘权限保护,并不提供应用层加密。建议定期导出 JSON 到另一处存储,尤其在更换设备或卸载前。浏览器预览使用当前来源的 localStorage,不具有桌面文件快照备份。

同一数据目录中的 widget-preferences.json 保存小窗位置、尺寸、背景和快捷键。选择的图片缩小至最长边不超过 1600 像素后作为 PNG 副本保存;原图大小限制为 10 MB,转换后的图片限制为约 4.5 MB。更换电脑时可重新选择喜欢的背景。

开发与打包

需要 Node.js 22.12+ 或兼容更新版。依赖的确切版本锁定在 package-lock.json。

npm ci
npm run dev           # 浏览器预览
npm run desktop       # 完整桌面应用
npm test              # 核心逻辑与存储测试
npm run test:desktop  # 真实桌面交互测试,使用临时隔离数据
npm run test:features # 同步、提醒、小窗、标题与旧数据兼容测试
npm run test:widget   # 全局快捷键、背景图片、尺寸位置记忆与重启测试
npm run test:plan-reminders # 固定计划时间、旧计划修改、实际提醒和重启验证
npm run test:checkins # 心情、打卡、音效与音乐副本的实际桌面验证
npm run test:planning # 仪表盘、全局记录本、自定义快捷键与重启测试
npm run dist:mac      # 当前配置:Mac Apple Silicon DMG + ZIP
npm run dist:win      # Windows x64 安装程序 + 便携 EXE
npm run dist:linux    # Linux x64 AppImage + DEB

产物输出到 release/。Mac Intel 构建可在 Mac 上运行:

npm run build
npx electron-builder --mac --x64 --publish never

Electron 二进制首次启动或打包时需要下载。如所在网络使用代理,请为 Node 和 electron-builder 配置对应代理,或参照 Electron 官方说明使用可信镜像并校验下载;不要通过关闭 TLS 验证来解决下载问题。

源码结构:

src/                 React 界面与保存调度
shared/model.js      日期、数据验证、延续任务、Markdown 导出
shared/sync.js       基于上次同步记录的合并与冲突选择
electron/            桌面窗口、限定 IPC、本地文件存储
tests/               模型 / 存储 / 桌面交互测试
assets/              应用图标
docs/                设计说明、验证记录与截图
.github/workflows/   Mac / Windows / Linux 构建工作流

桌面版使用 context isolation、renderer sandbox、关闭 Node integration、固定 IPC 方法、调用方验证和 CSP;不加载远程网页,也不执行心得里的 HTML。

开源发布

采用 MIT License。项目已包含 贡献指南、锁定依赖和跨平台构建工作流。

将源码推送到自己的 GitHub 仓库后,可手动运行 Build desktop packages,也可推送 v* 标签触发构建。产物作为 GitHub Actions artifacts 保存,不会自动公开创建 Release。正式发行前请在目标系统验证启动、导入导出和数据恢复,并配置自己的签名与公证信息。项目发布于 Wfssll/daymark,安装包见 Releases。仓库不含个人任务、WebDAV 密码或签名证书。Mac Apple Silicon 安装包已验证;其他平台的构建配置供开发者使用,构建成功不代表已通过实机交互验证。

设计参考

保留三栏的清晰分工,并选择适合个人每天记录的功能:

更详细的取舍见 设计说明。

About

日序 Daymark:离线待办、每日心得、打卡计划与提醒,支持 WebDAV 同步和桌面小窗。MIT 开源桌面应用。

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages