Skip to content

evallife/todotui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TodoTui - Terminal Todo List Application

一个使用 Rust 构建的现代终端 Todo 应用。

功能特性

✅ 已实现功能

  • 数据模型:完整的 Todo 项目结构,支持标题、描述、优先级、标签等
  • 持久化存储:JSON 文件存储,支持自动备份
  • TUI 界面:现代化的终端界面,使用 ratatui 构建
  • 键盘导航:vim 风格的键位绑定(j/k 上下移动)
  • 项目管理:创建、删除、标记完成状态
  • 筛选功能:全部、活跃、已完成、今日创建的项目
  • 详细信息面板:显示选中项目的详细信息
  • 帮助系统:内置的帮助对话框
  • 状态管理:实时状态反馈和错误处理

🚧 核心架构

src/
├── main.rs           # 应用入口点
├── app.rs            # 应用状态和主逻辑
├── events.rs         # 事件处理和键盘映射
├── todo/             # Todo 数据模块
│   ├── item.rs       # TodoItem 数据结构
│   ├── storage.rs    # 数据持久化
│   └── mod.rs
├── ui/               # UI 组件模块
│   ├── layout.rs     # 布局管理
│   ├── components.rs  # UI 组件
│   └── mod.rs

技术栈

  • ratatui 0.28 - 现代 TUI 框架
  • crossterm 0.28 - 跨平台终端控制
  • serde + serde_json - 数据序列化
  • anyhow - 错误处理
  • chrono - 时间处理
  • uuid - 唯一标识符
  • dirs - 配置目录管理

安装和运行

从源码构建

# 克隆仓库
git clone <repository-url>
cd todotui

# 构建项目
cargo build --release

# 运行应用
cargo run

系统要求

  • Rust 1.70+
  • 支持 UTF-8 的终端
  • Linux、macOS 或 Windows

使用方法

键盘快捷键

导航

  • j / - 向下移动
  • k / - 向上移动
  • g / Home - 跳到第一项
  • G / End - 跳到最后一项
  • - 取消选择

操作

  • n - 创建新的 Todo
  • Enter - 切换完成状态
  • d - 删除选中项目
  • e - 编辑选中项目(待实现)

筛选

  • a - 显示全部项目
  • c - 仅显示已完成项目
  • t - 仅显示活跃项目
  • T - 仅显示今日创建的项目

其他

  • ? - 显示/隐藏帮助
  • / i - 切换详情面板
  • s - 保存更改
  • q / Esc - 退出应用

数据存储

应用数据存储在用户配置目录中:

  • Linux/macOS: ~/.config/todotui/todos.json
  • Windows: %APPDATA%\todotui\todos.json

自动备份文件:todos.json.bak

开发状态

🎯 当前版本:v0.1.0

这是一个功能可用的原型版本,包含核心的 Todo 管理功能。

📋 待开发功能

  • 文本输入对话框(用于新建/编辑)
  • 项目描述编辑
  • 优先级设置
  • 标签管理
  • 截止日期功能
  • 项目搜索
  • 导出功能(Markdown、JSON)
  • 主题和颜色切换
  • 多级分类/项目

🧪 测试

项目包含完整的单元测试:

  • 数据模型测试
  • 存储功能测试
  • 事件处理测试
  • UI 组件测试

运行测试:

cargo test

贡献

欢迎贡献代码!请先查看 TODO 列表和 issue。

开发环境设置

# 安装开发依赖
cargo install cargo-watch cargo-tarpaulin

# 运行开发服务器(自动重新编译)
cargo watch -x run

# 运行测试覆盖率
cargo tarpaulin --out Html

许可证

MIT License


TodoTui - 让终端中的任务管理变得简单高效 🦀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages