Skip to content

视图

视图是 你自己定义的任务列表。你写一条筛选条件,符合条件的任务就会自动出现在这个视图里。

不想自己写规则?

把这份给 AI 看的规则文档发给任意 AI 助手(ChatGPT、Claude、Gemini 都行),用自然语言告诉它你想看什么样的任务,它会直接给你写好规则,复制进 Rule 框即可:

https://tasks.hamsterbase.com/view-rules.txt

适合用来保存内置列表覆盖不到的清单,比如:

  • 所有打了 work 标签、并且已经过期的任务
  • 收件箱里既没打标签、也没排时间的任务
  • 「阅读」区域下被搁置很久的内容

在哪里找到

视图在 桌面端侧边栏 下方的 Views(视图) 区块,点击右侧的 + 就能新建一个视图。

创建一个视图

  1. 在侧边栏的 Views(视图) 区块点击 +
  2. 在页面顶部给视图取一个名字。
  3. 打开右侧详情面板,在 Rule(规则) 框里写筛选条件。
  4. 写完后列表会自动出现匹配的任务。

如果规则留空,主区域会显示一份 「起步规则」清单,点一下就能直接填进去 —— 不会写规则也能直接用。

侧边栏里的视图可以拖动排序;不想要了,用详情面板的 菜单删除即可。

写规则

规则用来描述「什么样的任务应该出现在这个视图里」。每个任务用 item 表示,你只要写出对它的判断条件即可。

例如:

js
item.status === 'created' && item.tags.includes('work')

意思就是:状态是「未完成」、并且带有 work 标签 的任务。

可以用的字段

字段表示的含义
item.title任务标题
item.notes备注
item.status状态:'created' 未完成 / 'completed' 已完成 / 'canceled' 已取消
item.tags标签列表
item.startDate开始日期(没设置时为 null
item.dueDate截止日期(没设置时为 null
item.completionAt完成时间(未完成时为 null
item.createdAt创建时间
item.parent所属位置:'inbox' 收件箱 / 'project' 项目 / 'area' 区域 / 'heading' 项目标题 / 'task' 子任务
item.projectTitle所属项目的名字
item.areaTitle所属区域的名字

可以用的关键词

写日期相关的规则会用到这几个内置词:

关键词表示
TODAY今天
DAY一天的长度(用来写「7 天后」这类条件)
SOMEDAY「Someday」—— 任务被搁置到「以后某天」

可以用的写法

写法用来做什么
===!==等于、不等于
>>=<<=比较大小(日期、时间)
&&||!且、或、非
item.tags.includes('x')标签里包含 x
item.title.includes('x')标题里包含 x
item.tags.length标签的数量
... === null判断某个日期字段是不是「没设置」

不会写也没关系:在规则文档面板里挑一个起步规则点一下就能填进去,再照葫芦画瓢改一改即可。

起步规则速查

想要看到的任务规则
未完成的item.status === 'created'
已完成的item.status === 'completed'
在收件箱item.parent === 'inbox'
现在可以做(Anytime)item.status === 'created' && (item.startDate === null || item.startDate <= TODAY)
搁置到 Somedayitem.startDate === SOMEDAY
已经过期item.dueDate !== null && item.dueDate < TODAY
7 天内到期item.dueDate !== null && item.dueDate < TODAY + 7 * DAY
打了 work 标签item.tags.includes('work')
属于某个项目item.parent === 'project'

几个实用例子

工作相关、3 天内要交的任务

js
item.tags.includes('work') &&
  item.status === 'created' &&
  item.dueDate !== null &&
  item.dueDate < TODAY + 3 * DAY

收件箱里没打标签、也没排时间 —— 该整理一下了

js
item.parent === 'inbox' && item.tags.length === 0 && item.startDate === null

「阅读」区域里的所有任务

js
item.areaTitle === 'Reading'

最近 30 天完成的任务

js
item.status === 'completed' &&
  item.completionAt !== null &&
  item.completionAt > TODAY - 30 * DAY

进入视图后,列表是「冻结」的

视图的任务列表 在你打开它的那一刻就固定下来,之后只有重新打开该视图或修改规则才会重新匹配。

也就是说:如果你在视图里勾选完成了某个任务、或者改了它的日期,让它不再符合规则,这个任务依然会留在当前列表里,直到你离开再回来。

这是有意为之 —— 这样你刚做完的任务不会在眼前突然消失,看起来更稳定。

规则写错了怎么办

如果规则写错了(比如括号没闭合、引用了不存在的字段),详情面板会在 Rule 框下方显示一条提示,告诉你哪里出了问题;主区域会回到起步规则文档,等你修好再继续。

视图存在哪里

视图和你的任务保存在同一个加密数据库里。Pro 和 Lifetime 用户的视图会随着云同步在设备间共享;免费版(仅本地)则只保留在创建它的那台设备上。

旧版本应用打开新视图

如果某个视图是用更新版本的应用创建的,旧版本会拒绝打开和编辑它,并提示你升级应用 —— 这是为了避免新字段或写法被悄悄丢失。