미디어 삽입
툴바의 이미지·그림판·동영상 버튼, 또는 슬래시 명령 /이미지, /그림판, /동영상, /오디오, /코드 임베드(영문 image·drawing·video·audio·embed 로도 검색된다)로 넣는다. 이미지·영상·임베드는 고르면 오른쪽 아래 손잡이로 폭을 바꿀 수 있고, 폭을 바꾼 것만 width 속성이 저장된다.
이미지
넣는 길
| 길 | 동작 |
|---|---|
툴바 버튼 · /이미지 | 파일 선택 창. 취소하면 URL 과 대체 텍스트를 묻는다 |
| 붙여넣기 · 끌어놓기 (0.10.8) | 클립보드·드롭의 image/* 파일. 끌어놓은 자리에 들어간다 |
| 그림판 | 캡처 위에 그려 PNG 로 |
모두 같은 onImageUpload 훅을 탄다. 훅이 없으면 data URL(base64) 로 본문에 들어가 문서가 커지므로 실서비스에서는 훅을 둔다.
업로드 훅
editor.onImageUpload = async (file) => {
const form = new FormData();
form.append("file", file);
const res = await fetch("/api/upload", { method: "POST", body: form });
return (await res.json()).url;
};- 훅 있음 → 서버에 올리고 반환 URL 사용
- 훅이 던짐 → data URL 로 대체
- 훅 없음 → data URL
대체 텍스트(alt)는 파일 이름에서 확장자를 떼고 -·_ 를 공백으로 바꿔 만든다.
폭 · 정렬 · 테두리
이미지를 클릭하면 오른쪽 아래 손잡이가 보인다. 끌어서 폭을 바꾸고(최소 80px, 최대 편집 영역 폭, 높이는 비율대로) 원래 크기로 되돌린다. 같은 자리에 정렬(왼쪽/가운데/오른쪽)과 테두리(얇은 선/굵은 선/점선/둥근 모서리/그림자) 도구가 있다(0.10.9).
폭·정렬·테두리 중 하나라도 있으면 <img src alt title width="480" align="center" data-border="thin"> 로, 아니면  그대로 저장된다.
비디오
파일 URL
플랫폼 링크가 아니면 파일 주소로 보고 <video src controls> 로 넣는다.
플랫폼 임베드
플랫폼 URL 을 넣으면 <iframe> 임베드로 바뀐다.
| 플랫폼 | 예시 URL |
|---|---|
| YouTube | https://www.youtube.com/watch?v=ABC123, https://youtu.be/ABC123, …/shorts/ABC123 |
| Vimeo | https://vimeo.com/12345 |
| Loom | https://www.loom.com/share/abc123 |
| Dailymotion | https://www.dailymotion.com/video/x1234, https://dai.ly/x1234 |
| Wistia | https://home.wistia.com/medias/abc123 |
| 네이버TV | https://tv.naver.com/v/12345 |
| 카카오TV | https://tv.kakao.com/v/12345, https://tv.kakao.com/channel/…/cliplink/12345 |
폭을 바꾸면 width 와 16:9 height 를 같이 저장한다(0.8.2) — CSS 가 없는 뷰어에서도 같은 크기.
네이버TV / 카카오TV
일부 영상은 업로더가 임베드를 허용하지 않거나 지역 제한이 있어 재생되지 않을 수 있다. 플랫폼 정책이다.
오디오
/오디오(audio). 지원 플랫폼과 고정 높이:
| 플랫폼 | 예시 URL | 높이 |
|---|---|---|
| Spotify 트랙 | https://open.spotify.com/track/… | 152px |
| Spotify 앨범 · 플레이리스트 · 에피소드 · 쇼 · 아티스트 | https://open.spotify.com/album/… | 352px |
| SoundCloud | https://soundcloud.com/artist/track | 166px |
코드 임베드
/코드 임베드(embed). 현재 지원:
| 플랫폼 | 예시 URL | 높이 |
|---|---|---|
| CodePen | https://codepen.io/user/pen/abc (full·embed·details 도 됨) | 400px |
지원하지 않는 URL 은 안내(messages.embedInvalid / audioInvalid)를 띄우고 넣지 않는다.
영상·임베드 선택
떠 있는 iframe/영상은 클릭을 삼키므로, 고르지 않은 동안 투명 덮개가 클릭을 받아 노드를 고르고 고른 뒤엔 덮개가 사라져 재생 조작이 된다(0.8.3).