옵시디언 데이터뷰 필드(Field) 총정리

반응형
    반응형

    데이터뷰 Field 총정리

    데이터뷰 Field에 대해 따로 정리합니다.
    필드가 별건 아닌데 헷갈리기도 하고 쿼리문은 오류가 뜨면 왜 안되는지 명확하게 알려주질 알아서 애를 먹습니다. 단어 의미를 정확하게 아는게 오류를 줄이는 방법이 아닐까 싶습니다.

    필드(field) 종류

    데이터뷰에서 얘기하는 필드 종류는 2가지입니다.
    바로 메타데이터와 내장 필드입니다. 메타데이터는 노트정보를 내 스스로 입력해놓는것을 말합니다. 제목, 작가이름, 카테고리,태그 등 내가 입력한대로 노트정보가 생성됩니다. 내장 필드는 옵시디언에서 제공하는 노트정보를 말합니다. 노트 생성날짜, 수정날짜, 노트제목 등이 이에 해당합니다.

    옵시디언에서 메타데이터는 프론트매터와 인라인 필드가 있는데 노트 앞에 쓰이는지 노트 중에 삽입하는지의 차이가 있습니다. 특징이 약간 다르기 때문에 두개로 분리합니다.

    프론트매터(Frontmatter)

    프론트매터(Frontmatter)는 노트 맨 앞에 메타데이터를 기록하는 공간을 말합니다. 제목, 날짜, 태그, 카테고리 등과 같은 내용을 쓰는 공간으로 문서 분류나 관리를 위해 사용합니다.

    작성방법

    문서 맨 처음에 --- 을 치면 자동으로 프론트매터가 생성됩니다.
    예전버전은 직접 코딩처럼 입력해야했지만 규격화되어서 나오고 있습니다.

    프론트매터 종류에는 Text, List, Number, Checkbox, Date, Date&Time, tags, aliaes 으로 8가지가 있습니다. 데이터뷰에 이 8가지 내용을 필드로써 사용하게 됩니다.

    예를 들어, Checkbox를 이용하여 '완성'이라는 이름으로 프론트매터를 만들었다면 데이터뷰에서 '완성' 이 체크된 글만 모아줄 수 있습니다. where을 이용하면 가능한데요. 다음과 같이 입력합니다.

    ```dataview
    Table 완성
    where 완성
    ```

     

    '완성'이 필드로서 역할을 해줍니다. where 은 조건문으로 '완성'이 체크 되어 있는것만 보여달라는 애기가 됩니다. 프론트매터의 내용에 따라서 컬럼 모양을 변경해주면 됩니다.

    인라인 필드

    인라인 필드는 노트내에서 작성되는 메타데이터입니다. 노트정보로써 등록이 됩니다. 문서 중에 필요할때마다 삽입이 가능한 아주 유용한 기능입니다.

     

    사용방법
    메타데이터는 key : value 형태로 되어 있습니다. 프론트매터도 살펴보면 key :value 형태로 되어있습니다.
    인라인 필드도 key : value의 형식을 지키면 되는데요. 노트 중간에 [key :: value] 로 표시합니다. 콜론 두개를 넣어야하는게 큰 특징입니다.

    예를 들어,
    '안녕하세요. 저의 직업은 [직업 ::프로그래머], [직업 :: 프리랜서] 입니다.'
    로 직업을 인라인 필드로 표현해 작성했다면 아래와 같이 데이터뷰로 정리할 수 있습니다.

    ```dataview
    Table 직업
    Where file.name = this.file.name
    ```

    인라인 필드는 메타데이터로써 인식하기 때문에 반드시 해당 노트가 아니더라도 검색이 가능합니다.

    ```dataview
    Table 직업
    Sort 직업 DESC
    ```

     

    제목이 긴 노트가 있어서 직업란이 좁아졌네요 ㅜ

     

     

    내장 필드(Implicit fields)

    내장 필드는 데이터뷰에서 제공하는 자체내장 필드입니다.
    노트에 있는 파일명, 폴더명, 링크, 크기, 날짜 등을 가져올 수 있습니다. 노트에 해당하는 내장 필드가 있고 날짜, 할일목록에 대한 내장 필드가 있습니다. 여기서는 노트와 날짜만 하고 할일목록은 따로 써야할것이 있어서 추후에 완성이 되면 링크 넣어놓겠습니다.

    제공하는 노트 내장 필드는 다음과 같습니다.

    • file.name: 파일명
    • file.folder: 해당 파일이 속한 폴더명
    • file.path: 해당 파일 전체 경로
    • file.link: 해당 파일 링크
    • file.size: 해당 파일 크기
    • file.ctime: 해당 파일 만들어진 시간(시간 + 날짜)
    • file.cday: 해당 파일 만들어진 날짜
    • file.mtime: 해당 파일 수정된 시간(시간 + 날짜)
    • file.mday: 해당 파일 수정된 날짜
    • file.tags: 해당 파일에 존재하는 모든 태그
    • file.inlinks: 해당 파일을 참조하는 다른 노트들 목록
    • file.outlinks: 해당 파일이 참조하는 다른 노트들 목록
    • file.aliases: 해당 노트의 alias
    • file.tasks: 해당 파일에 존재하는 모든 할일목록(체크리스트)

    예를 들어, 노트 생성날짜로 하고 싶다면 다음과 같이 만듭니다.

    ```dataview
    Table file.cday as "날짜"
    ```

    이처럼 날짜를 컬럼이름으로 한 파일별 생성 날짜 목록을 만들 수 있습니다.

    이번엔 날짜 내장 필드입니다.

    • field.year : 날짜 연도
    • field.month : 날짜 월
    • field.weekyear : 날짜
    • field.week : 날짜 월 주차(ex) 셋째주, 넷째주)
    • field.weekday : 날짜 요일 숫자로 표현(월:1,화:2,수:3,목:4,금:5,토:6,일:7)
    • field.day : 날짜 일
    • field.hour : 날짜 시간
    • field.minute : 날짜 분
    • field.second : 날짜 초
    • field.millisecond : 날짜 밀리초

     

    [today :: 2024-04-22T04:19:35.000]

    위와 같이 인라인 필드로 날짜내장필드를 노트에 써놓으면 프론트매터로 인식해서 데이터뷰에서 검색을 해줍니다.

    List today
    Where today.month = date(now).month

    내장 필드는 Where 에만 쓰이는 게 아니라 날짜 필드로 표현도 가능합니다.

    List today.year
    Where today.month = date(now).month

    date(now)는 리터럴(Literals)이라는 것인데 텍스트나 숫자를 상수값으로 나타내는 표현식입니다. date(now)는 오늘 날짜+시간을 의미합니다. 리터럴에 대한 내용은 추후에 포스팅으로 다시 얘기하겠습니다.

    마치며

    데이터뷰에서 말하는 필드에 대한 설명이었습니다. 설명이 길었지만 메타데이터와 내장필드로 이루어져있고 그 항목을 데이터뷰에 넣는다고 생각하시면 될 것 같습니다. 내장 필드는 체크리스트에 대한 내용도 있습니다만 그 내용은 추후에 테스크 항목을 다루면서 한꺼번에 할 예정입니다. 
    데이터뷰 기본문법에 대해서는 아래 포스팅을 참고하시기 바랍니다.

    옵시디언 데이터뷰 기본문법

     

    함께보면 좋은글

    옵시디언 표만들기

    옵시디언 폴더,노트제목에 아이콘 넣는 방법

     

    댓글

    Designed by JB FACTORY

    ....