跳转至

计划内容

desc 放任务的描述。

  desc: 任务内容

使用变量

内置变量有这些:

  • 今年的年份 {{year}},今年第几周 {{week_of_year}},今天星期几 {{weekday_zh}}
  • 计划的开始时刻 {{at}}
  • 今日的任务,{{ todo_and_notice }},可以用在一个邮件计划中,每天发邮件给自己
  • 更多变量请到这里查看:内置变量 - PlanTodo(放个计划)

举例说明

  desc: 今年年份用{{year}},今年第几周{{week_of_year-1}},今天{{weekday_zh}}

假设输出的那天是 2024.01.31 号,是第 5 周的星期三,则实际的输出为“今年年份用2024,今年第几周4,今天星期三”

队列模式

每次计划被触发后,会从上往下,输出第一条内容,并删除这一条。desc 为列表时,默认是队列模式。

- desc:
  - 计划1
  - 计划2
  - 计划3
  - 为空时就没有内容输出

适合每隔一段时间,就需要添加内容的情况。

比如,每天看 YouTube 上的英语视频,可以在周末把下一周要听的 YouTube 视频网址,一条条地放入,这样每一天都会输出不同的网址。

轮询模式

有 index 字段则为轮询模式。

每次被触发,按顺序输出内容,如第一天输出第一条,第二天输出第二条。达到最后一条,就重新从第一条开始。

index 后跟一个正整数,代表这次要输出某一条,1 表示指向第一条。

- desc:
  - 计划1
  - 计划2
  - 计划3
  index: 1

适合一系列不同的任务依次循环。

指定具体执行时间

指定执行时间需要增加一个 at 字段,后面跟 hh:mm:ss 这种格式(严格两位),24 小时制,如 06:30:00,14:01:00 。

每天的 8 点半吃药

- desc: 吃药
  every: day
  at: 08:30:00

at 后面也可以跟一些表示时刻的词汇,比如破晓时刻 dawn 、日出时刻 sunrise 、日落时刻 sunset 、入夜时刻 dusk。

还可以使用加法或减法,不过只能有两个操作数,且左边的必须是词汇,右边的必须是一个时长,如“睡觉的时间在天亮前 7.5 小时”:

- desc: 入眠
  every: day
  at: tomorrow_dawn - 7h30min

没有指定具体执行时间的话,则任务的执行时间是在程序生成任务汇总的那一刻,也可以手动指定:at: once

以及,可以通过 at 指定计划的执行时刻应该在另一个计划之后,通过 after_tag 指定,tag 需要替换成具体的名称。

在 tag 对应的计划之后

  at: after_tag

如果 tag 没有对应的计划,则效果和不使用 at 等同;如果 tag 对应了多个计划(被触发的),对于 after 会放到最后一个后面。

目前,使用了 after_tag 的计划,必须放在计划列表最后才能生效,这点将来会进行改进。

任务的顺序主要有两点规则,如果没指定 at,就跟在上一个任务的后面;指定了 at 又分两种情况:at 后面跟了一个时刻,则就在这一时刻执行,不管和其他计划的位置关系是什么样的;at 后面跟 after_tag ,则紧跟在对应任务后面。另有一个特殊规则,第一个任务如果没有指定 at ,因为前面没有其他任务了,所以执行时间就是 at: once