Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

待办清单 (Todo List)

一个基于 Tauri 2 的跨平台桌面待办应用。纯前端实现,数据只存在本地,不依赖任何后端服务。

✨ 功能

  • 待办管理:添加、完成、编辑、删除,支持分类、优先级(高/中/低)、截止日期
  • 筛选与搜索:全部 / 未完成 / 已完成 筛选,实时关键字搜索
  • 主题:亮 / 暗主题一键切换,偏好自动记忆
  • 数据导出:一键导出 JSON 备份
  • 键盘快捷键Enter 快速添加,Ctrl+N / Cmd+N 聚焦输入框,Esc 关闭编辑框
  • 数据兼容:自动迁移旧版数据结构,升级无忧

🛠️ 技术栈

技术
桌面外壳 Tauri 2(Rust 后端)
前端 原生 JavaScript + HTML + CSS,零框架、零打包器
数据 localStorage 持久化,无网络请求
打包 Tauri CLI,NSIS 安装包(Windows)

🚀 开发与构建

npm install      # 安装依赖(@tauri-apps/api、CLI)
npm run dev      # 开发模式(热重载)
npm run build    # 打包安装程序(输出到 src-tauri/target/release/bundle/)

需要 Rust 工具链(Tauri 2 后端编译)。

📁 项目结构

src/                # 前端渲染层
├── index.html      # 主页面(脚本按依赖顺序加载)
├── css/style.css   # 全部样式,CSS 变量实现亮/暗主题
└── js/
    ├── state.js        # 全局状态:todos、筛选、搜索、编辑中 id
    ├── constants.js    # 常量:存储键、优先级排序
    ├── storage.js      # localStorage 读写 + 旧数据迁移
    ├── render.js       # 渲染引擎:过滤、排序、HTML 生成、统计
    ├── todo-crud.js    # 增删改查
    ├── ui.js           # Toast、编辑模态框
    ├── app.js          # 事件绑定、快捷键、初始化
    └── tauri-api.js    # Tauri 桥接(获取平台信息)
src-tauri/          # Tauri 2(Rust)外壳
├── src/main.rs     # 入口
├── tauri.conf.json # 窗口、CSP、打包配置
└── capabilities/   # 权限声明
todo-app.html       # 单文件浏览器版:无需安装,浏览器打开即用

🔒 安全设计

  • 严格 CSP(default-src 'self'),杜绝远程脚本注入
  • render.jsescapeHtml() 对所有用户输入做转义,防 XSS
  • 前端不启用 Node 集成,所有能力通过 Tauri 权限白名单暴露

📄 License

MIT

About

待办清单 - 基于 Tauri 2 的跨平台桌面待办应用

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages