首页 >> 大全

使用Obsdian Dataview自动生成周报

2023-08-15 大全 30 作者:考证青年

文章目录

需求介绍

每天的工作和学习后,会用记录一篇日报,包含当天的工作、学习等内容。在一周、或者一个月后,需要对这些日报进行汇总,按照“工作”、“学习”、“旅游和美食”等栏目进行分类聚合,方便复盘和工作汇报需要。

需要用到的插件和功能 实现 首先需要配置好Daily Notes插件,包括存放位置和模板位置

编写上一步中配置的模板,包含“学习”、“工作”等栏目,大家可根据自己的需要进行编写。因为基本不会出现很多级标题的情况,因此我把这些都设置成最小标题(设置1级标题会导致下一步很难看)

查询日报。注意打开的js模式。 js查询的代码需要在代码块上标记。使用下面的代码可列出"daily"文件夹下所有的文件名,即所有的日报。

dv.pages('"daily"').forEach(p=>dv.paragraph(p.file.name))

筛选日报。在pages查询和构建视图之间,可以插入一个where来进行筛选,该函数接收一个函数对象,可以筛选出符合条件的查询结果。例如,下面的代码将筛选出最近7天的日报。

用excel生成周报_我的世界自动建筑生成mod_

function latested_days(days){return page => {let creationTime = Date.parse(page.file.ctime);let currentTime = new Date().getTime();let daysAgo = currentTime - days*24*60*60*1000;return creationTime >= daysAgo;}
}
dv.pages('"daily"').where(latested_days(7)).forEach(p=>dv.paragraph(p.file.name))

将内容分类汇总在一起。借助的內联引用功能,例如![[2023-03-29#工作]]即可把3.29的工作记录显示在当前笔记中。在中,也提供了插入文件链接的功能,例如dv.(p.file.name, true),将把查询到的日报內联插入到当前笔记,其中第二个参数true表示內联,设为false则只是普通跳转链接。最后,为了进行分类,需要在把和栏目标题进行拼接,即dv.(p.file.name+"#工作", true) 代码和效果

function latested_days(days){return page => {let creationTime = Date.parse(page.file.ctime);let currentTime = new Date().getTime();let daysAgo = currentTime - days*24*60*60*1000;return creationTime >= daysAgo;}
}
dv.pages('"daily"').where(latested_days(7)).forEach(p => dv.paragraph(dv.fileLink(p.file.name+"#工作", true)))

进一步美化

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了