基于 Astro 的静态博客模板,可通过 GitHub Use this template 创建项目
ulbo-astro-theme-template — Astro 启动器模板
作者 xxy1103
ulBo 是一个基于 Astro 的个人博客主题模板,提供长文阅读工具、内容发现、SEO 元数据与静态部署配置,采用 MIT 许可。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
支持 Markdown / MDX 文章,带严格 Frontmatter 校验与草稿隔离
内置 Fuse.js 模糊搜索、Cmd/Ctrl + K 快捷入口、归档、标签筛选与分页
提供 KaTeX 公式、Mermaid 图表、代码复制、图片灯箱和 PDF 导出等长文阅读工具
生成 RSS、Sitemap、Canonical、Open Graph、Twitter Card 与 JSON-LD 结构化数据
站点、个人资料与 Hero 内容集中在 src/config/ 下配置,便于迁移与定制
模板详细介绍
ulBo Astro Theme 是一个面向个人博客的 Astro 主题模板,仓库以 GitHub Template 形式提供,可直接创建为自己的博客项目。主题覆盖首页、归档、标签、About 与文章详情等页面,并内置明暗主题、响应式布局和基于 Astro View Transitions 的页面动效。
写作与阅读方面,模板支持 Markdown / MDX 文章,提供严格 Frontmatter 校验、草稿隔离、固定目录、字数与阅读时长、代码复制、KaTeX 公式、Mermaid 图表、图片灯箱以及适合打印的 PDF 导出。内容发现依赖 Fuse.js 模糊搜索与 Cmd/Ctrl + K 快捷入口,并配有归档、标签筛选和分页。
发布与工程方面,模板生成 RSS、Sitemap、Canonical、Open Graph、Twitter Card 和 JSON-LD 结构化数据,生产构建会排除草稿。站点、个人资料和 Hero 内容集中在 src/config/ 下配置,即使文章目录为空,核心页面也可正常构建。项目输出静态文件,仓库已包含 Cloudflare Workers Static Assets 配置,也可部署到 Vercel、Netlify 或 GitHub Pages。
使用限制:需要 Node.js 22.12.0 或更高版本、npm 9.6.5 或更高版本;图片优化需显式执行 npm run optimize:images,普通构建不会修改文章或图片;演示图片、字体、图标等第三方素材需按各自许可核对,域名、托管等外部服务可能另外收费。
适合你的项目吗?
适用场景
- 搭建个人技术博客并长期发布 Markdown / MDX 长文
- 需要归档、标签筛选与模糊搜索来组织已有文章
- 希望文章页面包含公式、图表、代码块和图片灯箱等阅读元素
- 将静态站点部署到 Cloudflare Workers / Pages、Vercel、Netlify 或 GitHub Pages
适合人群
- 希望长期维护个人内容的写作者、开发者和独立创作者
- 偏好静态站点生成与 Markdown / MDX 写作流程的用户
- 需要 SEO 元数据、RSS 与 Sitemap 等发布基础能力的博客项目
- 使用 VS Code 并愿意搭配 ulBo Article Manager 插件管理文章的用户
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
环境要求 Node.js 22.12.0 或更高版本、npm 9.6.5 或更高版本
- 2
在 GitHub 仓库点击 Use this template 创建项目后运行 npm install 与 npm run dev,默认访问 http://localhost:4321
- 3
通常只需修改 src/config/site.ts、src/config/profile.ts、src/config/hero.ts,并在 src/content/blog/ 写文章、public/image/ 放图片
- 4
生产构建使用 npm run build,输出目录为 dist;图片优化需先运行 npm run optimize:images:dry-run 预览,再执行 npm run optimize:images
- 5
仓库已包含 Cloudflare Workers Static Assets 配置,可运行 npm run build 与 npm run deploy;其他平台将构建命令设为 npm run build、输出目录设为 dist
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 使用本主题需 Node.js 22.12.0 或更高版本、npm 9.6.5 或更高版本,低于该版本的环境无法运行。
- 图片优化不会随普通构建自动执行,必须手动运行 optimize:images 命令,否则不会生成 WebP 或更新文章引用。
- 配套的 ulBo Article Manager 为可选 VS Code 插件,需从插件仓库安装本地 VSIX,不属于主题本体。
- 部署需自行使用 Cloudflare、Vercel、Netlify 或 GitHub Pages 等外部托管服务,可能产生额外费用。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
环境要求: - Node.js 22.12.0 或更高版本 - npm 9.6.5 或更高版本
README 原文
需要优化图片时,先预览变更,再显式执行:
README 原文
当前版本可从插件仓库安装本地 VSIX
README 原文
https://github.com/xxy1103/ulbo-astro-theme-template/blob/main/LICENSEhttps://github.com/xxy1103/ulbo-astro-theme-template/blob/main/README.md项目输出为静态文件,可部署到 Cloudflare Workers / Pages、Vercel、Netlify 或 GitHub Pages。
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- Astro Themes
- 资料与维护参考分
- 资料较完整 · 87 / 100
- 技术栈
- Astro
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-27
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 01a791ae32d7e5139c1ed3bc294d2c4e8c5def2e43769864f494172490297932
2026-10-02T18:47:00.326Z
来源文件 / 仓库# ulBo Astro Theme
<p align="center">
<strong>一个兼顾视觉表达、长文阅读与发布工程的 Astro 个人博客主题。</strong>
</p>
<p align="center">
<a href="./README.md">中文</a> ·
<a href="./README.en.md">English</a>
</p>
<p align="center">
<a href="https://astro.build/"><img alt="Astro 6" src="https://img.shields.io/badge/Astro-6.4.8-BC52EE?logo=astro"></a>
<a href="https://nodejs.org/"><img alt="Node.js 22+" src="https://img.shields.io/badge/Node.js-22%2B-339933?logo=nodedotjs&logoColor=white"></a>
<a href="./LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
</p>
<p align="center">
<a href="https://template.ulna520.top"><strong>在线预览</strong></a> ·
<a href="https://blog.ulna520.top">真实博客</a> ·
<a href="https://astro.build/themes/details/ulbo/">Astro 主题商城</a> ·
<a href="https://github.com/xxy1103/ulbo_vscode">VS Code 文章管理工具</a>
</p>

## 为什么选择 ulBo
ulBo 面向希望长期维护个人内容的写作者、开发者和独立创作者。它不只提供一套博客页面,还把阅读体验、内容组织、搜索发现、SEO、图片优化和日常写作流程组合成一套完整方案。
| 方向 | 能力 |
| --- | --- |
| **视觉与动效** | 沉浸式 Hero、响应式布局、明暗主题,以及基于 Astro View Transitions 和 Material Design 3 曲线的页面动效。 |
| **长文阅读** | 固定目录、字数与阅读时长、代码复制、KaTeX 公式、Mermaid 图表、图片灯箱和适合打印的 PDF 导出。 |
| **内容发现** | Fuse.js 模糊搜索、`Cmd/Ctrl + K` 快捷入口、文章归档、标签筛选与分页。 |
| **发布质量** | 严格 Frontmatter、草稿隔离、RSS、Sitemap、Canonical、Open Graph、Twitter Card 和 JSON-LD。 |
| **配置与迁移** | 站点、个人资料和 Hero 内容集中在 `src/config/`;支持 Markdown / MDX 与 Hexo 风格图片路径。 |
| **性能工程** | 图片懒加载、异步解码、按需 KaTeX、延迟搜索索引、预取策略,以及可预览的 WebP 优化流程。 |
## 主题预览
<table>
<tr>
<td width="50%"><img src="./docs/images/promo/ulbo-light-dark.png" alt="ulBo 明暗主题"></td>
<td width="50%"><img src="./docs/images/promo/ulbo-longform.png" alt="ulBo 长文阅读"></td>
</tr>
<tr>
<td align="center"><strong>一致的明暗主题体验</strong></td>
<td align="center"><strong>为技术长文准备的阅读工具</strong></td>
</tr>
</table>

## 快速开始
点击 GitHub 仓库中的 **Use this template** 创建自己的博客,然后运行:
```bash
npm install
npm run dev
```
默认访问地址为 `http://localhost:4321`。
环境要求:
- Node.js 22.12.0 或更高版本
- npm 9.6.5 或更高版本
## 配置博客
通常只需要修改以下位置:
| 文件 | 用途 |
| --- | --- |
| `src/config/site.ts` | 网站地址、标题、描述、语言和仓库链接 |
| `src/config/profile.ts` | 头像、身份介绍、联系方式和社交链接 |
| `src/config/hero.ts` | 首页、归档、标签、About 和文章默认 Hero |
| `src/content/blog/` | Markdown / MDX 文章 |
| `public/image/` | 文章与页面图片 |
即使 `src/content/blog/` 还是空目录,首页、归档、标签和 About 等核心页面也可以正常构建,适合先完成个性化配置,再开始发布内容。
## 写一篇文章
在 `src/content/blog/` 中新建 `.md` 或 `.mdx` 文件:
```md
---
title: "我的第一篇文章"
date: "2026-08-03T10:00:00+08:00"
description: "介绍如何使用 ulBo 搭建个人博客,包括主题配置、文章写作、本地预览、图片优化与部署流程。"
draft: false
categories:
- "记录"
tags:
- "astro"
- "blog"
---
正文从这里开始。
```
完整字段与校验规则见 [Frontmatter 标准](./standard/frontmatter.md)。
生产构建会统一排除草稿,覆盖首页、归档、详情页、标签、搜索索引和 RSS;开发环境仍可通过草稿标识查看和校对内容。
## 推荐搭配 ulBo Article Manager
[ulBo Article Manager](https://github.com/xxy1103/ulbo_vscode) 是为本主题开发的可选 VS Code 写作工具。它让你在熟悉的 Markdown 编辑器旁完成:
- 新建草稿,搜索、筛选和打开文章;
- 可视化编辑标题、日期、描述、分类、标签和草稿状态;
- 使用 VS Code 语言模型生成文章描述,不可用时回退到本地提取;
- 启动 Astro 开发服务并直接预览当前文章;
- 发布前校验 Frontmatter、标签和正文引用图片;
- 将文章与关联图片精确暂存到 Git;
- 将删除的文章移入系统回收站,保留恢复能力。
主题负责展示与构建,插件负责写作和文章管理。插件不会自动执行 commit、push 或部署,最终发布仍由你控制。
当前版本可从插件仓库安装本地 VSIX,详细说明见 [ulBo Article Manager README](https://github.com/xxy1103/ulbo_vscode#readme)。
## SEO 与性能
当前代码已经实现:
- Canonical、robots、Open Graph、Twitter Card 和 JSON-LD;
- 首页 `WebSite`、About 页 `Person`、文章页 `BlogPosting` 结构化数据;
- RSS、Sitemap,以及归档分页的 `noindex,follow` 与 `rel=prev/next`;
- Markdown 图片懒加载和异步解码;
- 文章 Hero 预加载、KaTeX 样式按需加载;
- 搜索索引首次打开时再获取;
- 防止明暗主题首屏闪烁;
- 独立于普通构建的 WebP 图片优化工具。
`npm run build` 只负责构建,不会修改文章或图片。需要优化图片时,先预览变更,再显式执行:
```bash
npm run optimize:images:dry-run
npm run optimize:images
```
更完整的实现边界和代码位置见 [英文 README](./README.en.md#seo-optimizations-code-aligned)。
## 常用命令
| 命令 | 说明 |
| --- | --- |
| `npm run dev` | 启动开发服务器 |
| `npm run build` | 构建生产版本,不修改文章或图片 |
| `npm run preview` | 预览生产构建结果 |
| `npm run check` | 检查 Astro 与 TypeScript |
| `npm test` | 运行测试 |
| `npm run frontmatter:check` | 只读检查文章 Frontmatter |
| `npm run frontmatter:fix` | 规范化 Frontmatter,并验证正文未被改动 |
| `npm run optimize:images:dry-run` | 预览图片优化结果 |
| `npm run optimize:images` | 生成 WebP 并更新文章引用 |
## 部署
项目输出为静态文件,可部署到 Cloudflare Workers / Pages、Vercel、Netlify 或 GitHub Pages。
仓库已包含 Cloudflare Workers Static Assets 配置:
```bash
npm run build
npm run deploy
```
使用其他平台时,将构建命令设为 `npm run build`,输出目录设为 `dist`。
## 项目结构
```text
src/
├─ components/ 页面组件
├─ config/ 站点、个人资料与 Hero 配置
├─ content/blog/ Markdown / MDX 文章
├─ layouts/ 通用页面与文章布局
├─ lib/ 内容、搜索和资料处理逻辑
├─ pages/ 首页、归档、标签、About、RSS 等路由
├─ plugins/ Markdown / HTML 处理插件
└─ scripts/ 搜索、目录、Mermaid、灯箱与页面交互
```
前端模块关系见 [架构地图](./docs/frontend-architecture-map.md)。
## 相关项目
- [ulBo Article Manager](https://github.com/xxy1103/ulbo_vscode):配套的 VS Code 文章管理工具。
- [xxy1103.github.io](https://github.com/xxy1103/xxy1103.github.io):使用 ulBo 搭建的真实个人博客。
## 参与贡献
欢迎提交 Issue 和 Pull Request。开始前请阅读 [贡献指南](./CONTRIBUTING.md)、[行为准则](./CODE_OF_CONDUCT.md) 与 [安全策略](./SECURITY.md)。
## 许可证
[MIT](./LICENSE)
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

astrowind
⭕️ AstroWind: A free template using Astro v7 and Tailwind CSS v4. Astro starter theme.
Astro · 博客
accessible-astro-starter
Accessible Astro Starter 是一个以无障碍为核心理念的 Astro 6 启动模板,由 incluud 团队维护。
Astro · 博客

astro-erudite
An opinionated, unstyled static blogging template built with Astro and native CSS.
Astro · 作品集

astro-shopify
astro-shopify 是一个面向开发者的轻量级电商启动模板,用于构建基于 Shopify 的无头店面。
Astro · 电商

brutal
A neobrutalism Astro starter theme
Astro · 启动器

qwind
⭕️ Qwind: A template to make your website using Qwik + Tailwind CSS.
Astro · 工具站
