Skip to content
autionalPublic

About

Marketing website for Autional — open-core identity infrastructure for modern SaaS platforms.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Autional Website (web)

🚨 2026-11-10 托管变更:*.autional.cn 已迁出 Vercel —— 改为 mf01 构建(node:24-alpine + 钉版 pnpm)→ 香港自建托管。 .cn 的构建 env 由 workspace shared/infra-ops/sites/sites.manifest.json 注入;push 后由 mf01 cron(约 10 分钟)构建发布,不经 Vercel。 *.autional.com 仍在 Vercel —— 本文中涉及 Vercel 的构建/部署描述对 .com 仍然成立。 现行口径:workspace docs/AUTIONAL-CN-SITES-SELF-HOST.md。

Stack: Astro 7 SSG + React 19 + Tailwind 4 Regions: www.autional.cn(zh)/ www.autional.com(en)——同一份源代码、两个区域项目(.com = Vercel,.cn = 香港自建),差异全部由构建期区域环境注入(B1 单源双区)。

Region env (build-time)

构建期环境变量注入(.com 由 Vercel 项目 env;.cn 由 shared/infra-ops/sites/sites.manifest.json),astro.config.mjs 经 vite.define 内联为 PUBLIC_*(读取单点:src/lib/site-env.ts;落点表见工作区仓 workspace/docs/positioning/22-b1-execution-card.md §4.1 —— 该文档不在本仓,代码注释里的 docs/positioning/22 均为该文件的简写):

Var cn 项目 com 项目
REGION cn com
SITE_URL https://www.autional.cn https://www.autional.com
DEFAULT_LANG zh en
FALLBACK_LANG zh en
CDN_HOST https://cdn.autional.cn https://cdn.autional.com

本地 dev 无 env 时兜底 cn 值。站点域名 / CDN / 兄弟站 / GitHub 口径一律从 src/lib/site-env.ts 派生,禁止在页面里散落区域字面量。

Development

pnpm install
pnpm dev      # http://localhost:13118
pnpm build    # 构建前跑 gen-static + check-i18n,产物在 dist/
pnpm typecheck

i18n

  • src/i18n/en-US.json / zh-CN.json:对称单键空间(嵌套键;数组长度 / 对象键集一致),页面文案全部键化;
  • 语言中立的结构数据(图标、日期、端口、路径等)留在页面代码里;
  • 守卫脚本:node scripts/check-i18n.mjs(G1 嵌套键 / G2 键集对称 / G3 递归非空 / G4 形状对称);
  • 各页面渲染语言 = 本区 DEFAULT_LANG;顶栏/页脚 chrome 支持就地语言切换(同一份资源)。

Content collections

blog 与 cases 都走 Astro Content Layer(src/content.config.ts + glob() loader)。条目 id 形如 <lang>/<slug>(如 zh/novel),页面用 render(entry) 渲染。

规则 说明
只用 glob() loader 禁止 type: 'content'(旧式集合)
语言分目录 src/content/<集合>/{zh,en}/;本区只读 DEFAULT_LANG 目录
id → 路由 postSlug(id) 去掉语言前缀(src/lib/content-lang.ts)

⚠️ 旧式集合在 Astro 7 静默失效:type: 'content' 集合被跳过(legacy.collectionsBackwardsCompat 默认 false)。构建不报错,只打 [WARN] [content] The collection "x" does not exist or is empty。结果列表空、getStaticPaths 0 条 ⇒ 详情页 404。2026-10-22 /cases 全空即此原因(见 docs/vercel-deployment-notes.md)。

Deploy

push 后:.cn 由 mf01 自动构建发布(约 10 分钟),.com 仍由 Vercel 构建(两项目共用本仓,靠上表 env 区分);构建期生成物(robots.txt / llms.txt / ai/skill.md / og 图)由 scripts/gen-static.mjs 按本区 env 落进 public/,不入库。

构建后守卫(postbuild → scripts/check-build.mjs,失败即构建失败,不发布):

断言 防的是什么
拒绝旧式 type: 'content' 根因:Astro 7 静默跳过该集合
每个 verified 条目有详情页 + 被列表页链接 症状:列表空、详情 404
sitemap 每个 URL 有产物文件 页面整体丢失

构建日志另需人工确认 [WARN] [content] 为 0 条(postbuild 读不到 build 的 stdout)。

About

Marketing website for Autional — open-core identity infrastructure for modern SaaS platforms.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages