32P by xguru 12달전 | favorite | 댓글 3개
  • contenteditable 속성 대신 커스텀 렌더러를 사용해서 브라우저/플랫폼 호환성을 회피
  • 안정성, 제어 가능성, 성능에 중점을 둔 설계
  • 현재는 렌더링에 React를 이용
    • Vue, Solid-js, SvelteJS 등과 비교해 봤지만 현재로선 가장 개발자 경험이 좋고 유연하며 에코시스템이 훌륭
    • 하지만, 성능 개선을 위해 차후에는 네이티브 DOM 렌더링으로 리팩터링 필요
  • 다양한 플러그인 지원
    • 단축키, 마크다운, 컨텍스트 메뉴, 얼라인, 코드블락, 폰트, 헤딩, 이미지, 링크, 리스트, 멘션, 테이블,..

페이스북의 Lexical도 생각나는 군요
https://news.hada.io/topic?id=6380

slate 의 스트럭쳐를 그대로 썼다고 하는군요, 새로운 설계를 하지 않아도 되는 것과, 만약 slate 형태로 데이터를 저장중이라면 에디터를 변경하기에도 유용할 것 같습니다.
텍스트에디터가 브라우저, OS 호환성이 정말 쉽지않은데 새로운 접근이네요.
안드로이드에서 한글입력도 잘 되고, Selection 클래스가 정말 쓰기 어려웠는데, 아예 새로 만들어 놓은걸 보니 개발할때 편할 것 같네요. (실제로 getSelection() 을 해보니 선택된 영역이 잡히지가 않습니다)
처음 로딩할 때 성능개선이 필요해 보이긴 하지만 크리티컬할 것 같진 않습니다.