RunJS 플러그인은 옵시디언(Obsidian)에서 JavaScript 코드를 쉽게 작성, 실행, 관리, 편집할 수 있도록 도와주는 도구입니다. 이 가이드에서는 RunJS 플러그인의 주요 기능과 사용법을 쉽게 이해할 수 있도록 설명합니다.
RunJS 시작하기
RunJS 코드목록 패널
과 RunJS 코드목록 팔레트
에서 RunJS 코드를 실행할 수 있습니다.
RunJS 플러그인 아이콘
아래 옵시디언의 화면에서 두 개의 RunJS 플러그인 아이콘을 찾을 수 있습니다.
- 사이드바 탭: RunJS 아이콘을 클릭하면
RunJS 코드목록 패널
을 보이게 합니다. - 리본 아이콘: RunJS 아이콘을 클릭하면
RunJS 코드목록 팔레트
가 열립니다.
옵시디언의 명령 팔레트
옵시디언의 명령 팔레트(Ctrl + P)를 열고 RunJS 명령을 선택하면 됩니다.
- Open codelist view:
RunJS 코드목록 패널
을 보이게 합니다. - Open codelist modal:
RunJS 코드목록 팔레트
를 엽니다.
RunJS 코드목록 패널
RunJS 코드목록 패널에서는 코드를 실행하거나 수정하고, 효율적으로 관리할 수 있습니다.
패널 상단의 주요 아이콘
- 모두 접기/펼치기: 코드 그룹을 한 번에 접거나 펼칠 수 있습니다.
- 정렬: A to Z 또는 Z to A로 정렬합니다.
- 필터: 코드형식(script, module) 또는 파일형식(codeblock, file)을 기준으로 필터링합니다.
- 즐겨찾기: 즐겨찾기 설정된 코드만 표시합니다.
- 새로고침: 자동 새로고침이 꺼져 있을 때 수동으로 목록을 업데이트합니다.
- 추가 메뉴: 코드목록 새로고침 설정, RunJS 설정 열기, 플러그인 리로드 등을 수행합니다.
코드목록 항목 아이콘
- 코드형식: 실행 코드(script)와 모듈 코드(module)를 구분합니다.
- 파일형식: 코드블럭과 파일을 구분하며, 클릭 시 편집 모드로 코드를 엽니다.
- 즐겨찾기: 설정된 즐겨찾기 코드를 표시합니다.
- 그룹 내 목록 개수: 해당 그룹에 포함된 코드의 개수를 보여줍니다.
항목 위에 마우스를 올리면 파일 정보를 확인할 수 있습니다.
컨텍스트 메뉴
- Run code: 코드를 실행합니다.
- Open code file: 편집 모드에서 코드를 열어 바로 수정할 수 있습니다.
- Toggle Favorite code: 해당 코드를 즐겨찾기로 설정하거나 해제합니다.
- 사용자 메뉴 추가:
- 이벤트 트리거 메뉴 (code-menu): RunJS Event handler에서 코드 관련 메뉴를 추가할 수 있습니다.
- 이벤트 트리거 메뉴 (file-menu): RunJS Event handler에서 파일 관련 메뉴를 추가할 수 있습니다.
RunJS 코드목록 팔레트
RunJS 코드목록 팔레트를 사용하면 원하는 코드를 빠르게 찾아 실행할 수 있습니다.
사용 방법
- 옵시디언 리본에서 RunJS 아이콘을 클릭하거나 명령 팔레트(Ctrl + P)에서 "RunJS Codelist modal"을 선택합니다.
- 코드 이름을 입력하거나 일부를 입력한 뒤 방향키로 선택합니다.
주요 기능
- 코드 그룹화: 코드를 그룹으로 나누어 하위 및 상위 그룹 간 이동이 편리합니다.
- 그룹화 전환: 그룹화된 코드 보기와 전체 코드 보기를 전환합니다.
RunJS 설정
RunJS 플러그인의 세부 설정은 옵시디언 설정창에서 Community Plugins → RunJS를 선택해 진행합니다.
- Auto Refresh: 코드 자동 검색 기능 활성화/비활성화
- Scripts Folder: 스크립트(.js)와 모듈 파일(.mjs)을 저장할 폴더 설정
- Log: 로그 출력 방법 설정 (Console, Notice, File)
- Auto Start: 플러그인 로드 시 자동 실행할 코드 설정
- Command: 옵시디언 명령 팔레트에 명령 등록. (Hotkey 설정 가능)
- Ribbon Icon: 리본 메뉴에 아이콘 추가
- Event Handler: 옵시디언 작업공간 준비완료(layout-ready), 활성 탭 바뀜(active-leaf-change), 파일 열기(file-open) 등 특정 이벤트에서 실행할 코드 추가
궁금한 점이나 의견이 있다면 댓글로 남겨 주세요! 😊