视频加载失败

从Hexo到Astro Firefly:我的博客迁移之旅

1628 字
8 分钟
从Hexo到Astro Firefly:我的博客迁移之旅
从Hexo到Astro Firefly:我的博客迁移之旅

朋友们!还在纠结博客框架选择吗?看过来!#

作为一个写了几年博客的技术博主,我最近完成了从 HexoAstro Firefly 的迁移。今天就来和大家分享一下这次迁移的全过程,包括两个框架的对比、迁移步骤以及部署经验。

为什么要从 Hexo 迁移到 Astro?#

📊 框架对比#

特性HexoAstro Firefly
技术栈Node.js + EJS/PugAstro + Svelte + Tailwind CSS
构建速度中等极快(增量构建)
加载速度一般超快(零JS默认)
SEO优化依赖插件内置优化
开发体验静态渲染混合渲染(SSR/SSG)
生态系统插件丰富但陈旧现代化且活跃
TypeScript支持有限原生支持
热更新较慢毫秒级响应

✨ Astro 的核心优势#

  1. 更快的构建速度:Astro 的增量构建让开发体验大幅提升
  2. 更好的性能:默认零 JS,首屏加载极快
  3. 现代化技术栈:支持 React、Vue、Svelte 等多种框架
  4. 内置优化:自动代码分割、图片优化、SEO 友好

🚀 迁移过程详解#

步骤1:环境准备#

首先确保你的环境满足要求:

Terminal window
# 检查 Node.js 版本(需 ≥ 22)
node -v
# 安装 pnpm(推荐)
npm install -g pnpm
pnpm -v

步骤2:Fork Firefly 仓库#

在 GitHub 上 Fork Firefly 仓库到你的账户。

Terminal window
# Fork Firefly 仓库地址
https://github.com/CuteLeaf/Firefly

步骤3:初始化 Firefly 项目#

Terminal window
# 克隆仓库(建议先 Fork 到自己的仓库)
git clone https://github.com/你的用户名/Firefly.git
cd Firefly
# 安装依赖
pnpm install

步骤4:配置博客基础信息#

编辑 src/config/siteConfig.ts

// 站点基础配置
export const SITE_CONFIG = {
name: "你的博客名称",
title: "你的博客标题",
description: "你的博客描述",
lang: "zh_CN",
url: "https://你的域名.com",
// ... 其他配置
};

步骤5:迁移文章内容#

Hexo 的文章通常在 source/_posts/ 目录,需要迁移到 Astro 的 src/content/posts/ 目录。

Frontmatter 转换示例:

Hexo 格式:

---
title: 文章标题
date: 2024-01-01 12:00:00
tags: [标签1, 标签2]
category: 分类
---

Firefly 格式:

---
title: 文章标题
published: 2024-01-01
description: 文章描述
image: ./cover.jpg # 或使用 "api" 启用随机封面
tags: [标签1, 标签2]
category: 分类
draft: false
pinned: false
comment: true
---

步骤6:处理图片和静态资源#

将 Hexo 的 source/images/ 迁移到 Astro 的 public/ 目录。

Terminal window
# 复制图片资源
cp -r ../hexo-blog/source/images/* public/images/

步骤7:配置导航栏#

编辑 src/config/navBarConfig.ts 配置导航菜单组件.

步骤7:配置侧边栏#

src/config/sidebarConfig.ts 配置侧边栏组件。

更多个性化配置,请参考 Firefly 主题文档

步骤7:本地测试#

Terminal window
# 启动开发服务器
pnpm dev
# 构建生产版本
pnpm build
# 预览构建结果
pnpm preview

🛠️ 部署实战:Vercel + Cloudflare#

  1. 登录 Vercel,点击 “New Project”

2. 导入仓库,选择你的 Firefly 仓库 3. 配置项目(默认已配置好,确认即可)

  • Framework Preset: Astro
  • Root Directory: ./
  • Build Command: pnpm run build
  • Output Directory: dist
  1. 点击 Deploy,等待部署完成

  2. 配置域名(可选):Vercel 域名在国内访问速度较慢,建议配置自定义域名。这里以 Cloudflare 为例,配置域名后即可访问。

    • 购买域名(如果还没有)
    • 打开刚部署好的 Vercel 项目,点击 “Domains” 选项卡,添加自定义域名。
    • 在 Cloudflare 控制台添加自定义域名
    • 配置 DNS 记录,将域名指向 Vercel 提供的 IP 地址
    • 等待 DNS 记录生效(通常需要 10-30 分分钟)
  3. 必应IndexNow(可选):

    • 必应 IndexNow 点击 “Get Started” 按钮
    • 在打开的页面中,下滑到页面底部,有一个Generate API Key 区域,点击 “Generate” 按钮,即可获取 新的API Key,复制该 Key 到剪贴板,
    • 然后到blog根目录/public/文件夹下创建一个apikey.txt文件,将复制的API Key 放入文件中,注意txt文件名也为key的内容。
    • 安装必应 IndexNow 插件,在根目录执行pnpm install astro-indexnow
    • 配置插件,在blog/astro.config.mjs中添加以下内容:
    // 引入 IndexNow 插件
    import indexnow from 'astro-indexnow';
    // 新增 IndexNow
    indexnow({
    key: '7axxxxxxxxxxxxxxxxxxxb43c1', // 你的Key
    // 可选:指定引擎(默认必应+Yandex)
    keyLocation: '/7axxxxxxxxxxxxxxxxxxxb43c1.txt',
    // 可选:提交引擎(默认 Bing、Yandex)
    engines: ['bing', 'yandex'],
    // engines: ['bing']
    })

    • 这么操作完后,每次执行pnpm run build,即可自动提交 IndexNow 插件(本地执行不会推送哦)

🎨 Firefly 主题特色功能#

1. 双侧边栏布局#

Firefly 支持单侧边栏和双侧边栏配置,可以放置日历、目录、音乐播放器等组件。

2. 多种文章布局#

支持列表布局、网格布局、瀑布流布局,可在配置文件中自由切换。

3. 个性化配置#

  • 主题色自定义(360° 色相调节)
  • 亮暗色模式自动切换
  • 自定义字体和壁纸
  • 樱花飘落等动画特效

4. 功能丰富#

  • 全文搜索(Pagefind)
  • 文章置顶和推荐
  • 评论系统集成
  • 友链和相册功能

💡 迁移注意事项#

  1. 备份数据:迁移前务必备份 Hexo 博客的所有文件
  2. URL 重定向:如果文章 URL 结构变化,需要配置重定向规则
  3. 评论迁移:如果使用 Disqus 等评论系统,需要迁移评论数据
  4. SEO 保留:确保文章的永久链接不变,或设置 301 重定向
  5. 测试验证:迁移后全面测试各项功能是否正常

📝 总结#

从 Hexo 迁移到 Astro Firefly 是一次非常愉快的体验:

  1. 开发体验提升:热更新速度极快,TypeScript 支持完善
  2. 性能大幅提升:首屏加载时间减少了 60%+
  3. 功能更加丰富:Firefly 主题提供了很多开箱即用的功能
  4. 部署更加便捷:Vercel 和 Cloudflare 都提供了很好的支持

如果你也在考虑迁移博客,不妨试试 Astro Firefly,相信你会喜欢上它的!

项目地址#

互动时间#

你现在使用的是什么博客框架?有没有考虑过迁移?欢迎在评论区分享你的想法!

如果你在迁移过程中遇到了什么问题,也可以在评论区留言,我会尽力帮助你!


推荐阅读

(注:文章部分信息来源于 Firefly 官方文档和个人迁移经验)

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
从Hexo到Astro Firefly:我的博客迁移之旅
https://blog.huhaha.vip/posts/hexo-to-firefly-migration/
作者
小王的博客
发布于
2026-05-21
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
小王的博客
一个上了年纪的猿人.
分类
标签
最新动态
站点统计
文章
209
分类
15
标签
161
总字数
478,322
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录