외부에서 노트를 조작할 수 있는 Advanced URI 플러그인
개요
Advanced URI 플러그인은 외부 애플리케이션에서 옵시디언 노트의 직접적인 조작을 가능하게 하는 플러그인입니다. 이 플러그인은 URI(Uniform Resource Identifier)를 활용하여 외부 앱에서 Obsidian 노트를 열거나, 내용을 추가하는 등 다양한 작업을 수행할 수 있게 해줍니다.
Obsidian이 기본적으로 제공하는 URI 기능은 제한적이지만, Advanced URI 플러그인을 통해 사용자는 훨씬 더 다양하고 복잡한 작업을 수행할 수 있습니다. 특히, 이 플러그인의 주요 장점은 외부 도구(예: Alfred, 바로가기.app, 쉘 스크립트 등)를 통해 Obsidian 명령을 실행할 수 있도록 하는 것입니다. 이를 통해 사용자는 외부 애플리케이션과의 연동을 통해 생산성을 극대화할 수 있게 도와줍니다.
플러그인 명 | 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 혼합 사용
openmode
과 viewmode
와 같은 여러 파라미터는 &
로 연결하여 혼합 사용할 수 있습니다.
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]
프론트매터 쓰기
frontmatterkey
와 data
파라미터를 사용하여 프론트매터에도 쓸 수 있습니다. 키가 존재하지 않는 경우 생성됩니다.
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]}
관련 링크
'옵시디언 플러그인 > 커뮤니티 플러그인' 카테고리의 다른 글
스프레드시트를 만드는 Spreadsheets 플러그인 (0) | 2024.02.04 |
---|---|
OCR이 가능한 Text Extractor 플러그인 (0) | 2024.02.04 |
Notion과 유사한 데이터베이스를 생성하는 DataLoom 플러그인 (0) | 2024.02.04 |
옵시디언에서 웹 브라우저 기능을 구현 - Surfing 플러그인 (0) | 2024.02.04 |
GUI로 행렬을 삽입할 수 있는 Matrix 플러그인 (0) | 2024.02.03 |