개발중인 프로젝트의 게시글 작성 기능 구현을 위해 WYSIWIG Editor의 필요성을 느끼고 관련 라이브러리들을 조사해 보았다.
React에서 잘 동작해야 하므로, Popular WYSIWYG Editors for React를 참고하여 후보군들 중
React-Quill을 프로젝트에 적용하는 것으로 결정하였다.
$ npm install react-quill --legacy-peer-deps
import React from 'react';
import ReactQuill from 'react-quill';
import 'react-quill/dist/quill.snow.css';
const modules = {
/* 툴바에서 사용하고 싶은 옵션들을 추가 */
toolbar: [
//[{ 'font': [] }],
[{ header: [1, 2, false] }],
['bold', 'italic', 'underline', 'strike', 'blockquote'],
[{ list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }],
['link', 'image'],
[{ align: [] }, { color: [] }, { background: [] }], // dropdown with defaults from theme
['clean']
]
};
const App = () => {
return (
//
<div>
<ReactQuill style={{ height: '600px' }} theme="snow" modules={modules} />
</div>
);
};
export default App;
$ npm install quill-image-resize
quill-image-resize
모듈을 설치하고, 코드를 일부 수정해주자.import React from 'react';
import ReactQuill, { Quill } from 'react-quill';
import 'react-quill/dist/quill.snow.css';
/* 추가된 코드 */
import ImageResize from 'quill-image-resize';
Quill.register('modules/ImageResize', ImageResize);
const modules = {
toolbar: [
//[{ 'font': [] }],
[{ header: [1, 2, false] }],
['bold', 'italic', 'underline', 'strike', 'blockquote'],
[{ list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }],
['link', 'image'],
[{ align: [] }, { color: [] }, { background: [] }], // dropdown with defaults from theme
['clean']
],
/* 추가된 코드 */
ImageResize: {
parchment: Quill.import('parchment')
}
};
const App = () => {
return (
//
<div>
<ReactQuill style={{ height: '600px' }} theme="snow" modules={modules} />
</div>
);
};
export default App;
5 best open-source WYSIWYG editors for React (2021)
React Quill
React-Quill Image resize
React 게시판 만들기 : React-Quill (4)
유용합니다. 바로 적용시킬 수 있게 남겨주셔서 감사합니다 !