【Dataview Script】列出未被引用的附件

如题,不过并不是被列出的文件就完全无用,要仔细甄别之后再删除哦~

/**
 * 列出未被引用的附件
 * @author: 稻米鼠
 * @description: 列出未被引用的附件
 * @created: 2024-05-19
 * @updated: 2024-05-19
 * @version: 0.0.1
 */
// 所有附件
const attachments = {}
for(const path in app.vault.fileMap){
  const extension = app.vault.fileMap[path].extension
  if(extension && !/md|canvas|html|css|js/i.test(extension)) attachments[path]=0
}
// 遍历所有笔记
dv.pages().forEach(p=>{
  // 所有外链,无协议(非网络链接)
  p.file.outlinks.filter(l=>!/^\w+:\/\//.test(l.path)).forEach(l=>{
    if(Object.keys(attachments).includes(l.path)) attachments[l.path]++
  })
})

dv.container.innerHTML = `<ul></ul>`
const list = dv.container.querySelector('ul')

Object.keys(attachments).filter(path=>!attachments[path]).forEach(p=>{
  list.innerHTML += `<li><code>${p}</code></li>`
})
©2022~2024 稻米鼠. Last build at 2024-10-18 00:00:26