重启 · 把这里改造成新版博客
旧的 MkDocs 站封存,新版用 Astro 5 重建。简单记一笔为什么、怎么做。
这是博客 v2 的第一篇。旧的 MkDocs 版(2017–2020 的笔记)被封存在
legacy-2017tag。
为什么重启
旧博客有几个问题:
- 结构不对。 MkDocs 本质是文档站,没有时间线、没有标签、没有 RSS。一篇文章发出去就被埋在目录树某个角落。
- 源码丢了。 旧仓库
master分支里直接是mkdocs gh-deploy的产物(编译后的 HTML)。换了几次电脑之后,原始 markdown 已经找不全了。 - 想换个写法。 偶尔记点东西,不想被旧主题的口径框住。
技术栈
| 组件 | 选择 | 为什么 |
|---|---|---|
| 生成器 | Astro 5 | MDX 原生、Content Collections 类型化、i18n 内置 |
| 部署 | GitHub Pages + Actions | 不动 DNS,零迁移成本 |
| 多媒体 | <VideoPlayer/> <AudioPlayer/> <ImageGallery/> <Callout/> | MDX 里直接嵌组件 |
| 语言 | 中 / 英双语 | 同一个 topic 两个文件 |
一个 demo
const posts = defineCollection({
schema: ({ image }) => z.object({
title: z.string(),
date: z.coerce.date(),
lang: z.enum(['zh', 'en']),
tags: z.array(z.string()).default([]),
cover: image().optional(),
draft: z.boolean().default(false),
}),
});
代码块用 Shiki 高亮,跟随主题(右上角太阳/月亮切换)。
— c4bbage · 2026 / 05 / 22