GitHub搭建Hexo
本文最后更新于 2025年6月27日 下午
前言
随着我的WordPress博客内容越写越多,对稳定性要求越来越高,自己的个人服务器上的也不晓得什么时候会暴毙,思虑再三下,决定把博客迁移到GitHub上,以hexo搭建一个静态博客,只要GitHub不倒,我的博客就不会倒,这样就永生不灭了。
环境准备
- git
1 | |
生成密钥文件
1 | |
密钥生成路径在:C:\Users\<user>\.ssh
打开GitHub配置keys
https://github.com/settings/keys
点右上角新建个keys,然后把id_rsa.pub这个公钥文件的内容粘贴进去就行

测试
1 | |
- node.js
https://nodejs.org/en/download/current
直接默认安装就好
hexo部署
- 在线GitHub配置
新建个公开仓库,命名方式有规范,
必须是<github_name>.GitHub.io
- 本地hexo配置
1 | |
- 安装自动部署
1 | |
--save加不加的区别在于是否写入到依赖文件package.json中
hexo常见命令汇总
1 | |
1 | |
hexo server相关命令
1 | |
hexo配置文件
需要修改配置文件_config.yml,在blog根目录
修改
title:为你的博客名称修改
language: zh-CN修改:
url:字段为你的博客域名,格式为https://<GitHub_name>.github.io在文件最底部添加以下信息
1 | |
测试
1 | |
访问本地的4000端口:http://localhost:4000
测试通过以后就可以开始写文章了,文章目录:hexo\blog\source\_posts
推送发布
1 | |
正常本地预览,直接执行hexo s,如果要发布话最好先执行clean命令,会去删除生成的public文件,完整部署命令: hexo clean && hexo g && hexo d。或者直接 hexo d -g
优化配置
图片配置
- 配置文件
hexo的图片默认不能用md自带的语法进行本地解析,需要打开配置文件_config.yml
修改post_asset_folder 默认是fales,改为true就行

- 添加插件
安装插件hexo-asset-image
1 | |
以后每次新建文章都会在_posts目录下新建一个同名文件夹,把图片丢在那个文件夹里,然后再在markdown文件里引用他就好了
设置VS Code 中 Markdown粘贴图片的位置
PS
使用VS Code中的
markdown.copyFiles.destination配置项,可以设置粘贴图片的位置。
VS Code内置了markdown编辑器非常好用,但是默认情况下,VS Code会将粘贴的图片放在markdown文件的同级目录下,这样不符合hexo的规范,hexo的文章无法链接到图片。
其实只需要简单的设置一下,就可以解决这个问题,省略很多不必要的步骤。
- 在VS Code中,按下
Ctrl + ,,打开设置界面。 - 在搜索框中输入
markdown copy, 找到Markdown> Copy Files:Destination位置 - 新增配置项 key 为
**/*.md, value 为${documentBaseName}/${fileName}
其中
${documentBaseName}表示markdown文件的文件名,${fileName}表示图片的文件名。

这样以后每次写hexo文章都只需要将图片图片直接在VS Code里粘贴就可以了。
自动生成 categories
插件说明
hexo-directory-category 插件,它根据每个帖子的文件夹结构自动生成类别。
最常用的文件管理策略,就是利用文件系统目录结构(树形结构 directory-tree)。
同样,为了便于管理大量的日志文件,采用目录结构是一种简便可行的方案。hexo-auto-category根据日志文件(Markdown)所在文件目录自动分类,即自动生成markdown的front-matter中的categories变量。
同样效果的还有hexo-auto-category插件。这个插件知名度最高,但是这个插件年久失修,已经近乎失效了。还有功能更齐全的hexo-enhancer插件,这个插件可以生成所有的Front-matter,可自行测试。
示例
对于博客 source/_post/web/framework/hexo.md,该插件会自动生成以下categories
1 | |
安装
1 | |
在站点根目录下的_config.yml添加:
1 | |
域名配置
- 添加
CNAME文件位于目录/source下,文件内容为hexo的域名 - 添加域名解析
CNAME类型到hexo的域名 - GitHub配置
Settings->GitHub Pages->Custom domain添加hexo的域名
其它说明
- Hexo 默认会把
source/目录下的“非可渲染”文件(例如图片、HTML、配置文件等)原样拷贝到public/目录下, source/目录下的可渲染文件(例如Markdown文件)会被渲染成HTML文件并保存在public/目录下public/目录下的文件会被部署到 GitHub Pages
所以,如果有本地服务器解析的需求,配置了 web.config以及.htaccess 等配置文件在public/目录下。执行hexo clean && hexo g后,会先把public/目录删除后重新生成,本地配置的文件会失效。可以把需要配置的文件复制到 source/ 目录下。这样,每次运行 hexo d 命令时,都会从source/目录下把配置文件复制到public/目录。