从Hexo开启第一篇博客
本文最后更新于:2025年5月13日 上午
前言
本教程基于Hexo博客,Hexo-Fluid主题,Github Pages,阿里云购买域名以及阿里云对象存储OSS实现
目前,笔者的域名已更换,图片未更换,但具体配置方式依旧有效。
基础步骤:
- 使用
Hexo博客及Fluid主题搭建博客基本框架- 通过
Github Actions使用Github Pages进行半自动化部署- 绑定所购域名(可选)
- 使用阿里云
OSS作为图床(可选Github仓库结合jsdelivr,但国内不稳定,不推荐)- 使用
Typora进行Markdown写作
使用Hexo博客及Fluid主题搭建博客基本框架
安装hexo
安装使用hexo之前需要先安装Node.js和Git,之后,可以通过以下命令安装hexo:
1 | |
可以通过以下命令查看主机中是否安装了node.js和npm
1 | |
执行下列命令,Hexo将会在指定目录中新建工作区
1 | |
层级结构如下:

转到工作文件夹内,建立一个.md文档,使用以下命令:
1 | |
如果添加环境变量总是失败,则使用以下命令:
1 | |
现在,你已经拥有第一篇博客文章(的毛坯)了!
具体语法可以使用Markdown语法,并参照Hexo写作的基本语法这篇文章
配置Hexo-Fluid[1]
具体配置方法请查看官方文档(脚注【^1】),此处只强调部分注意事项。
本指南中提到的:”站点配置“ 指的 Hexo 博客目录下的
_config.yml,”主题配置“ 指的是theme/fluid/_config.yml或者 博客目录下的_config.fluid.yml,注意区分;本指南中提到的
source目录都指的是博客目录下的source文件夹,不推荐修改主题内source目录;本指南不包括所有的配置说明,几乎每个配置在主题配置中都有注释,可配合指南共同参考使用。
另外本指南仅包含主题范围内的使用说明,如果是 Hexo 的使用或者 Hexo 插件的使用,请查阅各自的文档。
Hexo 5.0.0 版本以上的用户,在博客目录下创建 _config.fluid.yml 文件,将主题的 _config.yml全部配置(或部分配置)复制过去。
以后如果修改任何主题配置,都只需修改 _config.fluid.yml 的配置即可。
注意:
- 只要存在于
_config.fluid.yml的配置都是高优先级,修改原_config.yml是无效的。 - 每次更新主题可能存在配置变更,请注意更新说明,可能需要手动对
_config.fluid.yml同步修改。 - 想查看覆盖配置有没有生效,可以通过
hexo g --debug查看命令行输出。 - 如果想将某些配置覆盖为空,注意不要把主键删掉,不然是无法覆盖的,比如:
1 | |
通过Github Actions使用Github Pages进行半自动化部署[2]
使用 GitHub Action
自己选择作为托管的仓库,建议使用vscode进行git推送,推送之后GithubAction会运行生成GithubPages
GithubAction配置具体步骤如下:
1、生成 SSH Key
1 | |
生成的文件在 用户名/.ssh 目录中,id_rsa 为私钥文件,id_rsa.pub 为公钥文件。
2、代码仓库的 Actions 页签添加 workflow,如下图:

3、创建的 workflow 为一个 .yml 文件,内容如下:
1 | |
来自peaceiris/actions-gh-pages无需配置gh_deploy_keys,推荐使用
创建之后进行一次提交,GithubAction会自动运行,生成新的发布分支,默认为gh-pages
4、在仓库的 Settings 的 Pages 项中部署Pages,和域名设置(可选),如下图:
5、域名设置(可选),切换到gh-pages分支,在仓库的根目录下创建 CNAME 文件,内容为域名,如下图:

域名问题
每次提交代码自动构建发布后,GitHub Page 的仓库中配置的域名会丢失。按照如下步骤可以解决:
1、在网站根目录的 _config.yml 文件中找到 skip_render 节点,配置 CNAME ,如下图:

2、在 /source 目录中创建一个文件,命名为 CNAME ,里边的内容为你的域名。例如我的域名为:https://www.foolco.de 该文件的内容为:www.foolco.de 。

3、DNS解析设置:
进入域名DNS解析控制台进行解析设置,前三列按照图片填写即可,注意!记录类型中,A对应@和CNAME对应www不要打乱,不影响使用,但Github会报错(看着难受),后侧记录值,www记录对应GithubPages本来的域名,@记录对应Github的主机,Github的文档里有写,尽量不要按照下列图片写(无法保证实时有效性)。
注:若从腾讯dnspod购得域名,免费版的解析条数只有两条,此时,
@型A主机记录只填写任意一条即可,www型CNAME记录不可省,需要填写。
使用阿里云OSS作为图床[3]
(可选Github仓库结合jsdelivr,但国内不稳定,不推荐)
注册,开通对象储存
在阿里云官网注册账户并实名后,进入控制台,选择对象储存OSS开通。
创建bucket
在左侧选择概览,然后在右侧创建一个新的bucket
注意:
Bucket名字不能有大写字母
服务器就近选择
图床选择标准存储
读写权限公共读
创建完成后,你的bucket应该就出现在了左侧
找到你的地域节点,点击你的bucket名,然后点击bucket下的概览,在访问端口一栏找到你的地域节点,如图,只需要复制oss-cn-shanghai即可,不需要后面的.aliyuncs.com
来到右上角,鼠标放在你的头像上,在弹出的框里选择AccessKey管理,得到AccessKeyID和AccessKeyIDSecret并复制。
付费方式:
个人使用建议按量付费,无需购买流量包,账户内少量充值即可。
(开始用的时候每天的用量还不够抹零的,权当白嫖,hhhhhh
图床设置
Picgo启动后,在任务栏里找到Picgo的图标,打开主界面,在图床设置里选择阿里云OSS,依照以下步骤填写信息:
设定Keyld:填写刚刚获得的AccessKeyID
设定KeySecret:填写AccessKeyIDSecret
设定储存空间名:填写bucket名称
//这里填写的是bucket名称,不是浏览器里的域名
确认存储区域:填写你的地域节点,注意复制的格式
指定存储路径:其实就是自定义一个文件夹的名字,以/结尾
//它会自动在你的bucket里面创建一个文件夹,并把图片上传进去
弄完之后,记得“确定”,并点击“设置为默认图床”!
在设置里打开时间戳重命名和上传后自动复制URL
时间戳重命名:以上传时间来重命名图片,避免同名的图片无法上传(该设置不影响本地图片名)
配置Typora
进入Typora主界面,点击左上角的“文件-偏好设置”,选择图像,选择插入图片时上传图片,上传服务选择PicGo(app),PicGo路径(找到Picgo的安装路径填写),点击验证图片上传选项,提示成功就大功告成辣!
之后在Typora中粘贴图片即可自动上传
使用Typora进行Markdown写作
Markdown就不用教了吧,程序员必备功课,效率神器,跟html和css配合写作简直是绝绝子(手动狗头
Typora建议入正,淘宝正版买断八十块左右,十分值得。
写作流程:
1、使用
hexo n命令创建博客文章的.md文件 ,该文件的所在目录为/source/_posts目录中;2、使用
Typora打开_posts目录,选择创建的文件进行内容的编辑;3、文章中如果有图片,直接粘贴到
Typora中,图片会自动上传(设置改为右键选择上传图片也不错),上传成功后地址会自动替换为 阿里云OSS的相应地址;4、文章内容编辑完成后,在
VScode(或GitHub Desktop) 中将修改内容进行提交和推送,GitHub Action会自动进行网站的生成和部署。
搜索引擎提交与SEO优化
提交到搜索引擎真是一件麻烦的差事,到目前为止,仅仅只有谷歌搜索成功提交,必应和百度都由于各种问题拒绝了我的提交,非必要不太建议折腾,或者直接提交谷歌搜索,简单也高效(晚上提交第二天早上就搜得到,不得不说,老大就是老大),提交界面都有说明,这里就不多赘述了。
总体体验:谷歌>必应>>>百度
更改全局字体为霞鹜文楷体
打开 Hexo 博客的主题文件夹下的 head.ejs 文件
themes/fluid/layout/_partial/head.ejs
在文件的head标签中添加如下代码,CDN引入字体:
1 | |

在主题下的 themes/fluid/source/css,新建一个CSS文件custom.css,添加样式:
1 | |

在主题的配置文件 _config.fluid.yml中查找配置项 font_family,在后面填写字体名称"LXGW Wenkai Screen",注意要给字体名称加引号。

部署即可,大功告成!
给博客添加随机一言
首页⌈一言⌋
在主题配置文件修改 slogan 配置的 url 和 keys
1 | |

脚注⌈一言⌋
在主题配置文件中,footer项下添加content2:
1 | |

修改themes/fluid/layout/_partials/footer.ejs,添加:
1 | |
统一字号:
1 | |

添加RSS订阅
首先,转到博客文件所在文件夹,安装插件:
1 | |

在_config.fluid.yaml添加以下配置:
1 | |

部分参数解释,其它参数参见作者页面[9]
1 | |
在关于页面添加订阅链接:

