문서 › 저장과 출력
저장되는 HTML
getHTML 이 돌려주는 HTML, 휴대폰에 맞추는 처리, textarea 동기화.
글을 저장할 때는 editor.getHTML() 로 HTML을 받습니다. 에디터 전용 표시는 빠지고 허용 목록으로 거른 HTML이 나옵니다. 휴대폰에서 넘치지 않도록 사진과 표에 몇 가지를 덧붙입니다.
직접 써 보기
여름 캠핑 후기
첫 사진은 바로 보이고, 두 번째 사진부터는 화면에 가까워질 때 불러옵니다.
| 날짜 | 장소 | 비용 |
|---|---|---|
| 7월 12일 | 가평 | 45,000원 |
이 데모의 코드
createEditor('#editor', {
toolbar: 'heading | bold | link image table',
height: 320,
});무엇이 바뀌어 나오나
- 빈 에디터는 빈 문자열
''을 돌려줍니다. 빈<p><br></p>가 저장되지 않습니다. - 선택 표시, 업로드 중인 사진, 끌기 손잡이 같은 에디터 화면용 요소는 빠집니다.
- 사진:
style에max-width: 100%; height: auto가 붙고, 너비·높이 속성이 없으면 원본 크기로width·height를 적습니다. 보기 화면에서 사진이 넘치지 않고, 불러오는 동안 글이 덜컹거리지 않습니다. - 표:
<div data-table-wrap style="overflow-x: auto">로 감싸서 좁은 화면에서 옆으로 밀어 볼 수 있게 합니다. 저장한 글을 다시 불러오면 이 껍데기는 벗겨집니다. - 지연 로딩: 두 번째 사진부터
loading="lazy"가 붙습니다. 첫 사진은 보통 바로 보이는 자리라 붙이지 않습니다. linkRel을 주면 http(s) 링크마다rel을 더합니다. 링크를 보세요.
<h2>여름 캠핑 후기</h2>
<p><img src="https://…/camp.jpg" alt="캠핑장" width="640" height="360" style="max-width: 100%; height: auto"></p>
<p><img src="https://…/fire.jpg" alt="모닥불" width="640" height="360" style="max-width: 100%; height: auto" loading="lazy"></p>
<div data-table-wrap="" style="overflow-x: auto"><table>…</table></div>이 처리가 필요 없다면 responsiveOutput: false, lazyImages: false 로 끕니다. 편집하던 그대로의 HTML이 필요하면 editor.editHTML() 을 쓰세요. HTML 소스 보기와 자동 저장 초안은 이쪽을 씁니다.
textarea 와 함께 쓸 때
createEditor 에 <textarea> 를 넘기면 내용이 바뀔 때마다, 그리고 폼을 전송하기 직전에 textarea 값을 getHTML() 결과로 맞춥니다. 서버는 원래 받던 필드를 그대로 읽으면 됩니다. 자세한 예는 textarea와 폼 전송에 있습니다.
바뀔 때마다 받기
const editor = createEditor('#editor', {
onChange: (html) => preview.innerHTML = html,
});
// 또는
editor.on('change', (html) => { /* … */ });change 이벤트는 입력이 잠깐 멈춘 뒤 한 번 오고, 결과 HTML이 실제로 달라졌을 때만 옵니다. 글자만 필요하면 getText(), 마크다운이 필요하면 getMarkdown() (마크다운) 을 씁니다.
옵션
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
responsiveOutput | boolean | true | 사진에 max-width:100%; height:auto 와 원본 너비·높이, 표에 가로 스크롤 상자 |
lazyImages | boolean | true | 두 번째 사진부터 loading="lazy" |
linkRel | string | - | http(s) 링크에 더할 rel. nofollow, sponsored, ugc 만 받습니다 |
onChange | (html) => void | - | 내용이 바뀔 때마다 저장용 HTML |
getHTML() | method | - | 저장용 HTML. 비었으면 '' |
editHTML() | method | - | 위 처리를 하지 않은 편집 중 HTML |
getText() | method | - | 블록 사이에 줄바꿈을 넣은 글자 |
isEmpty() | method | - | 글자도 사진·표·동영상도 없으면 true |