목차
- 서론: 옵시디언 Templater 스크립트, 자동화의 마법을 경험하세요! 🧙
- 본론 1: Templater 스크립트 기초: 문법, 내장 함수, 사용자 함수
- 본론 2: Templater 스크립트 실전 예제: Daily Notes 자동화, 프로젝트 관리
- 결론: Templater 스크립트, 옵시디언 워크플로우 자동화의 핵심! ⚙️
- Q&A
서론: 옵시디언 Templater 스크립트, 자동화의 마법을 경험하세요! 🧙
옵시디언의 Templater 플러그인은 단순한 템플릿 기능을 넘어, 스크립트를 활용하여 워크플로우를 자동화할 수 있는 강력한 도구입니다. 🧙 Templater 스크립트를 사용하면 반복적인 작업을 자동화하고, 복잡한 템플릿을 만들고, 외부 데이터를 가져오는 등 옵시디언 활용도를 극한으로 끌어올릴 수 있습니다. 이 글에서는 Templater 스크립트의 기초 문법부터 실전 예제까지 자세히 알아보고, 옵시디언 워크플로우 자동화의 세계로 여러분을 안내합니다. ✨
본론 1: Templater 스크립트 기초: 문법, 내장 함수, 사용자 함수 📚
Templater 스크립트는 자바스크립트(JavaScript) 기반으로 작성됩니다. 자바스크립트 문법을 몰라도 걱정하지 마세요! Templater에서 제공하는 내장 함수들을 활용하면 복잡한 코드 없이도 다양한 자동화 작업을 수행할 수 있습니다. 먼저, Templater 스크립트의 기본 구조와 문법을 살펴보겠습니다.
Templater 스크립트 기본 구조:
<%* // 스크립트 시작
// 여기에 자바스크립트 코드 또는 Templater 내장 함수를 작성합니다.
%> // 스크립트 종료
Templater 스크립트는 <%*
와 %>
로 둘러싸여 있으며, 이 안에 자바스크립트 코드 또는 Templater 내장 함수를 작성합니다. 스크립트 실행 결과는 템플릿에 삽입됩니다.
Templater 내장 함수:
Templater는 다양한 내장 함수를 제공하여, 날짜/시간 처리, 노트 생성/수정, 외부 데이터 가져오기 등 다양한 작업을 쉽게 수행할 수 있도록 돕습니다.
- tp.date.now(): 현재 날짜/시간을 가져옵니다. 다양한 형식으로 포맷팅할 수 있습니다.
- tp.file.title: 현재 노트의 제목을 가져옵니다.
- tp.file.create_new(): 새로운 노트를 생성합니다.
- tp.system.prompt(): 사용자에게 입력을 요청하는 대화 상자를 표시합니다.
- tp.web.random_picture(): 랜덤 이미지를 가져옵니다.
- tp.file.move():파일을 이동합니다.
Templater 사용자 함수:
자바스크립트 코드를 사용하여 자신만의 함수를 만들고, 템플릿에서 호출하여 사용할 수 있습니다. 사용자 함수를 활용하면 더욱 복잡하고 다양한 자동화 작업을 수행할 수 있습니다. 사용자 함수를 정의하려면, Templater 설정에서 User System Command Functions 옵션을 활성화하고, 사용자 함수를 저장할 폴더를 지정해야 합니다.
본론 2: Templater 스크립트 실전 예제: Daily Notes 자동화, 프로젝트 관리 🚀
이제 Templater 스크립트를 활용하여 옵시디언 워크플로우를 자동화하는 실전 예제를 살펴보겠습니다.
1. Daily Notes 자동화:
다음은 매일 아침 자동으로 생성되는 Daily Notes에 전날 작성한 노트 목록과 오늘 할 일을 추가하는 템플릿 예제입니다.
---
title: Daily Note - {{tp:date "YYYY-MM-DD"}}
tags: [daily note]
---
## 어제 작성한 노트
<%*
const yesterday = tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-MM-DD");
const files = app.vault.getMarkdownFiles().filter(file => file.basename === yesterday);
if (files.length > 0) {
for (const file of files) {
tR += `- [[${file.basename}]]\n`;
}
} else {
tR += "- 어제 작성한 노트가 없습니다.\n";
}
%>
## 오늘 할 일
- [ ]
- [ ]
- [ ]
코드 분석
`tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-MM-DD")`: 어제 날짜를 계산하는 부분입니다. `app.vault.getMarkdownFiles()`: 볼트 내의 모든 마크다운 파일을 가져옵니다. `filter(file => file.basename === yesterday)`: 파일 이름이 어제 날짜와 일치하는 파일만 필터링합니다. `tR += ...`: 템플릿에 결과를 추가합니다.
2. 프로젝트 관리 템플릿:
다음은 새로운 프로젝트를 생성할 때 필요한 정보를 입력받고, 프로젝트 폴더와 기본 노트를 자동으로 생성하는 템플릿 예제입니다.
<%*
const projectName = await tp.system.prompt("프로젝트 이름을 입력하세요:");
const projectFolder = "Projects/" + projectName;
await tp.file.create_new("# " + projectName, projectFolder + "/index");
await tp.file.create_new("## 작업 목록\n\n- [ ] ", projectFolder + "/tasks");
await tp.file.create_new("## 회의록\n\n", projectFolder + "/meetings");
%>
---
title: {{projectName}} 프로젝트
status: 진행 중
---
## 프로젝트 개요
- 프로젝트 이름: {{projectName}}
- 폴더 경로: [[{{projectFolder}}/index]]
## 관련 파일
- [[{{projectFolder}}/tasks]]
- [[{{projectFolder}}/meetings]]
코드 분석
`tp.system.prompt()`: 사용자에게 프로젝트 이름을 입력받습니다. `tp.file.create_new()`: 새 노트를 생성합니다. 세 개의 노트를 생성하고, 각각 프로젝트 개요, 작업 목록, 회의록 내용을 담도록 했습니다.
결론: Templater 스크립트, 옵시디언 워크플로우 자동화의 핵심! ⚙️
Templater 스크립트는 옵시디언의 활용도를 극대화하고, 반복적인 작업을 자동화하여 생산성을 향상시키는 강력한 도구입니다. 이 글에서 소개된 기초 문법과 실전 예제를 바탕으로, 자신만의 Templater 스크립트를 만들어 옵시디언 워크플로우를 혁신해 보세요! ✨
Q&A
Q1: 자바스크립트를 전혀 모르는데, Templater 스크립트를 사용할 수 있을까요?
A1: Templater에서 제공하는 내장 함수를 활용하면 자바스크립트 지식 없이도 간단한 자동화는 충분히 가능합니다. 복잡한 기능을 구현하려면 자바스크립트 학습이 필요하지만, 온라인에 공개된 다양한 Templater 스크립트 예제를 참고하여 조금씩 수정하면서 시작해 보세요.
Q2: Templater 스크립트에서 오류가 발생하면 어떻게 해결하나요?
A2: Templater 스크립트 실행 중 오류가 발생하면, 옵시디언 콘솔(Ctrl + Shift + I 또는 Cmd + Option + I)에서 오류 메시지를 확인하고, 코드에 문제가 없는지 살펴봐야 합니다. Templater 포럼이나 온라인 커뮤니티에 질문하여 도움을 받을 수도 있습니다.
Q3: Templater 스크립트를 사용하여 외부 API와 연동할 수 있나요?
A3: 네, Templater 스크립트 내에서 자바스크립트의 fetch API 등을 사용하여 외부 API와 연동할 수 있습니다. 이를 통해 날씨 정보, 주식 정보, 뉴스 등 다양한 외부 데이터를 옵시디언 노트에 가져올 수 있습니다.
0 댓글