옵시디언 활용/Templater

Templater 심화: System Module (tp.system)

반응형

Templater 플러그인의 tp.system 모듈은 시스템 관련 기능을 제공합니다. 클립보드 내용을 검색, 사용자 입력을 요청하는 프롬프트 생성, 선택적 항목 제안을 위한 Suggester 프롬프트 생성이 여기에 포함됩니다.

tp.system.clipboard()

tp.system.clipboard() 함수는 시스템 클립보드의 내용을 검색합니다. 이 기능을 활용하여 사용자는 클립보드에 저장된 정보를 Obsidian 노트에 쉽게 삽입할 수 있습니다.

<% tp.system.clipboard() %>

클립보드 내용 삽입합니다.

tp.system.prompt()

tp.system.prompt() 함수는 사용자로부터 입력을 받기 위한 프롬프트 창을 생성합니다. 이 함수는 사용자 정의 텍스트, 기본값 설정, 멀티라인 입력 가능 여부 등을 지원합니다.

인자

  • prompt_text: 입력 필드 위에 표시되는 텍스트입니다.
  • default_value: 입력 필드의 기본값입니다.
  • throw_on_cancel: 사용자가 프롬프트를 취소할 경우 오류를 발생시킵니다. 기본적으로는 null 값을 반환합니다.
  • multiline: true으로 설정하면, 입력 필드가 여러 줄을 지원하는 텍스트 영역이 됩니다.(기본값은 false)

사용 예시

<% tp.system.prompt("노트 제목을 입력하세요") %>

기본 프롬프트

<% tp.system.prompt("오늘의 기분은 어떠신가요?", "행복") %>

기본 값이 있는 프롬프트

<% tp.system.prompt("오늘의 기분은 어떠신가요?", null, false, true) %>

멀티라인 프롬프트

tp.system.suggester()

tp.system.suggester() 함수는 사용자가 여러 항목 중 하나를 선택할 수 있는 Suggester 프롬프트를 생성합니다. 이 함수는 항목의 텍스트 표현을 정의하는 배열 또는 함수, 항목 배열, 취소 시 오류 발생 여부, 프롬프트의 Placeholder 텍스트, 항목 표시 제한 등을 지원합니다.

인자

  • text_items: 각 항목에 대해 표시될 텍스트의 배열이나 항목을 텍스트 표현으로 매핑하는 함수입니다.
  • items: 각 항목의 값을 올바른 순서로 포함하는 배열입니다.
  • throw_on_cancel: 사용자가 프롬프트를 취소할 경우 오류를 발생시키며, 기본적으로는 null 값을 반환합니다.
  • placeholder: 프롬프트의 placeholder 문자열입니다.
  • limit: 한 번에 렌더링되는 항목의 수를 제한합니다(큰 리스트를 표시할 때 성능을 개선하는 데 유용합니다).

사용 예시

<% tp.system.suggester(["행복", "슬픔", "혼란"], ["행복", "슬픔", "혼란"]) %>

간단한 Suggester

<% tp.system.suggester((item) => item, ["행복", "슬픔", "혼란"]) %>

매핑 함수를 사용한 Suggester (위 예시와 동일)

[[<% (await tp.system.suggester((item) => item.basename, app.vault.getMarkdownFiles())).basename %>]]

파일을 위한 Suggester

<% tp.system.suggester(item => item, Object.keys(app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>

태그를 위한 Suggester

 


 

반응형