미디어 본문 파생 이미지 분류 수정

This commit is contained in:
2026-07-01 18:07:44 +09:00
parent e5d3eac2fd
commit 445eb39a83
10 changed files with 75 additions and 16 deletions

View File

@@ -7,6 +7,10 @@ import {
normalizeUploadMaxFileCount,
normalizeUploadMaxTotalSize
} from '~/lib/upload-size-limit.js'
import {
isPostBodyThumbnailUrl,
isPostCardThumbnailUrl
} from '~/lib/post-card-thumbnail-url.js'
definePageMeta({
layout: 'admin'
@@ -84,14 +88,33 @@ const isThumbnailDiskItem = (item) => Boolean(item?.url?.includes('/members/avat
* @param {Object} item - 미디어 항목
* @returns {boolean} 게시물 카드 썸네일이면 true
*/
const isPostCardThumbnailDiskItem = (item) => Boolean(item?.url?.includes('/posts/') && item?.url?.includes('/thumbs/') && item?.url?.endsWith('-card.webp'))
const isPostCardThumbnailDiskItem = (item) => isPostCardThumbnailUrl(item?.url)
/**
* 게시물 본문 표시용 이미지 디스크 경로 여부
* @param {Object} item - 미디어 항목
* @returns {boolean} 게시물 본문 표시용 이미지이면 true
*/
const isPostBodyThumbnailDiskItem = (item) => Boolean(item?.url?.includes('/posts/') && item?.url?.includes('/thumbs/') && item?.url?.endsWith('-body.webp'))
const isPostBodyThumbnailDiskItem = (item) => isPostBodyThumbnailUrl(item?.url)
/**
* 게시물 본문 파생 이미지 해상도 라벨을 반환한다.
* @param {Object} item - 미디어 항목
* @returns {string} 해상도 라벨
*/
const getPostBodyThumbnailResolutionLabel = (item) => {
const url = String(item?.url || '')
if (url.endsWith('-body-720.webp')) {
return '720px'
}
if (url.endsWith('-lightbox.webp')) {
return '2560px'
}
return '1600px'
}
/**
* 미디어 항목이 시스템 파생 파일인지 확인한다.
@@ -1545,7 +1568,7 @@ watch(filteredMediaUrls, (urls) => {
<dt class="admin-media__info-label text-xs font-semibold text-muted">본문 이미지</dt>
<dd class="admin-media__info-value mt-1 grid gap-1 break-all">
<span v-if="selectedMedia.bodyThumbnailStatus.role === 'body'">
자동 생성된 본문 표시용 WebP 이미지입니다.
자동 생성된 본문 표시용 WebP 이미지입니다. ({{ getPostBodyThumbnailResolutionLabel(selectedMedia) }})
</span>
<template v-else>
<span v-if="selectedMedia.bodyThumbnailStatus.hasThumbnail">