将博客从 Hexo 迁移到 Astro

1067 字
5 分钟
将博客从 Hexo 迁移到 Astro

这几天把博客迁移到了 Astro,界面整体焕新了许多,下面就是迁移的过程。

为什么决定迁移#

其实迁移到 Astro 最主要的原因就是主题比较好看。

前段时间在网上刷到了 Astro 这个博客框架,所以去了解了一下。

去 GitHub 上搜索了一下主题,发现主题外观挺不错,所以便下定决心要迁移了。

Hexo 的缺点#

  1. 速度慢

    Hexo 需要手动构建完才能上传,构建时间很久,而且都是在本地进行的。未来文章多了这点就会更加明显。

    也考虑过换 Hugo,但 Hugo 的主题少,而且都是比较简洁的风格,个人觉得不好看。

  2. 需要备份源文件

    Hexo 上传到 GitHub 的是构建好的静态文件,如果误删了本地的源文件就要从头开始。

    我就有一次误删了,幸好内容比较少,很快就恢复了。

    并且这也导致不能随时随地写作。

    解决的方法就是再建一个仓库存放源文件,但这导致我每次都要提交两次。这也无法解决第二个问题:必须克隆仓库到本地并配置好 Git,因为写作完需要执行一些部署指令。

Astro 的其他优点#

深入探索后又发现了其他许多优点。

  1. 配置方便:只需要直接克隆主题仓库然后直接安装依赖就可以用了,不需要安装完框架再导入主题。
  2. 本地预览:虽然 Hexo 也有,但 Astro 的是实时更新的,不需要手动构建。(有点类似 VitePress)
  3. 不需要手动构建:构建过程是 Cloudflare Pages 自动执行的,只需要上传就完事。同样也解决了 Hexo 速度慢和需要备份源文件的问题。(同样类似 VitePress)

迁移过程#

安装#

找一个想要的主题,将 Code 里的仓库链接复制一下。

找到一个用于存放博客文件夹的位置。右键,Open Git Bash here,git clone 仓库链接,等待克隆完成,然后把生成的文件夹重命名一下。

进入该文件夹,先安装依赖,pnpm install

然后启动本地开发服务器以便实时看到预览,pnpm dev

配置#

找到主题的文档,从头到尾读一遍,按照文档的说明配置。

我还意外了解到了一种图片格式——AVIF。在几乎相同质量下,PNG要几MB,而AVIF仅仅需要几十KB。用比较新的浏览器基本都能加载。

只需要找个网站转换一下格式,然后在配置中引用即可。比较大的图片都可以用这个格式。

迁移文章#

文章最主要的不同就是 Front-matter 了。

这是 Hexo 的 Front-matter 格式:(置顶和封面取决于主题)

---
title: 标题
date: 发布时间 (yyyy-MM-dd HH:mm:ss)
excerpt: 摘要
tags:
- 标签1
- 标签2
- 标签3
categories:
- 一级分类
published: 是否发布
---

这是 Astro 的:

---
title: 标题
published: 发布时间 (yyyy-MM-dd)
pinned: 是否置顶
description: 摘要
tags: [标签1, 标签2, 标签3]
category: 分类
draft: 是否是草稿
image: 封面路径或URL
---

只需要替换一下一部分名称和日期的格式就可以了。

文章链接#

Hexo 如果没有额外配置的话默认是:year/:month/:day/:title/,而 Astro 默认是posts/标题

如果文章链接不同记得做一下重定向。

部署#

步骤基本和 Hexo 一样

先创建一个 Git 仓库,提交到 GitHub。然后我是用 Cloudflare Pages 部署的,国内访问速度比 GitHub Pages 更快。

和 Hexo 不同的是需要配置一下。把构建命令设为pnpm build,输出目录设为dist。这样就只需要用 Git 上传源文件,云端自动构建和部署。

结语#

换了 Astro 最能感知到的变化就是主题更美观了,同时编写文章也更方便了。

这是一个比较新的框架,目的是减少JS脚本,提高加载速度。目前用下来除了主题没有什么明显的差异。

相比于 Hexo 和 Hugo,个人认为 Astro 更适合搭博客。

文章分享

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

将博客从 Hexo 迁移到 Astro
https://blog.fblaze62.top/posts/hexo-to-astro/
作者
FeatherBlaze
发布于
2026-07-06
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
FeatherBlaze
达成成就:超越生死!
公告
这是用 Astro 重构的博客!访问 https://hexo.fblaze62.top/ 查看旧站点。
分类
标签
站点统计
文章
3
分类
3
标签
9
总字数
2,971
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.13.4
文章许可
CC BY-NC-SA 4.0

文章目录