연구노트를 작성할 때 가장 중요한 포인트는 내가 이 노트를 다시 볼 수 있게 하는 것이다.
단순히 폴더만을 기준으로 자료를 정리한다면? 아래의 그림처럼 정리되지 않은 상태의 자료들을 가지고 있을 수 있게 되지만
정리하는 것들의 차원을 높이면?
새로운 방법들로 나의 자료에 접근할 수 있다.
폴더 뿐만아니라, 메타데이터, 인덱스, CMDS 목차, 태그 등 다양한 차원을 사용할 수 있는데
이번에는 연구노트에 작성해두었던 태그를 기준으로 살펴보자.
이렇게 노트를 간단히 썼다고 해보자.
해당 노트에는 4가지 태그가 들어가있다.
Connectivity
Communication
NiklasLuhmann
connect
이런 태그를 사용했던 다른 노트는 없었을까? 라는 궁금증이 들었다면 이를 자동화할 수 있다.
아래 템플릿을 참고하자.
현재 노트에 있는 태그를 포함한 다른 노트 10개(최근)
```dataviewjs
// 현재 문서의 태그 목록을 가져옴
const currentTags = dv.current().file.tags;
// 현재 문서의 태그가 존재하는지 확인
if (currentTags && currentTags.length > 0) {
// 모든 노트를 검색하고 필터링하여 태그를 포함하는 항목을 찾음
const recentPages = dv.pages()
.where(page => page.file.tags && currentTags.some(tag => page.file.tags.includes(tag)))
.sort(page => page.file.ctime, 'desc') // 생성 날짜를 기준으로 내림차순 정렬
.limit(10); // 결과를 10개로 제한
// 결과를 표로 출력
dv.table(["Title", "Tags", "Created"], recentPages.map(page => [
dv.fileLink(page.file.path, false, page.file.name), // 노트의 제목을 링크로 변환
page.file.tags ? page.file.tags.join(", ") : "", // 노트에 포함된 태그를 콤마로 구분하여 문자열로 변환
page.file.ctime // 노트의 생성 날짜
]));
}
```현재 노트에 있는 태그를 포함한 다른 노트 10개(예전)
dataviewjs
// 현재 문서의 태그 목록을 가져옴
const currentTags = dv.current().file.tags;
// 현재 문서의 태그가 존재하는지 확인
if (currentTags && currentTags.length > 0) {
// 모든 노트를 검색하고 필터링하여 태그를 포함하는 항목을 찾음
const oldestPages = dv.pages()
.where(page => page.file.tags && currentTags.some(tag => page.file.tags.includes(tag)))
.sort(page => page.file.ctime, 'asc') // 생성 날짜를 기준으로 오름차순 정렬
.limit(10); // 결과를 10개로 제한
// 결과를 표로 출력
dv.table(["Title", "Tags", "Created"], oldestPages.map(page => [
dv.fileLink(page.file.path, false, page.file.name), // 노트의 제목을 링크로 변환
page.file.tags ? page.file.tags.join(", ") : "", // 노트에 포함된 태그를 콤마로 구분하여 문자열로 변환
page.file.ctime // 노트의 생성 날짜
]));
}위의 두 가지 템플릿의 차이는 생성 날짜를 기준으로 오름차순 or 내림차순으로 정렬하는 것이다. 필요에 따라 수정 날짜를 기준으로도 수행할 수 있다. `ctime` → `mtime`
이 템플릿을 Templater 플러그인을 사용하여 작동시켜 보았다.
어떻게 작동하는지 궁금하다면?
이제 작성하고 있는 아이디어에 포함된 태그를 기준으로
예전의 나와 대화할 수 있다.
(아이디어를 주신 @이재엽님 감사드립니다 )
#11기연구지식관리