저는 현재 프로젝트로 개발자 커뮤니티를 제작중입니다.
여기서 특징은 게시글과 댓글 모두 마크다운 문법을 사용할 수 있는 에디터를 이용한다는 것인데 직접 만들어 사용하기로 결정했습니다.
기존에 존재하는 에디터를 가져와도 되지 않나?라는 의문이 충분히 드실 수 있는데, 일단 기존에 존재하는 WYSIWYG(위즈윅: What you see is what you get) 에디터를 사용하기 위해 여러가지 패키지들을 다운받아봤지만 원하는 기능(코드 블럭을 사용할 수 있는가?)을 충족시키는 에디터가 별로 없었고 찾았더라도 업데이트가 되어있지 않아 사용하고있는 리액트 버전에선 동작하지 않는 경우가 많았습니다. 그나마 CKEditor를 끝까지 사용해보려했지만 제가 무언가 잘못했는지 코드 블럭을 추가할 수 없는 문제가 발생했습니다.(다크 모드도 지원하지 않아 CSS 조작을 따로 해야하는 점도 불편합니다.)
사용하려던 에디터에도 문제가 생겼고 원래 기획에도 시간이 남는다면 에디터를 만들기로 했었기 때문에 차라리 직접 만들자는 생각이 들어 만들게 되었습니다.
이러한 에디터를 작성하기 위해 좋은 글을 발견했고 TS로 교체하느라 조금 고생했지만 얼추 정상적으로 동작하는 코드를 만들 수 있었습니다.
contentEditable에 placeholder 적용하기(흉내내기)
if (e.key === "ArrowUp") {
const previous = this.contentEditable.current
?.previousElementSibling as HTMLElement;
if (previous) {
previous.focus();
}
}
if (e.key === "ArrowDown") {
const next = this.contentEditable.current
?.nextElementSibling as HTMLElement;
if (next) {
next.focus();
}
}
안녕하세요! 저도 해당 페이지를 보면서 커스텀 에디터를 만들고 있는데 혹시 tsx로 바꾸신 코드를 참고할 수 있을까요?