Quill과 quill-better-table 모듈을 설치해야 합니다.
먼저 Quill을 프로젝트에 추가합니다. CDN을 사용하거나 npm으로 설치할 수 있습니다.
<script src="https://cdn.quilljs.com/1.3.6/quill.min.js"></script>href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">npm install quillquill-better-table 모듈을 설치합니다.
npm install quill-better-table<link href="https://unpkg.com/quill-better-table/dist/quill-better-table.css" rel="stylesheet">src="https://unpkg.com/quill-better-table/dist/quill-better-table.min.js"></script>Quill 에디터와 표 삽입 버튼을 추가할 HTML을 작성합니다.
html
Collapse자동 줄바꿈복사
<div id="editor-toolbar">
<button id="insert-table">표 삽입</button>
<!-- 기타 툴바 버튼 추가 가능 -->
</div>
<div id="editor"></div>
JavaScript에서 Quill을 초기화하고 quill-better-table 모듈을 등록합니다. 표 삽입 버튼에 기능을 연결합니다.
javascript
Collapse자동 줄바꿈복사
// Quill과 quill-better-table 모듈 가져오기 (npm 사용 시)
import Quill from 'quill';
import QuillBetterTable from 'quill-better-table';
// 모듈 등록
Quill.register({
'modules/better-table': QuillBetterTable
}, true);
// Quill 에디터 초기화
const quill = new Quill('#editor', {
theme: 'snow',
modules: {
table: false, // 기본 table 모듈 비활성화
'better-table': {
operationMenu: {
items: {
// 오른쪽 클릭 메뉴 커스터마이징 (선택 사항)
unmergeCells: { text: '셀 분리' }
},
color: {
colors: ['#fff', 'red', 'yellow'], // 셀 배경색 옵션
text: '배경색'
}
}
},
keyboard: {
bindings: QuillBetterTable.keyboardBindings // 키보드 단축키 지원
}
}
});
// 표 삽입 버튼에 기능 추가
document.querySelector('#insert-table').addEventListener('click', () => {
const tableModule = quill.getModule('better-table');
tableModule.insertTable(3, 3); // 3x3 표 삽입
});
const quill = new Quill('#editor', {theme: 'snow',modules: {toolbar: ['bold', 'italic'],'header': [1, 2, false] }],'insert-table'] // 커스텀 버튼 클래스 ], table: false,'better-table': true }});// 커스텀 툴바 핸들러 추가const toolbar = quill.getModule('toolbar');'insert-table', () => {const tableModule = quill.getModule('better-table');3, 3);<div id="editor-toolbar">class="ql-formats">button class="ql-bold"></button>button class="ql-italic"></button>span>span class="ql-formats">select class="ql-header"></select>span>span class="ql-formats">button class="ql-insert-table">표 삽입</button>span>div>div id="editor"></div>