ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 커뮤니티 플러그인 3. Templater
    디지털 생산성/옵시디언 2025. 2. 26. 20:00
    반응형

    옵시디언 Templater 완벽 가이드: 자동화된 노트 생성의 마법

    효율적인 지식 관리를 위해서는 일관된 노트 형식과 자동화된 워크플로우가 필수적입니다. 옵시디언의 Templater 플러그인은 강력한 템플릿 시스템을 제공하여 반복적인 작업을 줄이고 노트 작성의 효율성을 극대화합니다. 이 가이드에서는 Templater의 설치부터 고급 활용법까지 상세히 알아보겠습니다.

    디지털 템플릿

    1. Templater 설치 및 기본 설정

    플러그인 설치

    1. 옵시디언 설정(Settings) 열기
    2. 커뮤니티 플러그인(Community plugins) 선택
    3. "Templater" 검색
    4. 설치(Install) 및 활성화(Enable) 클릭

    기본 설정 구성

    주요 설정 항목:
    - 템플릿 폴더 위치: Templates/ (기본값)
    - 트리거 자동 수행: 활성화/비활성화
    - 시스템 명령어 활성화: 활성화/비활성화
    - 단축키 설정
    - 템플릿 자동 적용 규칙

    2. 기본 변수와 명령어

    내장 변수 시스템

    기본 변수:
    - date: 현재 날짜
    - time: 현재 시간
    - title: 현재 노트 제목
    - folder: 현재 노트 폴더 경로
    - file: 현재 파일 객체
    - workspace: 현재 작업 공간

    기본 사용법

    템플릿 예시:
    ---
    created: <% tp.file.creation_date() %>
    modified: <% tp.file.last_modified_date() %>
    title: <% tp.file.title %>
    ---
    
    # <% tp.file.title %>
    
    Created: <% tp.file.creation_date("YYYY-MM-DD HH:mm") %>

    3. 날짜 및 시간 조작

    날짜 형식 지정

    날짜 형식 예시:
    - 기본 형식: <% tp.date.now() %>
    - 커스텀 형식: <% tp.date.now("YYYY-MM-DD") %>
    - 요일 표시: <% tp.date.now("YYYY-MM-DD dddd") %>
    - 상대 시간: <% tp.date.now("relative") %>

    날짜 연산

    날짜 계산 예시:
    - 어제: <% tp.date.yesterday() %>
    - 내일: <% tp.date.tomorrow() %>
    - 일주일 후: <% tp.date.now("YYYY-MM-DD", 7) %>
    - 한달 전: <% tp.date.now("YYYY-MM-DD", -30) %>
    - 특정 날짜 더하기: <% tp.date.now("YYYY-MM-DD", "P1M") %> (1개월 후)

    4. 사용자 입력 처리

    프롬프트 사용

    사용자 입력 예시:
    - 기본 프롬프트: <% tp.system.prompt("제목을 입력하세요") %>
    - 기본값 설정: <% tp.system.prompt("태그를 입력하세요", "#note") %>
    - 다중 선택: <% tp.system.suggester(["옵션1", "옵션2", "옵션3"], ["값1", "값2", "값3"]) %>

    조건부 컨텐츠

    조건문 예시:
    <% if (tp.file.title.includes("Project")) { %>
    ## 프로젝트 정보
    - 상태: 
    - 마감일: 
    <% } else if (tp.file.title.includes("Meeting")) { %>
    ## 회의 정보
    - 참석자: 
    - 의제: 
    <% } else { %>
    ## 기본 정보
    - 
    <% } %>

    5. 파일 및 폴더 조작

    파일 정보 활용

    파일 관련 명령어:
    - 생성 날짜: <% tp.file.creation_date() %>
    - 수정 날짜: <% tp.file.last_modified_date() %>
    - 파일 경로: <% tp.file.path() %>
    - 폴더 경로: <% tp.file.folder() %>
    - 파일 태그: <% tp.file.tags %>

    파일 이름 변경

    이름 변경 스크립트:
    <%*
    const newTitle = tp.system.prompt("새 제목 입력:");
    if (newTitle) {
      await tp.file.rename(newTitle);
    }
    %>

    6. 외부 시스템 통합

    시스템 명령어 실행

    시스템 명령어 예시:
    - 현재 날씨: <% tp.system.command("curl wttr.in/?format=3") %>
    - Git 정보: <% tp.system.command("git rev-parse --abbrev-ref HEAD") %>
    - 스크립트 실행: <% tp.system.command("python scripts/data.py") %>

    API 호출

    HTTP 요청 예시:
    <%*
    const response = await fetch("https://api.example.com/data");
    const data = await response.json();
    tR += `## 최신 데이터\n- ${data.title}\n- ${data.description}`;
    %>

    7. 동적 템플릿 생성

    JavaScript 활용

    <%*
    // 오늘의 요일에 맞는 템플릿 생성
    const days = ["일", "월", "화", "수", "목", "금", "토"];
    const today = new Date();
    const dayOfWeek = days[today.getDay()];
    
    // 요일별 템플릿 설정
    let dailyTemplate = "# " + tp.date.now("YYYY-MM-DD") + " (" + dayOfWeek + "요일)\n\n";
    
    // 요일별 다른 섹션 추가
    if (dayOfWeek === "월") {
      dailyTemplate += "## 주간 계획\n- \n\n";
    } else if (dayOfWeek === "금") {
      dailyTemplate += "## 주간 회고\n- \n\n";
    }
    
    // 공통 섹션 추가
    dailyTemplate += "## 오늘의 할일\n- [ ] \n\n## 메모\n- ";
    
    // 템플릿 적용
    tR += dailyTemplate;
    %>

    데이터 기반 템플릿

    <%*
    // 프로젝트 데이터
    const projects = [
      { name: "프로젝트 A", status: "진행중", priority: "높음" },
      { name: "프로젝트 B", status: "계획", priority: "중간" },
      { name: "프로젝트 C", status: "완료", priority: "낮음" }
    ];
    
    // 진행중인 프로젝트 필터링
    const activeProjects = projects.filter(p => p.status === "진행중");
    
    // 마크다운 테이블 생성
    let projectTable = "## 진행중인 프로젝트\n\n| 프로젝트명 | 우선순위 |\n|------------|--------|\n";
    
    activeProjects.forEach(project => {
      projectTable += `| ${project.name} | ${project.priority} |\n`;
    });
    
    tR += projectTable;
    %>

    8. 템플릿 트리거 자동화

    폴더 기반 자동 템플릿

    폴더별 템플릿 적용 설정:
    1. Templater 설정에서 "Folder Templates" 선택
    2. 폴더와 템플릿 매핑 추가
       - Projects/ 폴더 → project_template.md
       - Meetings/ 폴더 → meeting_template.md
       - Journal/ 폴더 → daily_note_template.md

    파일명 패턴 매칭

    파일명 패턴 기반 템플릿:
    - Meeting-*.md → meeting_template.md
    - Project-*.md → project_template.md
    - YYYY-MM-DD.md → daily_template.md

    9. 실용적인 템플릿 예시

    데일리 노트 템플릿

    ---
    created: <% tp.file.creation_date() %>
    tags: daily, <% tp.date.now("YYYY-MM") %>
    ---
    
    # <% tp.date.now("YYYY-MM-DD") %> (<% tp.date.now("dddd") %>)
    
    ## 🌞 오늘의 목표
    <%* if (tp.date.now("ddd") === "Mon") { %>
    ### 이번 주 목표
    - [ ] 
    <%* } %>
    
    - [ ] 
    
    ## 📅 일정
    <% tp.file.include("[[Calendar]]") %>
    
    ## 📝 메모
    - 
    
    ## 🌙 회고
    ### 오늘 잘한 일
    - 
    
    ### 개선할 점
    - 
    
    ### 내일 할 일
    - [ ] 

    마무리

    Templater는 옵시디언 내에서 노트 작성과 지식 관리를 자동화하는 강력한 도구입니다. 이 가이드에서 소개한 다양한 기능과 기법들을 활용하여 자신만의 효율적인 템플릿 시스템을 구축해보세요.

    특히 JavaScript를 활용한 동적 템플릿 생성, 조건부 컨텐츠 삽입, 그리고 다양한 변수 활용은 노트 작성 시간을 크게 줄이고 일관된 형식을 유지하는 데 큰 도움이 됩니다. 각 기능들을 자신의 워크플로우와 필요에 맞게 조정하면서, 더욱 효과적인 노트 작성 시스템을 만들어보세요.

    이제 여러분도 옵시디언 Templater로 자동화된 노트 생성을 시작할 준비가 되셨나요? 이 가이드를 기반으로 하나씩 적용해보면서, 자신만의 최적화된 템플릿 시스템을 구축해보세요.

    반응형
Designed by Tistory.