From 806b181d1f82d726767954107c3c103b49cdd245 Mon Sep 17 00:00:00 2001 From: zenn Date: Mon, 8 Jun 2026 15:54:39 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8C=80=ED=91=9C=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=A0=84=EC=9A=A9=20=EC=B9=B4=EB=93=9C=20=EC=8D=B8?= =?UTF-8?q?=EB=84=A4=EC=9D=BC=EB=A1=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/admin/AdminPostForm.vue | 32 +++++++ .../054_add_post_show_featured_image.sql | 2 + docs/changelog.md | 7 ++ docs/deploy.md | 11 ++- docs/history.md | 4 + docs/map.md | 10 +- docs/spec.md | 11 ++- docs/update.md | 8 ++ package-lock.json | 4 +- package.json | 2 +- pages/admin/media/index.vue | 49 ++++++++++ pages/post/[slug].vue | 2 +- scripts/backfill-post-thumbnails.js | 96 +++---------------- server/repositories/content-repository.js | 15 ++- .../routes/admin/api/media/thumbnail.post.js | 26 +++++ server/routes/admin/api/uploads.post.js | 51 ---------- server/utils/admin-post-input.js | 1 + server/utils/post-thumbnail-image.js | 52 ++++++++++ 18 files changed, 236 insertions(+), 147 deletions(-) create mode 100644 db/migrations/054_add_post_show_featured_image.sql create mode 100644 server/routes/admin/api/media/thumbnail.post.js diff --git a/components/admin/AdminPostForm.vue b/components/admin/AdminPostForm.vue index 385f822..e1eb5d8 100644 --- a/components/admin/AdminPostForm.vue +++ b/components/admin/AdminPostForm.vue @@ -160,6 +160,7 @@ const form = reactive({ excerpt: props.initialPost.excerpt || '', content: normalizeMarkdownContent(props.initialPost.content), featuredImage: props.initialPost.featuredImage || '', + showFeaturedImage: Boolean(props.initialPost.showFeaturedImage), isFeatured: Boolean(props.initialPost.isFeatured), noindex: props.initialPost.noindex === true, status: props.initialPost.status || 'draft', @@ -602,6 +603,7 @@ const createPostPayload = (options = {}) => { excerpt: form.excerpt.trim(), content: normalizeMarkdownContent(form.content), featuredImage: form.featuredImage.trim() || null, + showFeaturedImage: Boolean(form.featuredImage.trim() && form.showFeaturedImage), isFeatured: form.isFeatured, seoTitle: toAdminPostStoredTitle(form.title), seoDescription: form.excerpt.trim(), @@ -778,6 +780,7 @@ const applyPickedImage = () => { */ const removeFeaturedImage = () => { form.featuredImage = '' + form.showFeaturedImage = false } /** @@ -1898,6 +1901,35 @@ defineExpose({ + +