【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>`
})