페이지 섹션·공개 목록 설정 누적 변경 일괄 반영

페이지 섹션 관리와 홈 Pages 진열장 연동, 공개 목록 표시개수 설정 관련 누적 로컬 변경을 기능 단위로 정리해 반영한다.
문서 이력과 패키지 버전을 v1.9.23으로 맞춰 코드와 문서 상태를 동기화한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-30 18:48:42 +09:00
parent 6a3cc5d7ec
commit 00999404a4
37 changed files with 2681 additions and 123 deletions

View File

@@ -25,6 +25,16 @@ import {
MIN_POST_TAG_LIMIT,
normalizePostTagLimit
} from '../../lib/post-tag-limit.js'
import {
DEFAULT_FEATURED_POST_LIMIT,
DEFAULT_HOME_LATEST_POST_LIMIT,
DEFAULT_PAGE_SECTION_ITEM_LIMIT,
DEFAULT_POST_LIST_PAGE_SIZE,
DEFAULT_TAG_POST_LIST_PAGE_SIZE,
MAX_DISPLAY_COUNT,
MIN_DISPLAY_COUNT,
normalizeDisplayCount
} from '../../lib/display-count-settings.js'
export const adminSiteSettingsInputSchema = z.object({
title: z.string().trim().min(1),
@@ -37,6 +47,11 @@ export const adminSiteSettingsInputSchema = z.object({
socialLinks: z.unknown().optional().default([]),
showPostUpdatedAt: z.boolean().optional().default(false),
postTagLimit: z.coerce.number().int().min(MIN_POST_TAG_LIMIT).max(MAX_POST_TAG_LIMIT).optional().default(DEFAULT_POST_TAG_LIMIT),
homeLatestPostLimit: z.coerce.number().int().min(MIN_DISPLAY_COUNT).max(MAX_DISPLAY_COUNT).optional().default(DEFAULT_HOME_LATEST_POST_LIMIT),
postListPageSize: z.coerce.number().int().min(MIN_DISPLAY_COUNT).max(MAX_DISPLAY_COUNT).optional().default(DEFAULT_POST_LIST_PAGE_SIZE),
tagPostListPageSize: z.coerce.number().int().min(MIN_DISPLAY_COUNT).max(MAX_DISPLAY_COUNT).optional().default(DEFAULT_TAG_POST_LIST_PAGE_SIZE),
featuredPostLimit: z.coerce.number().int().min(MIN_DISPLAY_COUNT).max(MAX_DISPLAY_COUNT).optional().default(DEFAULT_FEATURED_POST_LIMIT),
pageSectionItemLimit: z.coerce.number().int().min(MIN_DISPLAY_COUNT).max(MAX_DISPLAY_COUNT).optional().default(DEFAULT_PAGE_SECTION_ITEM_LIMIT),
homeCoverImageUrl: z.string().trim().max(500).optional().default(''),
homeCoverDarkImageUrl: z.string().trim().max(500).optional().default(''),
homeCoverTitle: z.string().trim().max(120).optional().default(''),
@@ -89,6 +104,11 @@ export const adminSiteSettingsInputSchema = z.object({
brandColor: normalizeBrandColor(data.brandColor),
socialLinks: normalizeSocialLinks(data.socialLinks),
postTagLimit: normalizePostTagLimit(data.postTagLimit),
homeLatestPostLimit: normalizeDisplayCount(data.homeLatestPostLimit, DEFAULT_HOME_LATEST_POST_LIMIT),
postListPageSize: normalizeDisplayCount(data.postListPageSize, DEFAULT_POST_LIST_PAGE_SIZE),
tagPostListPageSize: normalizeDisplayCount(data.tagPostListPageSize, DEFAULT_TAG_POST_LIST_PAGE_SIZE),
featuredPostLimit: normalizeDisplayCount(data.featuredPostLimit, DEFAULT_FEATURED_POST_LIMIT),
pageSectionItemLimit: normalizeDisplayCount(data.pageSectionItemLimit, DEFAULT_PAGE_SECTION_ITEM_LIMIT),
announcementUrl: normalizeAnnouncementUrl(data.announcementUrl),
announcementBackgroundColor: normalizeAnnouncementBackgroundColor(data.announcementBackgroundColor),
announcementAlignment: normalizeAnnouncementAlignment(data.announcementAlignment),