Skip to content

Repository files navigation

So Todo

So Todo 是一个仅面向 Windows 的待办事项应用,使用 Dioxus 0.7、Tailwind CSS 和 DaisyUI 构建。应用数据存储在本地 SQLite 单文件中,既可直接运行单文件 sotodo.exe,也可构建 Microsoft Store 使用的 MSIX 包。

功能

  • 未完成、日历、已完成三个视图
  • 待办可选择是否设置日期、时间和提前提醒
  • 支持到期时通知,以及到期前指定分钟数通知
  • 未完成待办超过到期时间后标记为已超期
  • 支持不指定日期/时间的待办,并在列表中单独分组
  • 支持每周、每月等重复待办
  • 描述内容支持多行展示,超过两行默认折叠,可点击展开
  • Windows 系统托盘,支持显示主界面和退出
  • 支持最小化到托盘、置顶、无原生标题栏拖动
  • 支持开机自启动
  • 默认跟随系统明暗主题,也可选择 DaisyUI 支持的主题
  • 支持中文/英文界面,并可跟随系统语言
  • 使用 SQLite 单文件存储,无需外部数据库
  • 图标、CSS 等运行时资源内嵌到 exe

数据位置

数据库文件位于:

%USERPROFILE%\.sotodo\sotodo.db

SQLite 通过 rusqlitebundled 特性随应用编译,不需要额外安装 SQLite。

开发

安装 Rust 和 Dioxus CLI 后,可以启动桌面开发服务:

dx serve --platform desktop

运行测试:

cargo test

构建 Windows 桌面输出件:

dx build --platform desktop --locked

输出目录:

target\dx\sotodo\debug\windows\app\sotodo.exe

版本

本地开发版本显示为 develop

通过 GitHub Actions 发布时,tag 名会写入应用内版本号,例如 v0.0.2。新增形如 v* 的 tag 并推送后,会触发 release workflow 构建并发布对应版本。

Microsoft Store 包

安装 Windows SDK 后,可构建未签名的 Store-ready MSIX:

.\scripts\build-msix.ps1 -Version v1.0.0.5

输出文件位于 dist\sotodo.msix。新版本使用四段 tag,例如 v1.0.0.5,并原样写入 MSIX 包版本。为兼容旧 release,三段 tag 仍会按 v0.0.4 -> 1.0.0.4 转换。该包使用 Partner Center 中为 So Todo 分配的正式 Identity,上传 Microsoft Store 后由商店重新签名。商店文案、隐私政策和人工提交清单见 store/

单文件输出

应用运行时需要的 CSS 和图标资源会内嵌到可执行文件中。assets/ 目录仍然是编译期输入,但发布后的应用不依赖外部 assets/ 文件夹。

项目结构

assets/          编译期 CSS 和应用图标资源
packaging/msix/  Microsoft Store 清单和磁贴图标
scripts/         MSIX 构建与资源生成脚本
src/             UI、状态、存储、托盘、自启和通知模块
store/           商店文案、隐私政策和提交清单
Cargo.toml       Rust 依赖和 feature 配置
Dioxus.toml      Dioxus 桌面打包配置
.github/         GitHub Actions 构建和发布配置

About

A simple to-do list.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages