【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/>`
})
©2022~2024 稻米鼠. Last build at 2024-10-12 00:00:34