feat(website,docs,build): 首屏改成大标题 + 整行渐变填色,官网与文档站合并发布到 GitHub Pages
官网(`website/`)
- 首屏标题放大一档(`--fs-display` 上限 3.6rem → 4rem),第二行改成**整行渐变填色**,
照 ClassIsland 官网那种「大标题 + 中间一段渐变 + 一行副标 + 一排徽章 + 两个按钮」的写法;
- 标题下补一排 mono 芯片(版本 / Windows / Linux·Docker / 触摸屏),主按钮换成
「立即下载」+「GitHub 仓库」;
- 顶部导航与页脚补「文档站」入口;页脚原本指向 GitHub blob 的那三个链接改成指向文档站
—— 那几个文件已经移到 `docs/management/` 下,原链接是 404。
> ⚠ 渐变那一行**不参与逐字揭示**:`main.js` 的 `setupHeadlineReveal` 会跳过 `.reveal-grad`。
> 拆成 per-char 的 `inline-block` 之后每个字各自建一层合成,祖先的 `background-clip: text`
> 就穿不过去,渐变会整行失效 —— 所以它按整行入场(透明度 + 轻微上浮)。
站点发布(`.github/workflows/pages.yml`,取代 `docs.yml`)
- **一个仓库在 GitHub Pages 上只有一个站点**,所以官网与文档站拼成一份产物:
官网在根、文档站在 `/docs/` 下,组装逻辑在 `scripts/build-pages.mjs`;
- 站点根 404 由 `website/404.html` 提供(含 `{{BASE}}` 占位符,由脚本与 workflow 按仓库名注入);
- 官网目录里的 `serve.mjs` 与 `tools/` 是开发用的,不发布;
- `website/serve.mjs` 把 `../docs/_site` 挂在 `/docs/` 下,让本地预览与线上同形 ——
否则页脚那几个「文档站」链接在本地全是 404;
- 文档站模板顶栏补一个「官网」入口(`{{_rel}}../`)。
版本迭代
- `scripts/version.mjs` 补上**官网上手写的三处版本号**(顶栏徽标 / 首屏芯片 / 页脚)。
官网是纯静态站、没有构建步骤,没有哪段代码会去读 `package.json`,漏改的后果是
首页一直挂着旧版本号 —— 而那是别人看到的第一眼。落点从 10 处变成 13 处,
`AGENTS.md` §4.4 与 `docs/dev/release.md` 同步。
This commit is contained in:
1 parent
19c2aa07b2
commit
ded10118f5
15 files changed
+501
-83
No files matched your search
@@ -0,0 +1,93 @@
|
||||
name: 发布官网与文档站
|
||||
|
||||
# 把一个 GitHub Pages 站点发出去:
|
||||
#
|
||||
# / 产品官网(website/,纯静态、无构建步骤)
|
||||
# /docs/ 文档站(docfx 构建 docs/ 得到)
|
||||
#
|
||||
# 为什么要拼成一个站点:**一个仓库在 GitHub Pages 上只有一个站点**。两者发布节奏也不一样
|
||||
# (改个错别字就该上线,不该为此打个安装包),所以走 workflow 而不是塞进发布流程。
|
||||
#
|
||||
# 站点地址:https://lovechengke.github.io/ClassHelper/
|
||||
# 需要在仓库 Settings → Pages 里把 Source 选成「GitHub Actions」(只需做一次)。
|
||||
#
|
||||
# 本地预览:pnpm dev:site(官网在 :5180,文档站挂在同一个端口的 /docs/ 下)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
paths:
|
||||
- 'website/**'
|
||||
- 'docs/**'
|
||||
- 'scripts/build-pages.mjs'
|
||||
- '.github/workflows/pages.yml'
|
||||
# 两个页面上的版本号都取自根 package.json
|
||||
# (官网是手写的徽章,文档站由 docs/build.mjs 用 --metadata 注入),
|
||||
# 所以版本号变了也要重新发一次
|
||||
- 'package.json'
|
||||
workflow_dispatch:
|
||||
|
||||
# Pages 部署需要的三件套:读代码、写 Pages、用 OIDC 拿部署令牌
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# 同一时间只跑一个部署;已经在跑的那次不取消(半途取消会留下一个坏掉的站点)
|
||||
concurrency:
|
||||
group: pages
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
steps:
|
||||
- name: 检出代码
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: 安装 .NET SDK 8
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: '8.0.x'
|
||||
|
||||
- name: 安装 docfx
|
||||
# docfx 是 .NET 全局工具,装完在 ~/.dotnet/tools 下;setup-dotnet 会把它加进 PATH,
|
||||
# 这里再显式补一次,免得换 runner 镜像后找不到命令。
|
||||
run: |
|
||||
dotnet tool install --global docfx
|
||||
echo "$HOME/.dotnet/tools" >> "$GITHUB_PATH"
|
||||
|
||||
- name: 构建文档站
|
||||
# --check 把 docfx 的警告当错误:最常见的警告是"某个 .md 没被任何 toc.yml 引用",
|
||||
# 那种页面会被构建出来但没有侧边栏 —— 属于必须修掉的疏漏,不该悄悄上线。
|
||||
#
|
||||
# DOCS_BASE 是给文档站那份 404 用的:项目页挂在 /<仓库名>/ 子路径下,而浏览器按
|
||||
# **被请求的路径**解析 404 页里的相对链接,所以要把站点根钉成 <base>。
|
||||
env:
|
||||
DOCS_BASE: /${{ github.event.repository.name }}/docs/
|
||||
run: node docs/build.mjs --check
|
||||
|
||||
- name: 组装站点(官网在根,文档站在 /docs/)
|
||||
env:
|
||||
SITE_BASE: /${{ github.event.repository.name }}/
|
||||
run: node scripts/build-pages.mjs
|
||||
|
||||
- name: 配置 Pages
|
||||
uses: actions/configure-pages@v5
|
||||
|
||||
- name: 上传构建产物
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: .cache/pages
|
||||
|
||||
deploy:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
steps:
|
||||
- name: 部署到 GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
||||
Reference in new issue
Block a user