0032 笔记统计-Dataview

忽然想看一下自己有多少篇笔记,看看自己上次记笔记是什么时候(咕咕了多久),卷起来!

效果展示:

  • 笔记总数:451
  • 标签总数:71
  • 最早笔记:1078 天前
  • 上次更新:2022/11/11 14:11:59

查询代码

Dataviewjs 代码块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/** @type {number} 最近更新时间 */
let newestTime = 0
/** @type {number} 最早创建时间 */
let oldestTime = Date.now()
/* 遍历所有笔记 */
const pages = dv.pages().filter(e=>{
/**
* 判断文件类型和文件夹名称
* 如果不是 md 后缀的不算笔记
* 如果在 Templates 文件夹下的不算笔记
* 这里用了正则,但是很简单,比如你可以把 AnyFolder 换成任何顶层文件夹的名称
*/
if(e.file.ext !== 'md' || /^(Templates|AnyFolder)/.test(e.file.folder)) {
return false
}
/** @type {number} 如果有更早的创建时间则存储 */
const createdTime = +new Date(e.file.frontmatter.created)
/** @type {number} 如果有更晚的创建时间则存储 */
const updatedTime = +new Date(e.file.frontmatter.updated)
if(createdTime<oldestTime) oldestTime = createdTime
if(updatedTime>newestTime) newestTime = updatedTime
return true
})
/* 弄个列表输出 */
dv.list(dv.array([
"笔记总数:"+pages.length,
"标签总数:"+dv.pages('').file.etags.distinct().length,
"最早笔记:"+Math.round((Date.now()-oldestTime)/864e5)+' 天前',
/** 使用下面这行写法可以显示具体时间 */
// "最早笔记:"+new Date(oldestTime).toLocaleString("zh-CN").split("T")[0],
"上次更新:"+new Date(newestTime).toLocaleString("zh-CN").split("T")[0],
]))