Dataview 심화: DataviewJS의 다양한 렌더링 기법
DataviewJS를 활용해 텍스트, 헤더, 표, 그리고 사용자 정의 뷰를 동적으로 렌더링하는 방법을 알아보겠습니다. 다양한 렌더링 방식을 익혀두면 복잡한 정보를 단순화하고, 중요한 데이터 포인트를 시각적으로 강조하는 데에도 큰 도움이 됩니다.
dv.el(element, text)
굵은 텍스트 렌더링
dv.el
함수를 사용하여 HTML 요소 내에 임의의 텍스트를 렌더링할 수 있습니다.
dv.el("b", "굵은 텍스트");
사용자 정의 클래스와 속성 추가
dv.el
함수를 사용하여 요소에 사용자 정의 클래스와 속성을 추가할 수 있습니다.
dv.el("b", "이것은 일부 텍스트입니다", { cls: "dataview dataview-class", attr: { alt: "굵은 텍스트" } });
dv.header(level, text)
dv.header
함수를 사용하여 헤딩(H1-H6)을 렌더링할 수 있습니다.
dv.header(1, "H1");
dv.header(6, "H6");
dv.paragraph(text)
dv.paragraph
함수를 사용하여 문단 내에 임의의 텍스트를 렌더링할 수 있습니다.
dv.paragraph("이것은 일부 텍스트입니다");
dv.span(text)
dv.span
함수를 사용하여 span 내에 임의의 텍스트를 렌더링할 수 있습니다.
dv.span("이것은 일부 텍스트입니다");
dv.execute(source)
dv.execute
함수를 사용하여 임의의 Dataview 쿼리를 실행하고 현재 페이지에 뷰를 포함시킬 수 있습니다.
dv.execute("LIST FROM #태그");
dv.execute("TABLE 필드1, 필드2 FROM #태그");
dv.executeJs(source)
dv.executeJs
함수를 사용하여 임의의 DataviewJS 쿼리를 실행하고 현재 페이지에 뷰를 포함시킬 수 있습니다.
dv.executeJs("dv.list([1, 2, 3])");
dv.view(path, input)
dv.list(elements)
dv.list
함수는 배열이나 데이터 배열을 입력 받아 List를 렌더링합니다. 이는 단순 배열부터 복잡한 쿼리 결과까지 다양하게 활용될 수 있습니다.
dv.list([1, 2, 3])
1, 2, 3의 리스트를 생성합니다.
dv.list(dv.pages().file.name)
모든 파일 이름을 리스트로 생성합니다.
dv.list(dv.pages().file.link)
모든 파일 링크를 리스트로 생성합니다.
dv.list(dv.pages("#book").where(p => p.rating > 7))
평점이 7 초과인 모든 책을 리스트로 생성합니다.
dv.taskList(tasks, groupByFile)
taskList는 특정 조건을 만족하는 Task들을 List로 렌더링합니다. groupByFile
옵션을 사용하여 파일별로 그룹화할 수도 있습니다.
dv.taskList(dv.pages("#project").file.tasks)
프로젝트 태그가 있는 페이지의 모든 Task를 생성합니다.
dv.taskList(dv.pages("#project").file.tasks
.where(t => !t.completed))
프로젝트 태그가 있는 페이지의 완료되지 않은 Task를 생성합니다.
dv.taskList(dv.pages("#project").file.tasks
.where(t => t.text.includes("#tag")))
프로젝트 태그가 있는 페이지의 특정 태그가 포함된 Task를 생성합니다.
dv.table(headers, elements)
dv.table
함수는 테이블 형태로 데이터를 렌더링합니다. 각 행은 배열이며, 행 내의 배열은 불릿 포인트로 표시됩니다.
dv.table(["File", "Genre", "Time Read", "Rating"], dv.pages("#book")
.sort(b => b.rating)
.map(b => [b.file.link, b.genre, b["time-read"], b.rating]))
간단한 책 정보 테이블을 생성합니다.
마크다운 렌더링
Dataview는 결과를 마크다운 형식의 문자열로 반환하는 함수도 제공합니다. 이를 통해 렌더링된 결과를 마크다운 문서 내에서 직접 조작하거나 표시할 수 있습니다.
마크다운 Table
const table = dv.markdownTable(["File", "Genre", "Time Read", "Rating"], dv.pages("#book")
.sort(b => b.rating)
.map(b => [b.file.link, b.genre, b["time-read"], b.rating]));
dv.paragraph(table);
마크다운 List
const markdown = dv.markdownList([1, 2, 3]);
dv.paragraph(markdown);
마크다운 Task List
const markdown = dv.markdownTaskList(dv.pages("#project").file.tasks);
dv.paragraph(markdown);
'옵시디언 활용 > Dataview' 카테고리의 다른 글
Dataview 심화: Dataviewjs의 Utility Method (0) | 2024.02.11 |
---|---|
Dataview 심화: dv.view() (0) | 2024.02.08 |
Dataview 심화: DataviewJS의 Query Method (0) | 2024.02.06 |
Dataview 심화: DataviewJS (0) | 2024.02.01 |
Dataview 쿼리를 간단히 만들어주는 Basic dataview query builder (0) | 2024.01.31 |