模板项目:AstroPages-Bilingual
截图


背景
正如我在关于所说,我的博客搭建初衷是为了求职,内容自然会以展现自己为主。而在秋招结束的现在,我不仅不再需要展示自己,反而需要隐藏之前为了求职而写的个人信息。另一方面,之前选择的AcademicPages框架本身就比较冗杂,特别是有非常多学术需求的代码和页面,对我来说并不需要;以及在一年来的自定义中也积累了许多屎山代码。此外,GitHub Actions + Pages + Cloudflare这种经典组合对编辑不是特别友好,需要本地编辑、Git提交等,为了中国大陆访问必须增加的CF CDN也容易导致更新不及时。因此我决定直接迁移到一个新的框架。
选型
我的需求主要包括简洁、美观、支持中英双语(母语和居住地语言),最好能支持直接提交而不是使用Git提交新文章。尽管我朋友的博客(详见底部友链)都使用了Hugo,但Gemini 3 Pro和ChatGPT 5.2都推荐我使用Astro (框架) + Keystatic (编辑管理),主题可选更偏向文档的Starlight或偏向简洁博客的AstroPaper。最后,我选择了基于 Astro v5 + AstroPaper、Keystatic CMS 和 Cloudflare Pages 搭建。以下是AI生成的对比:
| 维度 | AcademicPages (Old) | Hugo (常规方案) | Astro + Starlight | Astro + AstroPaper | AstroPaper Mod + Keystatic (Final) |
|---|---|---|---|---|---|
| 底层框架 | Jekyll (Ruby) | Hugo (Go) | Astro (TS/Vite) | Astro (TS/Vite) | Astro v5 (TS/Vite) |
| 核心定位 | 学术履历、Paper 展示 | 通用静态站 | 文档站 (Documentation) | 极简博客 (Minimalist Blog) | 现代双语博客 + CMS |
| 构建速度 | 慢 (Ruby Gems 依赖) | 极快 (Go 二进制) | 快 | 快 | 快 (但逊于 Hugo) |
| UI/UX 风格 | 传统简历风,较陈旧 | 主题多样,但质量参差 | 侧边栏导航,信息密度高 | 纸张质感,排版舒适 | 保留 AstroPaper 原貌,增加双语切换 |
| i18n 支持 | 差 (需大量魔改 Liquid) | 良 (原生支持,但需主题适配) | 优 (原生路由级 i18n) | 无 (原生不支持多语言) | 自研适配 (利用 Astro v5 路由 + Collections 实现) |
| 内容管理 | 纯 Git 操作 | 纯 Git / 配合外部 CMS | 结合 MDX | 结合 MDX | Keystatic (Git-based CMS) |
| 弃用/选用理由 | 弃用:代码冗余,非学术场景显得臃肿,维护成本高。 | 弃用:Go Template 修改门槛高,难找到完美支持双语的极简主题。 | 弃用:布局不符。虽 i18n 完美,但它是为文档设计的,作为以时间线的“博客”使用需要魔改太多布局。 | 基底:UI/UX 完美符合审美。代码结构清晰,虽缺 i18n,但自行补全的成本低于魔改 Starlight 的布局。 | 选用:在 AstroPaper 的优秀 UI 基础上,补齐了 i18n 短板,并引入 Keystatic 解决发布流程痛点。 |
开发
开发这块没啥好讲的,比较繁琐,我直接让AI总结了一下:
基于该用户的 Git 提交记录,自版本 5.5.1(commit 25d2543)之后,其对框架进行了大量的二次开发,主要集中在双语支持 (i18n) 的深度集成、阅读进度条功能的增强以及部署文档的完善。
以下是所做修改的详细总结:
1. 核心功能:全站双语/多语言支持 (Bilingual Support)
这是所做改动最大、最核心的部分,将原本单语言的博客改造成了支持中英双语的系统。
- 基础架构搭建:
- 初始化了双语博客结构,区分了语言特定的页面和组件(
c84be7d)。 - 实现了基于语言的路由和内容渲染逻辑(
928cdbc)。
- 初始化了双语博客结构,区分了语言特定的页面和组件(
- 路由与重定向:
- 增加了
/zh路径的重定向功能,引入了 SSR(服务端渲染)模式以处理/zh路由下的动态路径,根目录默认中文,无需/zh前缀。 - 实现了基于 URL 的语言检测机制,并支持根据用户偏好进行重定向(
0bc1f99,1bdd7ba)。 - 优化了 Header 组件中的语言处理逻辑,改善了路径匹配准确性(
f40d73b)。
- 增加了
- RSS 订阅:
- 实现了分语言的 RSS Feed 生成功能,让不同语言的读者可以订阅对应的内容(
94d39ee)。 - 更新了 RSS 和 HTML 属性中的语言处理(
e710844)。
- 实现了分语言的 RSS Feed 生成功能,让不同语言的读者可以订阅对应的内容(
2. 部署与文档 (Deployment & Documentation)
针对所使用的 Cloudflare Pages 部署环境进行了文档和说明的更新。
- 部署指南:更新了针对 Cloudflare Pages 的部署说明(
611e8ac),并修正了关于 Fork 仓库的指引(a2b1dd6)。 - README 更新:
- 添加了关于 Cloudflare Rocket Loader 的建议,并澄清了 GitHub CMS 的连接流程(
51a7dc0)。 - 在 README 中显式添加了博客链接,以展示模板的实际使用效果(
a0baa5c)。
- 添加了关于 Cloudflare Rocket Loader 的建议,并澄清了 GitHub CMS 的连接流程(
总结
该开发者在原有 AstroPaper(v5.5.1)的基础上,成功实施了完整的国际化改造,使其具备了生产环境可用的双语能力(包括路由、内容管理、偏好记忆、RSS等),同时对进度条 UI 进行了定制,并完善了相关的部署维护文档。
其他
部署
部署直接使用Cloudflare Pages连接Git仓库即可,仓库修改后CF会自动重新构建并更新。部署后需要对Keystatic进行相关配置,具体流程详见模板仓库页面。
中国大陆优化
理论上像EdgeOne等服务应该能提供类似的Pages构建服务,同时有更好的中国大陆网络优化。不过近期我自己没有相关需求,因此暂时先用已经习惯的Cloudflare Pages,大多数情况下已经足够联通,至于直连访问速度你别管。若有大陆访问需求可以考虑用EdgeOne等类似服务。
SEO
这网站也没直接经济收益,所以肯定不会花太多精力在SEO上。不过目前看来.com域名对收录速度的提升很大,而且在Google Search Console中添加网站并输入sitemap效果也会好一些。网站架构本身对SEO应该是比较友好的。
版权说明
除非另有声明,本站文章均采用 CC BY-NC-SA 4.0 许可协议,这意味着您可以自由分享与演绎,但必须署名、非商业使用并以相同方式共享。博客底层的源码(Codebase)和博客内容中的代码则遵循 MIT 协议,欢迎各位在 GitHub 上自由 Fork 或进行二次开发。