From aa050d803526371569626b52c289001ae07ef16b Mon Sep 17 00:00:00 2001 From: wait4xx Date: Sun, 25 Oct 2026 20:51:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(pages):=20/stack=20=E8=A3=85=E5=A4=87?= =?UTF-8?q?=E9=A1=B5=20+=20/colophon=20=E5=88=B6=E4=BD=9C=E9=A1=B5?= =?UTF-8?q?=EF=BC=88=E5=8F=8C=E8=AF=AD=EF=BC=89=E4=B8=8E=E9=A1=B5=E8=84=9A?= =?UTF-8?q?=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - colophon:五节灰阶数据表讲"这站怎么造的"(build/visual/写作流 /i18n/features,变字体提速等实数入表) - stack:homelab/自托管/站点依赖/日常四节(版本号实读 package.json;硬件细节与 daily 清单 TODO(下轮) 待补) - Footer 顺手修真缺陷:locale prop 机制存在但从未透传,en 全站 页脚实为 zh 文案——改 Astro.url.pathname 构建期自推断(localeOf 复用,显式 prop 优先),零 BaseLayout 改动 - 页脚「装备 · 制作」双入口(en 轨自动 /en/ 前缀) 车道:op-artalk(自验 15/15:双页双语桌面+390 溢出断言+Footer 双轨感知);收编验收 6 检全过 验证: pnpm astro build 34 页 exit 0;双页双语 390 视口无溢出;E2E 31/31 PASS Spec: none (两静态页+Footer 修复,车道级交付) Co-authored-by: GLM-5.3 --- src/components/Footer.astro | 11 +++- src/i18n/ui.ts | 4 ++ src/pages/colophon.astro | 117 ++++++++++++++++++++++++++++++++++++ src/pages/en/colophon.astro | 115 +++++++++++++++++++++++++++++++++++ src/pages/en/stack.astro | 117 ++++++++++++++++++++++++++++++++++++ src/pages/stack.astro | 117 ++++++++++++++++++++++++++++++++++++ 6 files changed, 479 insertions(+), 2 deletions(-) create mode 100644 src/pages/colophon.astro create mode 100644 src/pages/en/colophon.astro create mode 100644 src/pages/en/stack.astro create mode 100644 src/pages/stack.astro diff --git a/src/components/Footer.astro b/src/components/Footer.astro index ee27196..8e80bcf 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -3,11 +3,14 @@ import { t } from '../i18n/ui'; import type { Locale } from '../lib/locale'; -// /en/ 侧由 T4 薄页传 locale='en';zh 路由无人传参,默认 zh 零回归 +// locale 感知:显式 prop 优先;无 prop 时构建期按页面 URL 推断轨道 +// (BaseLayout 引用本组件不透传 locale,靠 Astro.url 静态解析补全 en 轨) +import { localeOf } from '../lib/locale'; interface Props { locale?: Locale; } -const { locale = 'zh' } = Astro.props; +const { locale: propLocale } = Astro.props; +const locale = propLocale ?? localeOf(Astro.url.pathname); ---