let allFiles = dv.pages()

let ftMd = allFiles.file.sort(t => t.cday)[0]
let total = parseInt([new Date() - ftMd.ctime] / (60*60*24*1000))
dv.paragraph(`==已使用obsidian== **${total}** 天`)

dv.paragraph(`==文件总数== **${allFiles.length}** 个`)

dv.span(`==标签== **${allFiles.file.tags.distinct().length}** 个`)
dv.span("; ")
dv.span(`==文件夹数== **${allFiles.file.folder.distinct().length}** 个`)
dv.span("; ")
dv.span(`==文件别名== **${allFiles.file.aliases.distinct().length}** 个`)


// 统计未创建链接文件的正向链接总数,即broken links counts
const unresolvedLinks  = Object.values(app.metadataCache.unresolvedLinks)
.filter(unresolved => Object.keys(unresolved).length > 0 )
.flatMap(unresolved => Object.keys(unresolved))
.map(f => "[[" + f + "]]");
//console.log(unresolvedLinks)

// 统计入链数为0的文件数,即未被其他页面引用的文件数,即orphaned files counts
const orphanedFiles = allFiles.filter(f => f.file.inlinks.length==0)
//console.log(orphanedFiles)


dv.paragraph("\n")
dv.span(`==正向链接== **${allFiles.file.outlinks.length}** 个`)
dv.span("; ")
dv.span(`==未创建== **${unresolvedLinks.length}** 个`)

dv.paragraph("\n")
dv.span(`==反向链接== **${allFiles.file.inlinks.length}** 个`)
dv.span("; ")
dv.span(`==孤立文件== **${orphanedFiles.length}** 个`)


let mocFiles = dv.pages("#MOC")
let tocFiles = dv.pages("#TOC")

dv.paragraph(`==MOC文件== **${mocFiles.length}** 个,==TOC文件== **${tocFiles.length}** 个`)

let ankiFiles = dv.pages("#review")
let todoFiles = dv.pages("#todo")

dv.paragraph(`==anki卡片== **${ankiFiles.length}** 个,==待办文件== **${todoFiles.length}** 个`)