데이터뷰 object 리터럴
데이터뷰는 general 리터럴이나 프론트매터에 있는 정보를 object로 받아들입니다.
object 리터럴은 general 리터럴과 다르게 object에 있는 정보를 기반으로 함수처럼 어떤 값을 출력해주거나 나열해주는 역할을 해줍니다. sort,filter 같은 것도 object에 쓴다면 object 리터럴이라고 할 수 있습니다.
이번 포스팅에서는 파일을 대상으로 자주 쓰는 object 리터럴을 소개할까 합니다.
사실 프론트매터로 검색하는 것에 필요성을 못 느껴 아직 써보진 않았습니다.
contains()
contains은 해당 단어가 있으면 True로 나타냅니다. 단, 대소문자 구분을 합니다. 예를 들어, 아래와 같은 hello 문자가 있으면 다음과 같이 결과가 나타납니다. 참고로, 아래와 같은 문법은 실제 dataview에서는 작동하지 않습니다.
contains('hello','lo') = True
contains('hello','Lo') = False
실제 데이터뷰에서 활용하는 방법은 where을 이용해 활용합니다. 예를 들어, 파일 이름(file.name)에 '파이썬' 이란 문자가 있는 파일만 가져와보겠습니다
Table
where contains(file.name,"파이썬")
containsword(string|list,value)
containsword는 정확한 문자만 찾아줍니다. 대신 대소문자는 무시합니다. containsword를 쓰면 아래와 같이 판정합니다.
containsword("word","word") = true
containsword("word","Word") = true
containsword("words","word") = False
제가 쓰는 경우는 보통 이런 경우입니다.
Data라는 키워드를 가진 파일만 가져오려고 합니다. 그런데 contains로 Dataview, DataScience 도 가져옵니다.
Table
where contains(file.name,"Data")
containsword를 사용하면 이런 혼동을 없애주고 정확한 문자로 이루어진 파일을 찾아줍니다.
Table
where containsword(file.name,"data")
extract(object, key1, key2, ...)
여러 필드의 내용을 추출해줍니다. 예를 들어, 파일 생성날짜와 수정날짜를 확인하려면 아래와 같이 합니다.
Table extract(file,"ctime","mtime")
마치며
옵시디언에서 데이터뷰를 하는 이유는 색인이라서 더 많은 object 리터럴이 있지만 아직까지 한번도 써본 적도 없고 필요성도 느끼지 못했습니다.
만약 다른 object 리터럴을 쓰고 싶다면 아래 가이드 사이트에서 확인하시기 바랍니다.
https://blacksmithgu.github.io/obsidian-dataview/reference/functions/#containswordliststring-value
함께 보면 좋은 글
'ETC > 옵시디언' 카테고리의 다른 글
스캔된 PDF EPUB으로 바꾸기(feat.비추) (1) | 2024.08.29 |
---|---|
아마존 킨들 이메일로 책 넣기 (4) | 2024.08.28 |
[옵시디언] 데이터뷰 General 시간 리터럴 정리표 (1) | 2024.06.08 |
옵시디언 그래프뷰 사용후기 (0) | 2024.06.01 |
[옵시디언] To do list 관리 끝판왕 Tasks 플러그인 사용하기 (0) | 2024.05.16 |