Obisidian Plugin은 문서화가 많이 부족하다. 예를 들어, EditorSuggest class의 경우, onTrigger, getSuggestion, renderSuggestion, selectSuggestion 4가지 메소드가 클래스의 핵심이다. 하지만 Docs에서는 이중 2가지 메서드에 대한 설명이 없다.

또한 여러 class의 사용 방법에 대한 안내도 부족한 경우가 많다.

EditorSuggest 클래스는 Plugin 중 유저가 입력한 문자열을 읽고, 그에 따라서 제안하는 클래스이다. 하지만 그에 대한 설명은 Docs에 없다.
따라서 아래 3가지 방법을 통해 플러그인 개발을 위해 어떤 API를 사용할지 찾길 바란다.
시작하기 전에 Docs의 Plugins > Getting Started, Plugins > User interface, Plugins > Editor를 읽어보고 Obsidian Plugin API가 어떤 구조인지 감을 잡는 것을 권장한다.
Obisidian Plugin 개발 정보를 공유하는 커뮤니티가 몇 가지 있다.
Discord: https://discord.gg/obsidianmd
Obsidian Hub: https://publish.obsidian.md/hub/00+-+Start+here
Obsidian에는 1800개가 넘는 플러그인이 등록되어 있고, 모든 플러그인은 그 코드가 공개되어 있다. 구현하고자 하는 기능과 유사한 플러그인의 소스 코드를 참고하면 어떤 API를 써야하는지 파악할 수 있고, 그 사용 방법도 파악할 수 있다.
Obsidian Plugin 개발에 대한 정보는 검색으로 찾기 힘들다. 그래서 GPT에 물어볼 경우에도 틀린 정보를 출력하는 경우가 많다. 꼭! 체크해보고 사용하자.
그럼에도 GPT를 추천하는 이유는 단순하고 빠르기 때문이다. 특히 구현 가능한 기능에 대해서는 API와 그 사용법까지 알려주는 경우가 많았다.
Obsidian은 Electron을 사용해 Chrome과 같이 HTML, Javascript, CSS를 렌더링한다. 따라서 Document Object Model을 사용할 수 있고, 실제로 EditorSuggest의 renderSuggestion 메소드는 HTMLElement object를 매개변수로 사용한다.
DOM API는 mozilla의 개발자 문서를 참고한다.