这个博客是怎么搭起来的
#技术#Astro
记录一下这个博客的技术选型和搭建过程,方便以后回看。
技术栈
- Astro:内容型网站框架。文章就是
src/content/blog/下的 markdown 文件,构建时生成纯静态 HTML,默认不往浏览器发任何 JavaScript。 - Tailwind CSS 4:样式方案,通过
@tailwindcss/vite插件接入,文章排版用@tailwindcss/typography的prose类。 - Cloudflare Pages:托管,推到 GitHub 自动构建部署。
目录结构
/
├── src/
│ ├── content/
│ │ └── blog/ ← 文章(markdown)
│ ├── layouts/
│ │ └── BaseLayout.astro
│ ├── pages/
│ │ ├── index.astro ← 首页
│ │ ├── about.astro ← 关于
│ │ └── blog/
│ │ ├── index.astro
│ │ └── [...slug].astro
│ ├── styles/
│ │ └── global.css
│ └── content.config.ts ← 文章集合的 frontmatter 校验
└── public/
└── favicon.svg
写一篇新文章
在 src/content/blog/ 下新建一个 .md 文件:
---
title: 文章标题
description: 一句话摘要
pubDate: 2026-10-29
tags: [标签]
---
正文用 markdown 写。
保存之后 pnpm dev 就能在本地看到,推到 main 即自动上线。
为什么是这个组合
个人博客的核心需求是:写起来快、读起来快、维护成本低。Astro 的内容集合给 markdown 加了 frontmatter 类型校验,写错字段会在构建时报错;整站静态化之后托管成本几乎为零。如果以后需要加交互功能(评论、搜索),Astro 的 islands 架构也允许按需引入框架组件,不至于推倒重来。