笔记统计

效果预览

  • 笔记总数:36
  • 标签总数:3
  • 最早笔记:747 天前
  • 上次更新:2023/7/6 18:15:19

代码

/** @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([
  /* 此数目不包含非 md 文件,和模板文件夹中的内容,所以比较严谨的统计结果 */
  "笔记总数:"+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],
]))
©2022~2023 稻米鼠. Last build at 2023/12/5 00:00:21