跳转到正文
~/tosaki
返回

不再为了功利而写,博客内容与框架的同步升级

约 4 分钟
编辑此页

目录

模板项目:AstroPages-Bilingual

截图

demo1.avif

demo2.avif

背景

正如我在关于所说,我的博客搭建初衷是为了求职,内容自然会以展现自己为主。而在秋招结束的现在,我不仅不再需要展示自己,反而需要隐藏之前为了求职而写的个人信息。另一方面,之前选择的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 + StarlightAstro + AstroPaperAstroPaper 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结合 MDXKeystatic (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)。

2. 部署与文档 (Deployment & Documentation)

针对所使用的 Cloudflare Pages 部署环境进行了文档和说明的更新。

  • 部署指南:更新了针对 Cloudflare Pages 的部署说明(611e8ac),并修正了关于 Fork 仓库的指引(a2b1dd6)。
  • README 更新:
    • 添加了关于 Cloudflare Rocket Loader 的建议,并澄清了 GitHub CMS 的连接流程(51a7dc0)。
    • 在 README 中显式添加了博客链接,以展示模板的实际使用效果(a0baa5c)。

总结

该开发者在原有 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 或进行二次开发。


编辑此页
分享这篇文章:



上一篇
图床 OSS 迁移实录
下一篇
实测 Gemini 3 Pro:从零快速开发自走棋游戏