리치 텍스트 에디터 기능 제안: `/` 슬래시 명령어 (Notion 스타일)

리치 에디터 컴포저는 등록된 확장(extension)을 통해 완전히 커스터마이즈할 수 있으며, 이는 RichEditorExtension 타입을 따릅니다. 현재 코어에 있는 모든 커스텀 ProseMirror 노드/마크/플러그인 등은 registerRichEditorExtension 호출을 통해 처리됩니다.

만약 슬래시 명령(slash command) 기능이 리치 에디터에만 적용되도록 생성된다면, 그것이 나아갈 방향이 될 것입니다. 그러나 제 생각에는 이미 슬래시 명령에 원하는 것과 매우 유사한 자동완성(autocomplete) 구현이 있으며, 마크다운 모드에서도 쉽게 지원할 수 있다는 점은 매우 흥미롭습니다.

자동완성은 리치 에디터뿐만 아니라 두 가지 에디터 모두에서 작동하도록 설계된 기능이므로, 리치 에디터 전용 커스터마이즈보다 에 위치합니다. 이모지, 멘션, 해시태그의 자동완성은 두 에디터 모드에서 동일한 방식으로 작동합니다.

이들은 setupEditor에 적용되며, 해당 에디터 인스턴스가 파괴될 때(예: 모드 전환 시) 함께 파괴됩니다:

네, 테마 컴포넌트나 플러그인을 통해 이를 구축하는 것이 가능합니다(다만 현재 setupEditor/디스트럭터를 거치는 방식은 다소 해킹(hacky)일 수 있습니다). 하지만 이는 이상적으로 더 많은 커스터마이즈를 허용해야 하는 영역입니다 – 새로운 테마 컴포넌트나 플러그인이 자신만의 특정 필터링 규칙과 함께 슬래시 명령에 더 많은 옵션을 추가할 수 있어야 하므로 – 코어가 제공하는 플러그인 API가 이상적입니다.

3개의 좋아요