Homemade Source/Dataview snippets

[DataviewJS] 미해결 링크 페이지를 나열하기

반응형

미해결 링크는 Obsidian 노트에서 참조([[...]])하고 있지만, 실제로는 존재하지 않는 파일이나 문서를 말합니다. 이러한 링크는 파일의 외부 링크, 즉 file.outlinks로 표현됩니다. 이를 비어 있지 않은지 확인함으로써 판단할 수 있습니다.

Dataview Snippet

```dataview
TABLE WITHOUT ID 
    rows.file.link AS "파일",
    key AS "미해결 링크"
FLATTEN file.outlinks as outlinks
WHERE !(outlinks.file) AND !(contains(meta(outlinks).path, "/"))
GROUP BY outlinks
```

이 Dataview Snippet의 문제점은 링크된 첨부파일도 미해결링크로 인식한다는 점입니다. dataview에서는 해결할 방법이 없으니 Dataviewjs를 이용해서 출력합니다.

DataviewJS Snippet

```dataviewjs
const unresolvedLinks = dv.app.metadataCache.unresolvedLinks;
let links = [];

for (let file in unresolvedLinks) {
    for (let link in unresolvedLinks[file]) {
        const fileName = file.split('/').pop().replace('.md', '');
        const fileLink = `[[${file}|${fileName}]]`;
        links.push([fileLink, link, unresolvedLinks[file][link]]);
    }
}

dv.table(["파일", "미해결 링크", "언급 횟수"], links);

```


반응형