Skip to content

✨ feat(website): GitHub Pages 部署流水线 + 子路径适配 - #447

Merged
CavinHuang merged 9 commits into
mainfrom
feat/website-pages-deploy
Aug 22, 2026
Merged

✨ feat(website): GitHub Pages 部署流水线 + 子路径适配#447
CavinHuang merged 9 commits into
mainfrom
feat/website-pages-deploy

Conversation

@CavinHuang

Copy link
Copy Markdown
Owner

概述

#421,把官网部署到 GitHub Pages(https://cavinhuang.github.io/lume/)。

  • 流水线 .github/workflows/deploy-website.yml:push main(paths 限定 packages/website/**)或手动 dispatch 触发 → astro check + astro build → upload/deploy-pages 官方 Action 发布;concurrency 组防并发覆盖
  • 子路径适配site + base: '/lume';新增 withBase / stripBase 助手统一站内链接前缀,md 内部链接改相对路径(双语自动指向对应语言)
  • Pages 已启用build_type=workflow

验证

  • astro check 0 错误、astro build 18 页通过
  • 全站产物链接审计:所有根相对 href/src 均在 /lume/ 下,无遗漏无重复前缀
  • 修复构建期首页 pathname 无尾斜杠导致的 /lume/en/lume 坏链

🤖 Generated with Claude Code

TaTaLiao and others added 4 commits August 22, 2026 20:04
- astro.config 增加 site/base(https://cavinhuang.github.io + /lume)
- withBase/stripBase 助手统一站内链接前缀;stripBase 兼容构建期
  pathname 无尾斜杠形态(首页 /lume 曾产出 /en/lume 坏链)
- md 内部链接改相对路径,双语下自动指向对应语言页面

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
push main 触发(paths 限定 website 与本 workflow)+ 手动 dispatch;
check + build 后经 upload-pages-artifact / deploy-pages 发布,
concurrency 防并发覆盖

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@CavinHuang

Copy link
Copy Markdown
Owner Author

Code Review

流水线与链接层工程质量扎实(触发面/权限/Actions 版本/产物路径全对;withBase+stripBase 兜底设计稳健;md 相对路径核算正确)。但有一个 P1 用户可见回归,需修复后再合

[P1] 英文页面 chrome 整体退化为中文

i18n/ui.ts:174getLangFromUrlpathname.startsWith('/en/') 判语言,加入 base 后构建期 Astro.url.pathname/lume 前缀(作者在 PR 描述中已自证首页 pathname 为 /lume)。三个未适配消费点全部误判为 zh:

  • Base.astro:14 → 英文页输出 <html lang="zh-CN">,且 Nav/Footer lang 取自 Base → 所有 /en 页导航、下载按钮、页脚显示中文
  • LangSwitch.astro:5ThemeToggle.astro:3 → aria-label 错语言(switch 目标链接因纯字符串运算仍正确,导航不断)

修法任选其一:

  1. getLangFromUrl 内先剥 import.meta.env.BASE_URL 再判断
  2. Base 增加 lang prop 由页面显式传入

修复后建议对 /en 页做一次目检。

P2(不阻塞)

  1. concurrency cancel-in-progress: true(yml:16):部署类 workflow 官方建议 false——连续合并会取消进行中的 deploy,可能滞留旧版到下次触发。
  2. PR 阶段无 astro check/build:workflow 仅 main push 触发,若现有 PR Verification 不覆盖 website,破坏性改动会先合入再失败。建议加 PR 触发的 check job(paths 过滤同 deploy)。

P3(后续增强)

无 bun install 缓存;og:image 根相对路径(OG 规范要求绝对 URL);无 sitemap/canonical;无 404.html。均为存量模式或增强项。

结论

修掉 getLangFromUrl base 感知(P1)即可合;P2 两项建议顺手带上。

@CavinHuang
CavinHuang merged commit 1a928a9 into main Aug 22, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants