From 3e09a362cc7de64b51ea19082812ee3e46fa8518 Mon Sep 17 00:00:00 2001 From: wait4xx Date: Mon, 2 Nov 2026 19:02:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor(home):=20=E9=A6=96=E9=A1=B5=E4=B8=89?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=BB=98=E8=AE=A4=E5=80=BC=E6=94=B6=E6=95=9B?= =?UTF-8?q?=E5=88=B0=20SITE=5FDEFAULTS=EF=BC=885g=20T4=20=E8=A1=A5?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SITE_DEFAULTS 新增 homeProjectsLimit=6 / homeAnnouncement(空) / homePostsTracks(全开),访问器改为引用默认常量而非散落字面量 - 旧 yaml(无三字段)零回归实测:公告不渲染、项目墙默认 6 条、三轨全开 验证: 构建 48 页 exit 0;E2E 37/37(快照口径) Spec: 2026-11-02_blog-5g-pages (T3/T4 补充) Co-authored-by: GLM-5.3 --- src/lib/site-content.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/lib/site-content.ts b/src/lib/site-content.ts index 21f02df..d6cce84 100644 --- a/src/lib/site-content.ts +++ b/src/lib/site-content.ts @@ -12,6 +12,12 @@ export interface Bi { /** 与仓库现状逐字一致的默认文案:yaml 全空时产物不变(零回归可视验证锚点) */ export const SITE_DEFAULTS = { + /** 首页项目墙条数(旧 yaml 无此字段时的默认:6 条) */ + homeProjectsLimit: 6, + /** 首页公告(默认空 = 不渲染) */ + homeAnnouncement: { zh: '', en: '' }, + /** 首页轨细分(默认全开 = 现状) */ + homePostsTracks: { reading: true, tech: true, photo: true }, homeTagline: { zh: '写作者 · 读者 · 快门按压者,拥抱开源。', en: 'Writer · Reader · Shutter-presser — embracing open source.', @@ -256,12 +262,12 @@ export async function homeConfig(locale: Locale): Promise { const d = entry?.data; return { subtitle: pickBi(d?.subtitle, { zh: '', en: '' }, locale), - announcement: pickBi(d?.announcement, { zh: '', en: '' }, locale), - projectsLimit: clampInt(d?.projectsLimit, 1, 99, 6), + announcement: pickBi(d?.announcement, SITE_DEFAULTS.homeAnnouncement, locale), + projectsLimit: clampInt(d?.projectsLimit, 1, 99, SITE_DEFAULTS.homeProjectsLimit), postsTracks: { - reading: d?.postsTracks?.reading ?? true, - tech: d?.postsTracks?.tech ?? true, - photo: d?.postsTracks?.photo ?? true, + reading: d?.postsTracks?.reading ?? SITE_DEFAULTS.homePostsTracks.reading, + tech: d?.postsTracks?.tech ?? SITE_DEFAULTS.homePostsTracks.tech, + photo: d?.postsTracks?.photo ?? SITE_DEFAULTS.homePostsTracks.photo, }, latestPhotos: clampInt(d?.latestPhotos, 0, 6, 4), perTrackLimit: clampInt(d?.perTrackLimit, 4, 8, 6),