用 Astro 架設個人部落格的筆記
更新於 2026 年 10 月 1 日 · 約 128 字 · 閱讀約 1 分鐘技術筆記
這篇文章使用 MDX 撰寫,可以在 Markdown 中直接使用 JavaScript 運算式,例如:今年是 2026 年。
內容集合
文章放在 src/content/posts/ 資料夾中,frontmatter 由 src/content.config.ts 中的 schema 驗證:
const posts = defineCollection({
loader: glob({ base: './src/content/posts', pattern: '**/*.{md,mdx}' }),
schema: ({ image }) =>
z.object({
title: z.string(),
pubDate: z.coerce.date(),
category: z.string(),
tags: z.array(z.string()).default([]),
draft: z.boolean().default(false),
}),
});
語法高亮
Astro 內建 Shiki,支援亮/暗雙主題:
npm run dev # 本機開發
npm run build # 建置 + 產生搜尋索引
站內搜尋
使用 Pagefind,在建置完成後掃描 dist/ 產生靜態索引,不需要後端伺服器。
| 功能 | 實作方式 |
|---|---|
| RSS | @astrojs/rss |
| 網站地圖 | @astrojs/sitemap |
| 搜尋 | Pagefind |
| 留言 | Giscus |