【Dataview Script】列出无效链接
最近在整理笔记,多软件协同操作笔记文件,移动、修改、批量编辑……因为路径变化导致一些笔记内链位置对应不上就非常正常。为了快速定位到这些问题,就写了个小脚本来解决。
/**
* 列出所有无效内链
* @author: 稻米鼠
* @description: 列出所有笔记中的无效内链
* @created: 2024-05-18
* @updated: 2024-05-18
* @version: 0.0.1
*/
// 遍历所有笔记
dv.pages().forEach(p=>{
// 所有外链,无协议(非网络链接),不存在对应文件
const links = p.file.outlinks.filter(l=>!/^\w+:\/\//.test(l.path)).filter(l=>!app.vault.fileMap[l.path])
if(!links.length) return
// 输出文件链接
dv.span(p.file.link)
// 输出无效内链列表
dv.container.innerHTML += `<ul>${links.map(l=>{
const linkItem = '<code>'+l.path+'</code>'+(l.subpath ? ' # '+l.subpath : '')
return `<li>${linkItem}</li>`
}).join('\n')}<ul/>`
})