대표 이미지 원본 선택 보강 v1.7.9

This commit is contained in:
2026-06-24 10:16:40 +09:00
parent cab71285d8
commit a93780731c
12 changed files with 61 additions and 28 deletions

View File

@@ -2,13 +2,15 @@ import { existsSync } from 'node:fs'
import { mkdir, stat } from 'node:fs/promises'
import { dirname, extname, join, posix } from 'node:path'
import sharp from 'sharp'
import { isPostCardThumbnailUrl } from '../../lib/post-card-thumbnail-url.js'
export { isPostCardThumbnailUrl }
export const POST_THUMBNAIL_WIDTH = 640
export const POST_THUMBNAIL_HEIGHT = 360
export const POST_THUMBNAIL_QUALITY = 82
const postUploadUrlPattern = /^\/uploads\/posts\/\d{4}\/\d{2}\/[^/?#]+$/i
const postThumbnailUrlPattern = /^\/uploads\/posts\/\d{4}\/\d{2}\/thumbs\/[^/?#]+-card\.webp$/i
const postThumbnailDirectoryName = 'thumbs'
const postThumbnailSuffix = '-card'
const postThumbnailExtension = '.webp'
@@ -75,13 +77,6 @@ export const getPostThumbnailUrl = (imageUrl) => {
return `${directory}/${postThumbnailDirectoryName}/${getPostThumbnailFileName(fileName)}`
}
/**
* 게시물 카드 썸네일 URL인지 확인한다.
* @param {string|null|undefined} imageUrl - 검사할 이미지 URL
* @returns {boolean} 카드 썸네일 여부
*/
export const isPostCardThumbnailUrl = (imageUrl) => Boolean(imageUrl && postThumbnailUrlPattern.test(imageUrl))
/**
* 게시물 카드 썸네일 URL의 디스크 경로를 조회한다.
* @param {string} imageUrl - 원본 이미지 URL