Reboot · Turning this into a real blog again

Old MkDocs site sealed. New version on Astro 5. A short note on why and how.

· 2 min read

First post of blog v2. The old MkDocs site (notes from 2017–2020) is sealed in the legacy-2017 tag.

Why reboot

The old blog had a few problems:

  1. Wrong structure. MkDocs is a documentation tool — no timeline, no tags, no RSS. A new post would just sink into some corner of the nav tree.
  2. Source got lost. The old repo’s master branch contained the built HTML from mkdocs gh-deploy. After a few laptops, the original markdown was scattered.
  3. Wanted a fresh template. A simple place to jot things down, not boxed in by the old theme’s voice.

Stack

LayerPickWhy
GeneratorAstro 5MDX out of the box, typed Content Collections, built-in i18n
HostingGitHub Pages + ActionsNo DNS changes, zero migration cost
Media<VideoPlayer/> <AudioPlayer/> <ImageGallery/> <Callout/>MDX components beat plain markdown
LanguagesChinese / EnglishTwo files per topic

A taste

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),
  }),
});

Code blocks use Shiki and follow the theme toggle in the top-right.

— c4bbage · 2026 / 05 / 22