你的这个诉求跟我的100%契合,关于这个功能我也找了很久,最后自己开发了一个插件实现了,由于是第一次开发插件,还不会发布到插件中心,现在介绍下插件
地址:
odayou/obsidian-task-processing-extension (github.com)
功能
- 命令插入计算事项花费时间的块(会查找当前文档的待办进行计算)
- 命令插入待办/已办事项
- 命令插入当前的时刻
使用方式
在编辑视图下,在具有任务(标准task格式)、花费时刻的文档中,调用命令time total
, 即可在光标出插入任务的计算结果,分别列出每个任务的花费及总花费
演示
- 计算既有任务的时间
- 几个快捷命令演示
由于第一个回帖只能插入一条媒体,演示图可以看代码仓库 screen文件夹下的
局限及注意
- 无法自动实时计算,一方面我没研究出来怎么做,另一方面我觉得时间统计无非就是在想知道的时候触发一下统计,自动计算这些可能属于过渡设计,或者性价比不高的特性
- 第一次开发插件,我目前知道命令只能在编辑视图下插文档内容,预览模式下我还没研究过
- 我设计的功能是:从文档中匹配出待办并计算汇总时间,也就是只能匹配
- [ ]
、- [X]
、- [x]
这种开头的任务,计算指定格式的时刻,包括任务的位置,花费的位置请按照我演示图中进行,你可以按照自己的诉求的匹配格式改下匹配部分的代码,不难 - 如果未来有业余时间改造方向有两点:1. 功能1多次执行会重复插入,将来做成替换 2. 可能交互形式重新设计,比如做成菜单后者自动实时计算的功能 3.可以计算跨日期的时间插
- 注意:如果不改动代码一定要按照我预设的格式记录时间否则会出现计算错误的情况,如 任务名中间不要有空格、任务名和时间中间要有空格、时间格式必须是时刻等,我在下面贴出我的待办数据,自己细品下格式
- [ ] task1 10:21-10:30
- [ ] task1-1 09:00-10:00 13:00-14:00
- [ ] task1-2 15:00-16:10 17:00-18:20
- [x] task2 16:10-17:00
- [ ] tast2-2 10:00-13:00 19:00-20:20