Stanza 是受 TODO.txt 启发的纯文本任务管理格式:整个任务列表存放在一个 UTF-8 纯文本文件中,通过状态区块(DOING / WAIT / DONE / DELETE)划分任务生命周期,通过段落式任务承载结构化元数据与自由备注。单文件、纯文本、无锁定。
本仓库是 Stanza 格式规范与官方工具的 monorepo:
| 目录 | 说明 |
|---|---|
| stanza-rfc | 格式规范(当前版本 RFC 1.5.0,草案状态) |
| stanza-wpf | Windows 桌面编辑器(WPF + MVVM,.NET 10,零第三方依赖) |
| stanza-vscode | VS Code 语言支持插件(语法高亮、代码片段、备注折叠) |
# DOING
(A) 2026-08-18 完成登录模块的单元测试 +Apollo #紧急
2026-08-15 创建
先跑通现有测试用例,再补充边界情况
# DONE
2026-08-15 修复列表页滚动卡顿的问题 +Apollo
2026-08-14 创建
2026-08-15 完成
已合入主干,随 2.3 版本发布
- 状态区块:
# DOING、# WAIT、# DONE、# DELETE四种标题行把文件分成进行、等待、完成、回收站四个区域。 - 任务段落:每条无缩进的非空白行开启一个新任务,其下的缩进行是该任务的备注续行。
- 主行元数据:行首依次是可选的优先级(四象限字母
(A)–(D))与截止日期YYYY-MM-DD,描述中内嵌至多一个+项目和零至多个#标签。 - 时间戳行:续行中整行匹配「日期 + 关键字」(创建/完成)的行,记录任务的创建与完成时间。
完整规则见 Stanza RFC 1.5.0,其中第 10 节为解析器实现者准备了正则、伪代码与边界测试用例。
Windows 桌面编辑器,极简设计,结构化查看与编辑 .stanza 文件。侧栏按区块、项目、标签三个维度组织任务;任务卡片按优先级象限着色(A 红 → D 淡灰),标题右侧以 chip 展示标签、项目与截止日期——截止按紧迫度分档着色(逾期红、今天与临近橙、远期灰)。
浏览与导航:单击选中任务,方向键或 vim 键位 hjkl 移动选择(h/l 在侧栏与任务区间横向移动焦点),Shift+方向键 / Shift+jk 扩展多选;侧栏点击或 Alt+1~4 切换区块。DOING / WAIT 始终按(优先级象限 → 截止日期)自动排序,同优先级内可拖拽微调,拖拽时实时预览落点。
编辑任务:双击或 Enter 展开任务卡片——编辑框内只有描述文本,键入 (A)、YYYY-MM-DD、+项目、#标签 记号会被实时捕获为结构化属性;创建/完成时间以 chip 展示,下方编辑纯文本备注。Enter(备注框内 Ctrl+Enter)/ Esc / 点击空白处收起确认。
任务操作:右键任务卡片弹出菜单——状态 / 优先级 / 截止… / 标签… / 项目… / 彻底删除(按当前状态显示可用项),支持多选批量操作。选中任务时底部工具栏切换为任务操作(截止日 / 修改状态 / 废弃);点击勾选框完成(已完成任务再点取消完成)。
截止日期:选中任务后按 Shift+T(或右键「截止…」、底部工具栏按钮)打开日期选择器:手输框支持完整日期(2026-08-18)与月日缩写(08-18 补当年,已过自动滚到明年),预设行直达今天 / 明天 / 一周后,下方四周周历点选即应用(过去日期禁用);「清除截止」一键移除。
标签与项目选择器:选中任务后按 T / P(或右键菜单「标签…」「项目…」)打开弹层,顶部输入框可过滤列表,输入不存在的名称按 Enter 新建并应用;列表中 ✓ 表示选中任务已拥有,Space 或点击切换,底部「清除」一键移除。
设置:左下角「设置」面板——语言(中文 / English)、键盘模式(Windows / macOS:macOS 下 Alt 扮演 Command,应用快捷键整体迁到 Alt)、自定义快捷键(点击录制、冲突转移、一键重置,配置存于 %APPDATA%/Stanza/keymap.json)。
下表为 Windows 键盘模式的默认键位,均可在设置中重录:
| 按键 | 作用 |
|---|---|
Ctrl+O / 拖入窗口 |
打开文件(启动时自动恢复上次文件) |
Ctrl+R |
最近文件:重复按 R 循环高亮,松开 Ctrl 打开 |
Ctrl+Shift+N |
新建文件 |
Ctrl+S |
保存(输入停止约 1.2 秒后也会自动保存) |
N |
新建任务 |
Space |
完成选中任务 |
Shift+P |
优先级面板(1~4 对应 A–D 象限,0 清除) |
Shift+T |
日期选择器(设置截止日期) |
T / P |
标签 / 项目选择器(无选中任务时跳到侧栏对应列表) |
M 或 → |
状态面板(1~4 直达目标区块) |
Backspace / Delete |
移入回收站 / 彻底删除 |
Ctrl+Z |
撤销上一步操作 |
Alt+1~4 |
切换 DOING / WAIT / DONE / DELETE |
hjkl / 方向键 |
移动选择(h/l 横向切换侧栏与任务区焦点) |
Shift+方向键 / Shift+jk |
扩展多选 |
完整交互文档与行为说明见 stanza-wpf/README.md。
cd stanza-wpf
dotnet build
dotnet run --project src/Stanza.App -- TODO.stanza # 启动并打开文件
dotnet test # 解析器测试要求 .NET 10 SDK 或更高版本。发布单文件 exe:powershell -File stanza-wpf/tools/publish.ps1。
.assets/ 下的应用截图由脚本自动截取:启动应用加载演示数据(stanza-wpf/tools/demo.stanza),注入键鼠操作进入各交互状态,按进程所有顶层窗口的并集区域截屏。应用界面变更后重新运行即可更新本文档中的图片:
powershell -NoProfile -ExecutionPolicy Bypass -File stanza-wpf/tools/capture-screenshots.ps1为 .stanza 文件提供与 RFC 严格对齐的语法高亮(区块标题、优先级、日期、项目、标签、时间戳行)、任务/时间戳代码片段和备注折叠。从 Releases 下载 .vsix 安装,详见 stanza-vscode/README.md。
本仓库以 AGPLv3 授权;stanza-vscode 目录例外,以 MIT 授权。




