v1.4.2: 라이브 이미지·갤러리 편집 UX와 공개 화면 색상 정리

라이브 모드 이미지·갤러리 드래그 병합·분리, 갤러리 개별 편집, 블록 패널 유지, 다크모드 인용·사이드바·리스트 마커 색상을 보정한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-21 17:07:52 +09:00
parent 095a8fa5f0
commit 6919669330
14 changed files with 1551 additions and 91 deletions

View File

@@ -1,5 +1,7 @@
/** @type {RegExp} 이미지 마크다운 한 줄 */
const IMAGE_MARKDOWN_LINE_RE = /^!\[(.*?)\]\((\S+?)(?:\s+"((?:[^"\\]|\\.)*)")?\)(?:\{width=(regular|wide|full)\})?$/
/** @type {RegExp} 이미지 파일 확장자 */
const IMAGE_URL_EXTENSION_RE = /\.(?:jpe?g|png|webp|gif|avif|svg)(?:$|[?#])/i
/**
* 캡션 문자열 이스케이프 해제
@@ -55,6 +57,25 @@ export const getImageDefaultAltLabel = (url) => {
}
}
/**
* 이미지 파일 URL인지 확인한다.
* @param {string} url - 검사할 URL
* @returns {boolean} 이미지 URL 여부
*/
export const isImageUrl = (url) => {
const raw = String(url || '').trim()
if (!raw) {
return false
}
try {
return IMAGE_URL_EXTENSION_RE.test(new URL(raw, 'https://sori.studio').pathname)
} catch {
return IMAGE_URL_EXTENSION_RE.test(raw)
}
}
/**
* 이미지 마크다운 한 줄 파싱
* @param {string} line - 마크다운 줄