skip to content
我的博客

Astro 主题开发:从写网站到做主题

/ 4 min read

写过 Astro 网站之后,下一步自然是:能不能把我这套设计复用出去,让别人也用上?这就是主题开发——它和建站的区别不在技术难度,而在约束的转换:网站里你可以随手写死的东西(标题、导航、颜色),在主题里都必须收敛成配置项或内容约定,因为用主题的人和你不是一个人。

这个系列以官方文档为基础,带你把“一个能跑的博客”重构成“一个可分发的 Astro 主题”。一个现成的对照物就在眼前:本站就是 astro-cactus 主题 v8.3.0 的 fork——一个把站点配置、内容 schema、布局分层都收敛过的成熟主题,每个环节我们都会回头看看它是怎么做的。

内容依据 Astro 官方文档整理(组件、布局、样式、发布等页面),代码示例在其基础上改编,每章开头给出对应文档链接。

主题的两种形态

形态 使用方式 适合
模板仓库(GitHub Template) 用户点 “Use this template” 或 clone 后自己改代码 设计感强、深度定制的博客主题
npm 组件包 npm install 后按需引入组件/集成 复用某个部件(组件、适配器、加载器)

两个形态不互斥:astro-cactus 本质是模板仓库形态,但同样的代码加上 package.json 的 exports 就能变成 npm 包。第 7 章会展开两条路线。

章节导航

章节 内容 官方对应
第 1 章:主题的骨架 项目结构、目录分层、“会变的东西”收敛原则 项目结构
第 2 章:组件与 Props 组件语法、Props 接口、class 传递 Astro 组件
第 3 章:布局与插槽 BaseLayout 模式、slot 回退、嵌套布局 布局
第 4 章:样式与主题化 scoped 样式、全局样式边界、CSS 变量与暗色模式 样式与 CSS
第 5 章:为内容设计 schema 内容集合即契约:主题作者的 frontmatter 设计 内容集合
第 6 章:主题配置文件 site.config 模式:让用户改一个文件就能换脸 —(实践章)
第 7 章:分发主题 模板仓库 vs npm 包、workspaces、发布流程 发布到 npm
附录:主题开发检查清单 七个维度的自查清单 + 文档索引 —

学习路线建议

  • 已读过本站《Astro 建站实战》系列:路由、内容集合基础、部署在那边讲过,本系列不重复,直接从“主题化改造”切入。
  • 没读过也行:跟着官方 Blog 教程先建一个最小博客,再从第 1 章开始做主题化改造,效果一样。

遗留问题

  • 主题的国际化(i18n)与多语言路由,超出本系列范围,官方有独立指南。
  • 表单、搜索等需要服务端的交互,静态主题只覆盖前端形态。