计划内容
desc 放任务的描述。
使用变量
内置变量有这些:
- 今年的年份 {{year}},今年第几周 {{week_of_year}},今天星期几 {{weekday_zh}}
- 计划的开始时刻 {{at}}
- 今日的任务,{{ todo_and_notice }},可以用在一个邮件计划中,每天发邮件给自己
- 更多变量请到这里查看:内置变量 - PlanTodo(放个计划)
举例说明
假设输出的那天是 2024.01.31 号,是第 5 周的星期三,则实际的输出为“今年年份用2024,今年第几周4,今天星期三”
队列模式
每次计划被触发后,会从上往下,输出第一条内容,并删除这一条。desc 为列表时,默认是队列模式。
适合每隔一段时间,就需要添加内容的情况。
比如,每天看 YouTube 上的英语视频,可以在周末把下一周要听的 YouTube 视频网址,一条条地放入,这样每一天都会输出不同的网址。
轮询模式
有 index 字段则为轮询模式。
每次被触发,按顺序输出内容,如第一天输出第一条,第二天输出第二条。达到最后一条,就重新从第一条开始。
index 后跟一个正整数,代表这次要输出某一条,1 表示指向第一条。
适合一系列不同的任务依次循环。
指定具体执行时间
指定执行时间需要增加一个 at 字段,后面跟 hh:mm:ss 这种格式(严格两位),24 小时制,如 06:30:00,14:01:00 。
每天的 8 点半吃药
at 后面也可以跟一些表示时刻的词汇,比如破晓时刻 dawn 、日出时刻 sunrise 、日落时刻 sunset 、入夜时刻 dusk。
还可以使用加法或减法,不过只能有两个操作数,且左边的必须是词汇,右边的必须是一个时长,如“睡觉的时间在天亮前 7.5 小时”:
没有指定具体执行时间的话,则任务的执行时间是在程序生成任务汇总的那一刻,也可以手动指定:at: once。
以及,可以通过 at 指定计划的执行时刻应该在另一个计划之后,通过 after_tag 指定,tag 需要替换成具体的名称。
在 tag 对应的计划之后
如果 tag 没有对应的计划,则效果和不使用 at 等同;如果 tag 对应了多个计划(被触发的),对于 after 会放到最后一个后面。
目前,使用了
after_tag的计划,必须放在计划列表最后才能生效,这点将来会进行改进。
任务的顺序主要有两点规则,如果没指定 at,就跟在上一个任务的后面;指定了 at 又分两种情况:at 后面跟了一个时刻,则就在这一时刻执行,不管和其他计划的位置关系是什么样的;at 后面跟 after_tag ,则紧跟在对应任务后面。另有一个特殊规则,第一个任务如果没有指定 at ,因为前面没有其他任务了,所以执行时间就是 at: once。