데모 바로가기
에디터 테스트
전체 기능을 활성화한 단독 에디터. 메뉴바·툴바·상태바·전체화면·MS Word 가져오기까지 모두 사용 가능합니다. 생성된 HTML 결과도 즉시 확인.
에디터 열기 →게시판 데모
게시글 목록·작성·수정·삭제가 모두 동작하는 완전한 게시판. localStorage 기반 영구 저장. 작성 페이지에 Word 가져오기 기능이 통합되어 있습니다.
게시판 열기 →튜토리얼
11개 섹션에 걸친 통합 예제. 기본 사용법, 옵션, 이미지, 표, 링크, 사용자 정의 툴바·플러그인, DOM API, 메뉴바, MS Word 가져오기, TypeScript 타입까지 다룹니다.
튜토리얼 →DOM API 데모
본문 요소를 ID·선택자로 조회하고 속성·스타일·내용을 입출력하는 DOM API를 인터랙티브하게 체험. 폼 ↔ 에디터 데이터 양방향 흐름 시연.
DOM API 열기 →Docx, Hwpx 가져오기
.docx(MS Word)와 .hwpx(한글) 파일을 외부 라이브러리 없이 클라이언트에서 변환. 단락·서식·표(셀 병합·음영·테두리)·목록·이미지·하이퍼링크 지원. 한 드롭존에서 확장자로 자동 분기, 드래그앤드롭·메뉴·툴바 진입.
마크다운 뷰어 / 편집
마크다운 문서를 편집 모드와 전체보기로 확인하는 확장팩(plugins:['markdown']). GFM 표·체크박스·코드블록 지원, .md 가져오기/내보내기(왕복). <script>·javascript: 링크 자동 차단.
설정 페이지
아이콘·툴바 UI 설정
툴바 아이콘의 표시·순서·1·2·3단 배치·그룹 구분선과 메뉴바 on/off·상태표시줄·에디터 너비를 시각적으로 구성해 config 파일로 저장합니다.
아이콘/툴바 설정 → 적용 데모 →내장 플러그인 (9) · 외부 플러그인 (1)
dist/plugins/wordimport-native.js) 로드.maxTableWidth. 별도 번들(dist/plugins/hwpximport-native.js) 로드.추가 모듈
공개 API
| 메서드 | 설명 |
|---|---|
getHTML() | 에디터 HTML 반환 |
setHTML(html) | 에디터 HTML 설정 |
clear() | 내용 초기화 |
focus() | 에디터 포커스 |
on(event, fn) | 이벤트 리스너 등록 |
destroy() | 에디터 DOM·이벤트 제거 |
getAPIModelById(id) | 본문 요소 → APIModel 래핑 |
querySelector(sel) | 본문 내 첫 요소 조회 |
querySelectorAll(sel) | 본문 내 모든 요소 조회 |
importWordFile(file, opts) | .docx 가져오기 (플러그인 필요) |
showMenuBar(bool) | 메뉴바 표시/숨김 |
showToolbar(bool) | 툴바 표시/숨김 |
showStatusBar(bool) | 상태바 표시/숨김 |
setFullscreen(bool) | 전체화면 토글 |
setUI(state) | UI 상태 일괄 설정 |
getUI() | 현재 UI 상태 조회 |
WebEditor.version | 버전 문자열 |
WebEditor.registerPlugin() | 외부 플러그인 등록 |
new WebEditor(el, { license }) | 라이선스 키 적용(초기화 옵션) |
단축키
| 단축키 | 기능 |
|---|---|
| Ctrl+B | 굵게 |
| Ctrl+I | 기울임 |
| Ctrl+U | 밑줄 |
| Ctrl+K | 링크 삽입 |
| Ctrl+F | 찾기/바꾸기 |
| Ctrl+Z / Ctrl+Y | 실행취소 / 다시실행 |
| Ctrl+N | 새 문서 |
| Ctrl+O | HTML 파일 열기 |
| Ctrl+S | HTML로 저장 |
| Ctrl+P | 인쇄 |
| F11 / Esc | 전체화면 진입/해제 |
| Tab (표 안) | 다음 셀로 이동 |
| Del (다중 셀 선택) | 선택된 셀 내용 일괄 삭제 |
소스 파일 구조
- 핵심 src/editor.js — Editor 클래스 (오케스트레이터)
- 핵심 src/toolbar.js — 툴바 렌더링 + 커맨드 디스패치
- 핵심 src/menubar.js — 7개 그룹 드롭다운 메뉴바 + About 다이얼로그
- 핵심 src/dom-api.js — WebEditorAPIModel (체이너블 DOM API)
- 핵심 src/editor.css — 전체 스타일 (28KB)
- 라이선스 src/license/manager.js + validator.js + domain-matcher.js + i18n.js + evaluation-modal.js
- 플러그인 src/plugins/format.js
- 플러그인 src/plugins/image.js
- 플러그인 src/plugins/table.js
- 플러그인 src/plugins/link.js
- 플러그인 src/plugins/emoji.js
- 플러그인 src/plugins/video.js
- 플러그인 src/plugins/sourceview.js
- 플러그인 src/plugins/insert.js
- 플러그인 src/plugins/find.js
- 외부 플러그인 src/plugins/wordimport/ — index.js · core/ · engines/ · ui/
- 기타 assets/icons.svg — SVG 스프라이트 (60+ 심볼)
- 기타 img/dee1.PNG · dee2.PNG · dee_gray.png — 로고 (밝은/어두운/무채색)
빌드 결과물 (dist/)
- UMD dist/webeditor.js — readable
- UMD dist/webeditor.min.js — minified (프로덕션, 151KB)
- ESM dist/webeditor.esm.js — 번들러용
- CSS dist/webeditor.css — readable
- CSS dist/webeditor.min.css — minified (21KB)
- TS dist/webeditor.d.ts — TypeScript 타입 선언
- plugin dist/plugins/wordimport-native.js — Word(.docx) 가져오기 (49KB)
- plugin dist/plugins/wordimport-native.min.js — minified (21KB)
- plugin dist/plugins/hwpximport-native.js — 한글 HWPX(.hwpx) 가져오기
- plugin dist/plugins/hwpximport-native.min.js — minified
빠른 시작 (CDN)
-
<link rel="stylesheet" href="dist/webeditor.min.css">
<script src="dist/webeditor.min.js"></script>
<!-- 선택: Word(.docx)/한글 HWPX(.hwpx) 가져오기 플러그인 -->
<script src="dist/plugins/wordimport-native.min.js"></script>
<script src="dist/plugins/hwpximport-native.min.js"></script>
<script>
const editor = new WebEditor('#editor', {
menubar: true,
plugins: ['format','image','table','link','wordimport']
});
</script>