옵시디언 플러그인/커뮤니티 플러그인

외부에서 노트를 조작할 수 있는 Advanced URI 플러그인

반응형

개요

Advanced URI 플러그인은 외부 애플리케이션에서 옵시디언 노트의 직접적인 조작을 가능하게 하는 플러그인입니다. 이 플러그인은 URI(Uniform Resource Identifier)를 활용하여 외부 앱에서 Obsidian 노트를 열거나, 내용을 추가하는 등 다양한 작업을 수행할 수 있게 해줍니다.

 

Obsidian이 기본적으로 제공하는 URI 기능은 제한적이지만, Advanced URI 플러그인을 통해 사용자는 훨씬 더 다양하고 복잡한 작업을 수행할 수 있습니다. 특히, 이 플러그인의 주요 장점은 외부 도구(예: Alfred, 바로가기.app, 쉘 스크립트 등)를 통해 Obsidian 명령을 실행할 수 있도록 하는 것입니다. 이를 통해 사용자는 외부 애플리케이션과의 연동을 통해 생산성을 극대화할 수 있게 도와줍니다.

Plugin Info
플러그인 명 Advanced URI
플러그인 설명 외부 애플리케이션에서 옵시디언 노트의 직접적인 조작을 가능
플러그인 분류 파일 관리
Github 링크 Github 링크
문서 링크 Advanced URI 문서
옵시디언 링크 플러그인 링크
별점 ⭐⭐

사용 방법

advanced-uri

URI에 값을 전달하는 방식은 다른 URL과 마찬가지로 처리됩니다. 모든 URI는 obsidian://advanced-uri로 시작합니다. 값은 key=value 형태의 키-값 쌍으로 설정되며, 시작 부분과는 ?로 구분됩니다. 키-값은 &로 구분됩니다.

obsidian://advanced-uri?key1=value1&key2=value2

주의: 값이 올바르게 인코딩되었는지 확인하세요.

Vault 파라미터

모든 Obsidian URI는 실행할 볼트를 지정하기 위해 vault 파라미터를 지원합니다. 이를 비워두면 마지막에 사용한 Vault가 사용됩니다.

특정 Vault:

obsidian://advanced-uri?vault=myVault&key1=value1

마지막으로 사용된 Vault:

obsidian://advanced-uri?key1=value1

인코딩

한국어와 특수 문자(예: ?, 공백)는 인코딩이 필요합니다. URL 인코딩 도구를 사용하여 파라미터의 값을 입력하고 인코딩된 값을 사용하면 됩니다.

인코딩 예시:

  • 공백(space) → %20
  • /%2F
  • %%25

myKey와 값 Hello World는 다음과 같이 인코딩되어야 합니다:

obsidian://advanced-uri?myKey=Hello%20World

터미널에서 xdg-open으로 해당 URI를 실행하려면 값이 두 번 인코딩되어야 합니다:

obsidian://advanced-uri?myKey=Hello%2520World

여기서 %%25로 대체됩니다.

문서 열기

뷰 모드

패널을 여는 또는 포커싱하는 모든 작업은 viewmode 파라미터를 지원합니다. 허용되는 값은 다음과 같습니다:

  • source: 편집기를 편집:소스 모드로 설정합니다.
  • live: 편집기를 편집:라이브 프리뷰로 설정합니다.
  • preview: 편집기를 읽기 모드로 설정합니다.

test 라이브러리에서 example 문서를 리딩 모드로 여는 예시입니다.

obsidian://advanced-uri?vault=test&filepath=example&viewmode=preview

오픈 모드

패널을 여는 모든 작업은 openmode 파라미터를 지원합니다. 허용되는 값은 다음과 같습니다:

  • true: 새 패널에서 파일을 엽니다. 파일이 다른 패널에 이미 열려있다면, 해당 패널이 포커스됩니다.
  • false: 현재 패널에서 파일을 엽니다. 파일이 다른 패널에 이미 열려있다면, 해당 패널이 포커스됩니다.
  • window
  • split
  • tab
  • silent: 파일을 열지 않습니다.
  • popover: Hover Editor 플러그인이 설치되어 있고 활성화되어 있어야 합니다.

새 창에서 문서 열기:

obsidian://advanced-uri?vault=test&filepath=example&openmode=true

현재 창에서 문서 열기:

obsidian://advanced-uri?vault=test&filepath=example&openmode=false

 

플러그인 설정에서 기본값을 설정할 수 있습니다. 설정에서 지정한 값은 URI에서 지정함으로써 덮어쓰여집니다.

openmode과 viewmode 혼합 사용

openmodeviewmode와 같은 여러 파라미터는 &로 연결하여 혼합 사용할 수 있습니다.

obsidian://advanced-uri?vault=test&filepath=example&openmode=true&viewmode=preview

test 라이브러리에서 preview 모드로 새 창에서 example 문서를 여는 방법입니다:

문서 위치 정하기

line

문서를 열고 나서, line 파라미터로 편집기 커서를 특정 줄로 이동시킬 수 있습니다.

obsidian://advanced-uri?vault=test&filepath=example&line=10

test 라이브러리에서 example 문서를 열고, 커서를 10번째 줄로 이동하는 방법입니다.

heading

문서를 열고 나서, heading 파라미터로 편집기 커서를 특정 제목으로 이동시킬 수 있습니다.

obsidian://advanced-uri?vault=test&filepath=example&heading=헤딩1

test 라이브러리에서 example 문서를 열고 "헤딩1"로 커서를 이동하는 방법입니다.

block

문서를 열고 나서, block 파라미터로 편집기 커서를 특정 블록ID로 이동시킬 수 있습니다.

obsidian://advanced-uri?vault=test&filepath=example&block=12345

test 라이브러리에서 example 문서를 열고 12345 인덱스의 블록으로 커서를 이동하는 방법입니다:

내용 작성하기

data

data 파라미터는 문서를 열고 난 후 내용을 채울 수 있게 해줍니다. 기본적으로, data의 값은 새 문서에만 채워지며, 이미 존재하는 문서에는 내용이 추가되지 않습니다.

obsidian://advanced-uri?vault=test&filepath=example&data=12345

mode

mode의 값이 new일 경우, 항상 새 문서를 엽니다.

obsidian://advanced-uri?vault=test&filepath=example&data=12345&mode=new

test 라이브러리에서 example라는 이름의 새 문서를 생성하고 "12345"라는 내용을 추가합니다.

obsidian://advanced-uri?vault=test&filepath=example&data=12345&mode=append

mode 값이 append일 경우, data 값이 목표 문서의 끝에 추가됩니다.

obsidian://advanced-uri?vault=test&filepath=example&data=12345&mode=prepend

mode 값이 prepend일 경우, data 값이 목표 문서의 시작에 추가됩니다.

clipboard

clipboard 파라미터는 클립보드의 내용을 문서에 추가할지 여부를 결정합니다.

obsidian://advanced-uri?vault=test&filepath=example&clipboard=true&mode=append

test 라이브러리에서 example 문서를 열고, 클립보드 내용을 example 문서 뒤에 추가합니다.

daily

daily 파라미터는 오늘의 데일리 노트를 열지 설정합니다. daily 값이 true이면 허용되며, false이면 열리지 않습니다.

obsidian://advanced-uri?vault=test&daily=true

daily와 data, mode 혼합 사용

obsidian://advanced-uri?vault=test&daily=true&data=12345&mode=append

test 라이브러리에서 오늘의 데일리 노트를 열고, 문서 내용 뒤에 "12345"를 추가합니다.

daily와 clipboard, mode 혼합 사용

obsidian://advanced-uri?vault=test&daily=true&clipboard=true&mode=append

test 라이브러리에서 오늘의 데잉ㄹ리노트를 열고, 문서 내용 뒤에 클립보드 내용을 추가합니다.

명령어 호출

commandname

commandname 파라미터를 통해 Obsidian 명령을 호출할 수 있습니다.

obsidian://advanced-uri?vault=test&filepath=example&commandname=코드블록&mode=append

test 라이브러리의 example 문서 끝에 "코드블록" 명령을 호출합니다. 

 

이 방법은 명령어를 URI 인코딩을 해줘야되는 불편함있습니다. Advanced URI에서도 commandname보다는 commandid사용을 권유하고 있습니다. 

commandid

commandname을 인코딩하는 대신, commandid를 사용하는 것이 좋습니다. commandid는 수동으로 입력할 필요가 없으며, Advanced URI 명령어 copy URI for command 실행하는 방법으로 얻을 수 있습니다.

명령어로 URI 생성

  • copy URI for command: 명령을 위한 URI 생성
  • copy URI for daily note: 데일리 노트를 위한 URI 생성
  • copy URI for current file: 현재 파일을 위한 URI 생성
  • copy URI for file with options: 옵션을 가진 파일을 위한 URI 복사
  • copy URI for search and replace: 검색 및 교체를 위한 URI 복사

설정 탐색

Obsidian 설정 페이지에서 각 설정 항목에는 settingid가 있으며, Advanced URI를 사용할 때 이 settingid를 사용하여 해당 설정 항목을 직접 열 수 있습니다.

obsidian://advanced-uri?vault=test&settingid=editor
각 커뮤니티 플러그인의 설정 탭은 플러그인의 id를 통해 열 수 있습니다. 이 id는 <your-vault>/.obsidian/plugins/<your-plugin>/manifest.json에서 찾을 수 있습니다.

Obsidian 설정

ID 설명
editor 편집기
file 파일 & 링크
appearance 외관
hotkeys 단축키
about 정보
account 계정
core-plugins 코어 플러그인
community-plugins 커뮤니티 플러그인

Obsidian 저장소

ID 설명
theme-browser 테마 브라우저
plugin-browser 플러그인 브라우저

코어 플러그인 설정

ID 설명
note-composer 노트 컴포저
backlink 역링크
switcher 빠른 전환기
command-palette 명령어 팔레트
daily-notes 데일리 노트
file-recovery 파일 복구
page-preview 페이지 미리보기

설정 섹션

특정 설정으로 바로 가는 것 외에도, 특정 설정 섹션으로 직접 이동하여 해당 섹션이 화면에 바로 보이도록 할 수 있습니다. 이를 위해 settingsection 추가 파라미터를 사용합니다. 이 파라미터의 값은 대소문자를 구분하는 정확한 섹션 이름이어야 합니다.

obsidian://advanced-uri?vault=<your-vault>&settingid=editor
obsidian://advanced-uri?vault=<your-vault>&settingid=editor&settingsection=Behavior

Frontmatter

프론트매터 작업은 frontmatterkey 파라미터를 사용하여 수행됩니다.

frontmatterkey 파라미터 구조

단순 구조

my_item: my_value

my_value 필드를 선택하려면 frontmatterkey=my_item으로 설정합니다.

 

복잡 구조

my_item:
    second_item: my_value

my_value 필드를 선택하려면 frontmatterkey=[my_item,second_item]를 사용합니다. frontmatterkey의 값은 값을 복사하기 위해 접근할 키의 순서대로 나열된 목록입니다. 각 키는 ,로 구분되어야 합니다.

my_item:
    second_item:
    - A
    - B

B를 선택하려면 frontmatterkey=[my_item,second_item,1]을 사용합니다. B는 목록에서 인덱스 1에 있기 때문입니다.

프론트매터 읽기

file identifier와 frontmatterkey 파라미터를 사용하여 프론트매터의 값을 클립보드로 복사할 수 있습니다.

obsidian://advanced-uri?vault=<vault>&filepath=MyFile&frontmatterkey=[my_item,second_item,1]

프론트매터 쓰기

frontmatterkeydata 파라미터를 사용하여 프론트매터에도 쓸 수 있습니다. 키가 존재하지 않는 경우 생성됩니다.

data 파라미터는 프론트매터 필드에 쓰고 싶은 값입니다. 문자열, 숫자, 불리언, 목록 또는 다른 JSON 객체일 수 있습니다.

 

단순 구조

변경 전:

my_item:
  second_item:
    - A
    - B

변경 후:

my_item:
  second_item:
    - A
    - newValue
obsidian://advanced-uri?vault=<vault>&filepath=MyFile&frontmatterkey=[my_item,second_item,1]&data=NewValue

 

복잡 구조

변경 전:

my_item:
  second_item:
    - A
    - B

변경 후:

my_item:
  second_item:
    - A
    - data:
        - 2
        - 3
obsidian://advanced-uri?vault=<vault>&filepath=MyFile&frontmatterkey=[my_item,second_item,1]&data={%22data%22:[2,3]}

관련 링크

 

Obsidian Advanced URI | Obsidian Advanced URI

Overview

vinzent03.github.io

 

옵시디언 심화: Obsidian URI

개요 Obsidian URI는 Obsidian이 지원하는 사용자 정의 URI 프로토콜로, 노트 열기, 노트 생성 등 다양한 작업을 트리거할 수 있습니다. macOS와 모바일 앱에서 자동화 및 앱 간 워크플로우를 위해 일반적

kaminik.tistory.com


 

반응형