Astro博客

Firefly — Astro 博客模板

作者 slepoh

Firefly 是基于 Astro 的静态博客主题模板,在 Fuwari 基础上二次开发,提供多语言界面、Pagefind 全文搜索、多种壁纸与侧边栏布局,并可通过配置文件调整站点外观与功能。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-13查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

基于 Astro 生成静态站点,样式使用 Tailwind CSS,并通过 Swup 提供页面过渡动画

02

内置 i18n,UI 支持简体中文、繁体中文、英文、日文、俄文和韩文

03

使用 Pagefind 实现客户端全文搜索,可索引文章内容

04

壁纸支持横幅、全屏、全屏透明和纯色四种模式,主题色可 360° 色相调节

05

侧边栏支持单侧或双侧,文章列表支持单列列表与网格(多列/瀑布流)布局

06

扩展 Markdown 语法包含四种风格的提醒块、GitHub 仓库卡片和 Expressive Code 增强代码块

模板详细介绍

Firefly 是一个基于 Astro 的静态博客主题模板,由 slepoh 维护,仓库说明其是在 Fuwari 基础上的二次开发。模板使用 Astro 生成静态站点,样式层使用 Tailwind CSS,并借助 Swup 实现页面过渡动画。界面内置 i18n 国际化,UI 支持简体中文、繁体中文、英文、日文、俄文和韩文;搜索功能由 Pagefind 在客户端完成,可索引文章内容。

外观与布局方面,模板提供单侧边栏与双侧边栏配置,文章列表支持单列列表和网格(多列/瀑布流)布局,壁纸模式包括横幅壁纸、全屏壁纸、全屏透明壁纸和纯色背景,主题色支持 360° 色相调节,并可在亮色、暗色和跟随系统之间切换。导航栏的 Logo、标题和链接,以及页脚 HTML 内容均可自定义;字体、封面图、公告、评论、音乐播放器、看板娘、相册、友链、打赏等模块分别对应 src/config/ 目录下的独立配置文件。

内容写作方面,文章使用 Markdown/MDX,frontmatter 支持标题、发布日期、描述、封面图、标签、分类、草稿、语言、置顶和评论开关等字段。除 GitHub Flavored Markdown 外,还提供提醒块(Admonitions,支持 GitHub、Obsidian、VitePress、Docusaurus 四种风格)、GitHub 仓库卡片,以及基于 Expressive Code 的增强代码块,并集成 Mermaid 与 PlantUML 图表配置。动态内容存放在 src/content/dynamic/,一条动态对应一个 Markdown 文件,也可对接 Memos 作为数据源。

项目另有一个独立仓库 Firefly-Admin,通过 GitHub API 远程管理 TS 配置文件和 md/mdx 内容,保存即提交到 GitHub,可配合 Cloudflare 自动重新部署。本地开发要求 Node.js ≥ 22、pnpm ≥ 9,常用命令包括 pnpm dev、pnpm build、pnpm preview、pnpm check、pnpm format,以及创建文章和动态的 pnpm new-post、pnpm new-d。部署可参考 Astro 官方指南,Vercel、Netlify 等平台会根据环境自动选择适配器,构建产物输出到 dist。

使用限制方面,仓库采用 MIT 许可,允许免费使用、修改、商用和分发该版本代码,分发时需保留版权声明与完整 MIT 许可声明,代码按现状提供。演示图片、字体、图标等第三方素材需按各自许可单独核对;域名、托管等外部服务可能另外收费。模板未在资料中说明性能指标或生产环境表现,具体效果需自行构建验证。

Astro博客

适合你的项目吗?

适用场景

  • 搭建以 Markdown/MDX 写作的个人静态博客,并需要多语言界面
  • 希望用配置文件调整侧边栏、壁纸、主题色、字体、页脚等外观细节
  • 需要客户端全文搜索、文章置顶、草稿、分类标签等常见博客能力
  • 通过 Firefly-Admin 配合 GitHub API 远程管理内容,保存后触发自动重新部署
  • 将站点部署到 Vercel、Netlify、Cloudflare Pages 等静态托管平台

适合人群

  • 熟悉 Astro 或愿意按文档修改 src/config/ 配置文件的开发者
  • 使用 Markdown/MDX 写作并需要多语言 UI 的个人博客作者
  • 需要单侧/双侧边栏、列表或网格布局等可配置版式的站点
  • 计划用 GitHub 仓库管理内容并部署到静态托管平台的用户

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    本地环境要求 Node.js ≥ 22 与 pnpm ≥ 9,克隆仓库后执行 pnpm install 安装依赖

  2. 2

    博客设置集中在 src/config/ 目录,站点语言在 siteConfig.ts 中通过 SITE_LANG 设置

  3. 3

    开发服务器用 pnpm dev 启动,默认地址为 http://localhost:4321;构建用 pnpm build,产物输出到 dist

  4. 4

    部署时框架预设选 Astro,构建命令 pnpm run build,安装命令 pnpm install,输出目录 dist

  5. 5

    演示图片、字体、图标等第三方素材需按各自许可单独核对,不能仅凭代码的 MIT 许可判断

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • README 建议先 Fork 到自己的仓库再克隆,并提示先点 Star 再 Fork;这是推荐性操作指引,并非强制使用限制。
  • 若要使用 Memos 动态数据源,需自行部署或接入 Memos 服务,并在 dynamicConfig.ts 中配置 memos 选项,属于可选的外部服务依赖。
  • 部署需借助 Vercel、Netlify、Cloudflare Pages、EdgeOne Pages 等第三方托管平台,这些外部服务可能产生费用或需要账号。
  • 后台管理功能依赖独立的 Firefly-Admin 仓库,并通过 GitHub API 操作内容,需要 GitHub 账号与相应权限。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

**先 [Fork](https://github.com/CuteLeaf/Firefly/fork) 到自己仓库再克隆(推荐),记得先点 Star 再 Fork 哦!**

README 原文

也支持对接 [Memos](https://www.usememos.com/) 作为数据源,在 `src/config/dynamicConfig.ts` 中配置 `memos` 选项即可实时获取 Memos 动态

README 原文

**参考[官方指南](https://docs.astro.build/zh-cn/guides/deploy/)将博客部署至 Vercel, Netlify, Cloudflare Pages, EdgeOne Pages 等。**

README 原文

([Firefly-Admin](https://github.com/slepoh/Firefly-Admin))专为Firefly开发的一款内容管理后台,让Firefly的TS文件及md/mdx后缀的文件可视化管理,直接通过 GitHub API 远程增删改博客内容

README 原文
https://github.com/slepoh/Firefly/blob/master/LICENSEhttps://github.com/slepoh/Firefly/blob/master/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-13。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 80 / 100
技术栈
Astro
网站类型
博客
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-08-21
截图检查日期
2026-10-13

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-13

查看当时使用的来源资料

SHA-256: e85a1398afe3f91591d0e520d59fb15d9982b6be74b3884f0cf6fa93f8c168f9

2026-10-13T01:24:28.479Z

来源文件 / 仓库
⚡ 静态站点生成: 基于 Astro 的超快加载速度和 SEO 优化

🎨 现代化设计: 简洁美观的界面,支持自定义主题色

📱 移动友好: 完美的响应式体验,移动端专项优化

🔧 高度可配置: 大部分功能模块均可通过配置文件自定义

## 后台管理
([Firefly-Admin](https://github.com/slepoh/Firefly-Admin))专为Firefly开发的一款内容管理后台,让Firefly的TS文件及md/mdx后缀的文件可视化管理,直接通过 GitHub API 远程增删改博客内容、配置博客信息等操作, 保存即提交到 GitHub,Cloudflare 自动重新部署。

## ✨ 功能特性

### 核心功能

- [x] **Astro + Tailwind CSS** - 基于现代技术栈的超快静态站点生成
- [x] **流畅动画** - Swup 页面过渡动画,提供丝滑的浏览体验
- [x] **响应式设计** - 完美适配桌面端、平板和移动设备
- [x] **多语言支持** - i18n 国际化,UI 支持简体中文、繁体中文、英文、日文、俄语、韩文
- [x] **全文搜索** - 基于 Pagefind 的客户端搜索,支持文章内容索引

### 个性化
- [x] **动态侧边栏** - 支持配置单侧边栏、双侧边栏
- [x] **文章布局** - 支持配置(单列)列表、网格(多列/瀑布流)布局
- [x] **字体管理** - 支持自定义字体,丰富的字体选择器
- [x] **页脚配置** - HTML 内容注入,完全自定义
- [x] **亮暗色模式** - 支持亮色/暗色/跟随系统三种模式
- [x] **导航栏自定义** - Logo、标题、链接全面自定义
- [x] **壁纸模式切换** - 横幅壁纸、全屏壁纸、全屏透明壁纸、纯色背景
- [x] **主题色自定义** - 360° 色相调节

如果你有好用的功能和优化,请提交 [Pull Request](https://github.com/CuteLeaf/Firefly/pulls)

## 🚀 快速开始

### 环境要求

- Node.js ≥ 22
- pnpm ≥ 9

### 本地开发部署

1. **克隆仓库:**
   ```bash
   git clone https://github.com/Cuteleaf/Firefly.git
   cd Firefly
   ```
   
   **先 [Fork](https://github.com/CuteLeaf/Firefly/fork) 到自己仓库再克隆(推荐),记得先点 Star 再 Fork 哦!**

   ```bash
   git clone https://github.com/you-github-name/Firefly.git
   cd Firefly
   ```
3. **安装依赖:**
   ```bash
   # 如果没有安装 pnpm,先安装
   npm install -g pnpm
   
   # 安装项目依赖
   pnpm install
   ```

4. **配置博客:**
   - 编辑 `src/config/` 目录下的配置文件自定义博客设置

5. **启动开发服务器:**
   ```bash
   pnpm dev
   ```
   博客将在 `http://localhost:4321` 可用
   
### 社区教程
Cloudflare Workers 部署:[【不用服务器,无需备案,零成本搭建一个自己的个人博客】](https://www.bilibili.com/video/BV1hX9XBKEhm)

### 平台托管部署
- **参考[官方指南](https://docs.astro.build/zh-cn/guides/deploy/)将博客部署至 Vercel, Netlify, Cloudflare Pages, EdgeOne Pages 等。**
- **Vercel**、**Netlify** 等主流平台自动部署,会根据环境自动选择适配器。

   框架预设: `Astro`

   根目录: `./`

   输出目录: `dist`

   构建命令: `pnpm run build`

   安装命令: `pnpm install`

   [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/CuteLeaf/Firefly&project-name=Firefly&repository-name=Firefly)
   [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/CuteLeaf/Firefly)

## 📖 配置说明

> 📚 **详细配置文档**: 查看 [Firefly 使用文档](https://docs-firefly.cuteleaf.cn/) 获取完整的配置指南

### 设置网站语言

要设置博客的默认语言,请编辑 `src/config/siteConfig.ts` 文件:

```typescript
// 定义站点语言
const SITE_LANG = "zh_CN";
```

**支持的语言代码:**
- `zh_CN` - 简体中文
- `zh_TW` - 繁体中文
- `en` - 英文
- `ja` - 日文
- `ru` - 俄文
- `ko` - 韩文

### 配置文件结构

```
src/
├── config/
│   ├── index.ts                  # 配置索引文件
│   ├── siteConfig.ts             # 站点基础配置
│   ├── analyticsConfig.ts        # 统计分析配置
│   ├── announcementConfig.ts     # 公告配置
│   ├── backgroundWallpaper.ts    # 背景壁纸配置
│   ├── commentConfig.ts          # 评论系统配置
│   ├── coverImageConfig.ts       # 封面图配置
│   ├── displaySettingsConfig.ts  # 设置面板配置
│   ├── dynamicConfig.ts          # 动态页面配置
│   ├── effectsConfig.ts          # 动画特效配置(樱花等)
│   ├── expressiveCodeConfig.ts   # 代码高亮配置
│   ├── fontConfig.ts             # 字体配置
│   ├── footerConfig.ts           # 页脚配置
│   ├── friendsConfig.ts          # 友链配置
│   ├── galleryConfig.ts          # 相册配置
│   ├── licenseConfig.ts          # 许可证配置
│   ├── musicConfig.ts            # 音乐播放器配置
│   ├── navBarConfig.ts           # 导航栏配置
│   ├── pioConfig.ts              # 看板娘配置
│   ├── mermaidConfig.ts          # Mermaid 图表配置
│   ├── plantumlConfig.ts         # PlantUML 图表配置
│   ├── profileConfig.ts          # 用户资料配置
│   ├── sidebarConfig.ts          # 侧边栏布局配置
│   └── sponsorConfig.ts          # 打赏配置
```

## ⚙️ 文章 Frontmatter

```yaml
---
title: My First Blog Post
published: 2023-09-09
description: This is the first post of my new Astro blog.
image: ./cover.jpg  # 或使用 "api" 来启用随机封面图
tags: [Foo, Bar]
category: Front-end
draft: false
lang: zh-CN      # 仅当文章语言与 `siteConfig.ts` 中的网站语言不同时需要设置
pinned: false    # 置顶
comment: true    # 是否允许评论
---
```

## 动态

动态文件保存在 `src/content/dynamic/` 中,一个 Markdown 文件对应一条动态。可以使用快捷命令创建:

```bash
pnpm new-d 今天心情不错,出去吃了一顿火锅
```

`pnpm new-dynamic <content>` 也可以使用,和 `new-d` 完全等价。

```yaml
---
published: 2026-07-15 16:15:29
pinned: true  # 置顶
location: China # 位置
---

动态内容可以使用 Markdown 语法。
```

也支持对接 [Memos](https://www.usememos.com/) 作为数据源,在 `src/config/dynamicConfig.ts` 中配置 `memos` 选项即可实时获取 Memos 动态,支持置顶同步和图片附件展示。详见[动态文档](https://docs-firefly.cuteleaf.cn/zh/guide/dynamic.html)。

## 🧩 Markdown 扩展语法

除了 Astro 默认支持的 [GitHub Flavored Markdown](https://github.github.com/gfm/) 之外,还包含了一些额外的 Markdown 功能:

- 提醒块(Admonitions) - 支持 GitHub, Obsidian, VitePress, Docusaurus 四种风格主题配置 ([预览和用法](https://firefly.cuteleaf.cn/posts/markdown-extended/))
- GitHub 仓库卡片 ([预览和用法](https://firefly.cuteleaf.cn/posts/markdown-extended/))
- 基于 Expressive Code 的增强代码块 ([预览](http://firefly.cuteleaf.cn/posts/code-examples/) / [文档](https://expressive-code.com/))

## 🧞 指令

下列指令均需要在项目根目录执行:

| Command                    | Action                                 |
| :------------------------- | :------------------------------------- |
| `pnpm install`             | 安装依赖                               |
| `pnpm dev`                 | 在 `localhost:4321` 启动本地开发服务器 |
| `pnpm build`               | 构建网站至 `./dist/`                   |
| `pnpm preview`             | 本地预览已构建的网站                   |
| `pnpm check`               | 检查代码中的错误                       |
| `pnpm format`              | 使用 Biome 格式化您的代码              |
| `pnpm new-post <filename>` | 创建新文章                             |
| `pnpm new-d <content>`     | 创建一条动态                           |
| `pnpm new-dynamic <content>` | 创建一条动态(完整命令)              |
| `pnpm astro ...`           | 执行 `astro add`, `astro check` 等指令 |
| `pnpm astro --help`        | 显示 Astro CLI 帮助                    |

反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。