Editable - 확장 가능한 Rich 텍스트 에디터 프레임워크
(github.com/editablejs)- contenteditable 속성 대신 커스텀 렌더러를 사용해서 브라우저/플랫폼 호환성을 회피
- 안정성, 제어 가능성, 성능에 중점을 둔 설계
- 현재는 렌더링에 React를 이용
- Vue, Solid-js, SvelteJS 등과 비교해 봤지만 현재로선 가장 개발자 경험이 좋고 유연하며 에코시스템이 훌륭
- 하지만, 성능 개선을 위해 차후에는 네이티브 DOM 렌더링으로 리팩터링 필요
- 다양한 플러그인 지원
- 단축키, 마크다운, 컨텍스트 메뉴, 얼라인, 코드블락, 폰트, 헤딩, 이미지, 링크, 리스트, 멘션, 테이블,..
slate 의 스트럭쳐를 그대로 썼다고 하는군요, 새로운 설계를 하지 않아도 되는 것과, 만약 slate 형태로 데이터를 저장중이라면 에디터를 변경하기에도 유용할 것 같습니다.
텍스트에디터가 브라우저, OS 호환성이 정말 쉽지않은데 새로운 접근이네요.
안드로이드에서 한글입력도 잘 되고, Selection 클래스가 정말 쓰기 어려웠는데, 아예 새로 만들어 놓은걸 보니 개발할때 편할 것 같네요. (실제로 getSelection() 을 해보니 선택된 영역이 잡히지가 않습니다)
처음 로딩할 때 성능개선이 필요해 보이긴 하지만 크리티컬할 것 같진 않습니다.