본문 바로가기
옵시디언(Obsidian)

옵시디언 사용법 - 내용이 동적으로 구성되는 템플릿(feat. 자동으로 날짜가 정리되는 주간 업무 양식)

by 카이로스의시간 2024. 11. 18.

저는 옵시디언으로 주간 업무를 정리합니다. 
 
매주 월요일, 그 주간에 해야할 일을 일자별로 정리해 두는 것이지요. 이런 식으로 노트를 활용하기 위해서는 지난 번 포스트에서 소개한 'Calendar'와 'Periodic note' 플러그인이 무척 유용합니다.
 
여기에서 한 발자국 더 나아가 매주 동일한 양식으로 작성되는 주간 업무 양식을 미리 템플릿으로 만들어두면 업무를 더 효율화할 수 있습니다. 아래처럼요.
 

▲ 이런 식의 양식에서 중요한 점은, 몇 가지 정보가 동적으로 바뀐다는 것이지요. 위의 예시에서 특정 주차에 포함된 날짜(제목으로 기재된 "yyyy-MM-dd")가 매번 달라지는 것처럼요.
 
오늘 포스트에서는 저런 식으로 내용이 동적으로 바뀌어야 하는 경우에 어떻게 '템플릿'화할 수 있을지 알아보겠습니다.
 
 

커뮤니티 플러그인 Templater 설치

커뮤니티 플러그인을 설치하는 방법은 지난 포스트를 참고해 주세요.
 
'Templater'를 검색해 설치하고, 반드시 '활성화(Enable)'까지 해줘야 합니다.
 
이 플러그인은 자바스크립트를 사용해 노트(템플릿)의 내용을 동적으로 구현할 수 있게 해줍니다.
 
 

동적으로 구현하려는 Template 파일 추가

Templater 설치 및 활성화가 완료되면, 동적으로 구현할 템플릿 파일(노트 파일)을 생성합니다. 이 때 노트에는 자바스크립트 코드를 입력해야 합니다.
 
저는 템플릿 파일만 따로 저장해 두는 폴더가 있습니다. [03. Resource > Templates] 폴더인데요, 여기에 노트를 생성하고 아래 코드를 기입했습니다. 

<%*
// 사용자가 선택한 주차 정보를 입력받습니다
let year = await tp.system.prompt("년도를 입력하세요 (예: 2024)");
let week = await tp.system.prompt("주차를 입력하세요 (예: 37)");

// 해당 주의 시작일을 계산합니다
let startDate = moment().year(year).isoWeek(week).startOf('isoWeek');

// 템플릿 제목을 생성합니다
tR += `# ${year}년 ${week}주차 주간 업무\n\n`;

// 7일 동안의 날짜를 생성합니다
for(let i = 0; i < 7; i++) {
    let currentDate = moment(startDate).add(i, 'days');
    tR += `## ${currentDate.format('YYYY-MM-DD')}\n\n`;
    // 각 날짜 아래에 기본 구조를 추가할 수 있습니다
    tR += `### 완료된 업무\n\n`;
    tR += `### 진행중인 업무\n\n`;
    tR += `### 메모\n\n`;
}
%>

▲ 코드가 직관적인 편이지요? 여러분의 용도에 맞게 코드를 튜닝해서 다양한 동적 템플릿을 만들어보세요.
 

 
 

'Templater' 설정

Templater 플러그인을 통해 위에서 저장한 동적 템플릿을 불러오기 위해서는 아래와 같이 설정해 줍니다.

  • Settings → Templater로 이동
  • [Template folder location] 메뉴: 템플릿 파일들을 저장해둔 폴더 지정하면 됩니다. 저의 경우 [03. Resource > Templates 폴더]입니다. 

 
 

동적 템플릿 활용하기

  • 이제 노트를 생성하고, 텅 빈 노트에서 명령어 팔레트(Cmd + P) 열어주세요
  • [Templater: Open Insert Template modal] 검색해 실행합니다.



주간 노트를 생성하려는 연도주차를 프롬프트에 입력하면,

 
 

  • 아래와 같이 해당 주차에 속한 일자들이 소제목으로 기재된 노트가 자동으로 생성됩니다.




멋지지요?
 
템플릿별로 단축키를 지정할 수도 있습니다. [설정 > Templater] 'Hotkey'를 지정하시면 돼요. 저는 주간 업무 템플리셍 [option + W]라는 직관적인 단축키를 할당해 쓰고 있습니다.