대부분의 개발자들은 markdown으로 글을 작성하는 것이 편하다고 느낄 것이다.
마찬가지로 레벨로그를 작성할 때도 markdown을 지원하는 것이 사용할 때도 편할 것 같아 마크다운 지원 에디터를 도입하기로 했다.
마크다운 지원 에디터는 생각보다 많다.
이 많은 에디터 중에서 toast ui editor를 선택한 이유는 5가지 정도가 있다.
이러한 이유를 종합해본 결과 toast ui editor가 적합해서 선택하게 되었다.
적용 법은 그렇게 어렵지 않다.
@toast-ui/react-editor
를 설치하고
import { Editor } from '@toast-ui/react-editor';
에디터 import 하고
<Editor
previewStyle={'tab'}
height={height}
initialEditType={initialEditType}
initialValue={'작성해주세요.'}
ref={contentRef}
hideModeSwitch={true}
toolbarItems={toolbarItems}
usageStatistics={false}
/>
컴포넌트로 감싸서 페이지에 띄워준 순간
바로 에러가 발생한다.
이 에러는 issue에도 올라가 있다.
https://github.com/nhn/tui.editor/issues/2631
이슈에서는 npm으로 하면 되고 yarn, yarn berry로 하면 되지 않는다고 한다.
yarn berry는 유령 의존성을 없애주는 특성과 관련이 있다고 하는데 yarn에서도 되지 않는 것을 보니 아직 3버전으로 올린지 얼마 되지 않아 의존성 문제가 있는 것 같다.
해결 방법은
"dependencies": {
"@toast-ui/react-editor": "3.1.8",
}
"resolutions": {
"@toast-ui/editor": "3.1.8",
}
@toast-ui/editor
를 추가로 설치하는 것이다
에디터에는 여러 프로퍼티를 받는다.
<Editor
previewStyle={'tab'}
height={height}
initialEditType={initialEditType}
initialValue={'작성해주세요.'}
ref={contentRef}
hideModeSwitch={true}
toolbarItems={toolbarItems}
usageStatistics={false}
/>
el
height
previewStyle
initialEditType
initialValue
ref
hideModeSwitch
toolbarItems
(type: array)
usageStatistics
```jsx
// 작성글
## 제목
### 내용
// 기대값
제목
내용
// 실제값
##제목###내용
```
마크다운 형식으로 작성한 글을 보여주는 것은 생각보다 간단하다.
import { Viewer } from '@toast-ui/react-editor';
<Viewer initialValue={content} />;