用Hexo搭建Github Pages博客
此博客位于 Github Pages ,利用 Hexo 博客框架,采用 Next 主题,以下一切步骤皆建立在此基础上
准备:
- 环境搭建: Git 和 Node.js
- 一个 GitHub 账户
- 连接 Github
- 创建 Github Pages 仓库
- 安装 Hexo 博客框架
- 网站配置
- 主题配置
- 新建文章
- 本地预览
- 部署 Hexo 到 Github Pages
连接 Github
- 创建 Github 账号
2. 在 Git 设置用户名和邮箱
1 | git config --global user.name "GitHub 用户名" |
3. 创建SSH秘钥
1 | ssh-keygen -t rsa -C "GitHub 邮箱" |
然后一路回车
4. 添加秘钥
- 进入
C:\Users\用户名\.ssh
此中会有两个文件:id_rsa
id_rsa.pub
分别是私钥和公钥 - 用记事本打开
id_rsa.pub
复制所有内容 - 登录 Github 进入 Settings 页面,选择左栏的
SSH and GPG keys
,点击New SSH key
- Title 填公钥的名字, Key 填刚刚复制的内容,点击
Add SSH key
完成添加。
5. 验证连接
回到 Git bash ,输入
1 | ssh -T [email protected] |
出现 Are you sure you want to continue connecting (yes/no/[fingerprint])? 输入 yes
回车确认。
显示 Hi xxx! You’ve successfully authenticated… 即连接成功。
创建 Github Pages 仓库
打开并登录 Github 网站,点击右上角加号 –> New repository
之后填写 Repository name
,注意!!! 由于创建的是 Github Pages 仓库,所以 Repository name
必须填写自己的小写用户名。将其设置为 Public 之后点击最下面的 Create repository
即可创建成功。
安装 Hexo
创建一个文件夹用来存放 Hexo 的程序文件和日后创建的文章及网站源码 如
D:/Hexo
右键 ->Git bash Here
使用 npm 安装 Hexo
1
npm install -g hexo-cli
初始化并安装所需组件
1
2hexo init # 初始化
npm install # 安装组件
安装完成后,指定文件夹的目录如下:
1 | . |
网站配置
网站的站点配置文件为 Hexo/_config.yml
站点配置
1 | # Site |
网址配置
1 | url: http://example.com # 博客网址 |
注意
- 关于 url 和 root :如果网站存放在子目录中,例如
http://example.com/blog
,则将 url 设为http://example.com/blog
并把 root 设为 /blog/ - 关于
永久链接
:若按默认的:year/:month/:day/:title/
设置,则链接按文章创建的时间和标题来定义,例如在2022年1月1日创建的名为”Blog”的文章,则链接为http://example.com/2022/01/01/Blog/
这样的链接太长,所以我设置为:category/:title/
即文章分类/标题
,设置方法请 跳转此处 ,关于更多永久链接的设置,请参考 Hexo 官方文档
网站目录配置
1 | source_dir: source # 资源文件夹,用来存放用户资源 |
配置部署
1 | deploy: |
主题配置
安装主题
用Git安装 Hexo-Next 主题
1 | git clone https://github.com/next-theme/hexo-theme-next themes/next |
选择主题
打开网站配置文件_config.yml
,找到theme
更改为以下内容
1 | theme: next |
使用代替主题配置文件
传统的方法是使用 next/_config.yml
配置主题,但此方法在主题更新时并不顺利
建议使用独立的 _config.[theme].yml
文件,防止更新主题时丢失以前所做的更改
- 在站点根目录
Hexo/
下创建_config.next.yml
文件 - 要更改主题,要在
_config.next.yml
定义值,例如要开启菜单中的分类页面,就在_config.next.yml
中添加 去掉#
的值1
2menu:
categories: /categories/ || fa fa-th
建议添加所有关于menu的值以便日后更改
1 | menu: |
更改只需要去掉 #
注释
注意缩进!!!
新建文章
在 Hexo 文件夹
右键 –> Git bash Here
1 | hexo n "标题" |
之后会在 Hexo\source\_posts
下创建一个名为 “标题.md” 的文件,打开即可编辑
创建”分类” “标签”选项
创建分类
在 Git bash 执行
1 | hexo new page categories |
成功后提示
1 | INFO Created: ~/Hexo/source/categories/index.md |
根据上面的路径,打开 index.md
内容如下
1 |
|
接下来添加一行 type: "categories"
使其变为
1 |
|
保存并关闭文件
创建标签
在 Git bash 执行
1 | hexo new page tags |
成功后提示
1 | INFO Created: ~/Hexo/source/tags/index.md |
根据上面的路径,打开 index.md
内容如下
1 |
|
接下来添加一行 type: "tags"
使其变为
1 |
|
保存并关闭文件
使用模板
修改模板后,每次新建的文章都会采用这个模板
修改方法:打开Hexo\scaffolds\post.md
修改为以下内容
1 |
|
保存并关闭文件
使用”分类” “标签”
修改完模板,新建文章后打开文章,为文章添加
categories
tags
属性
1 |
|
注意 分类建议只创建一个,标签可以创建多个。
将永久链接改为分类+标题的格式
默认的永久链接
:year/:month/:day/:title/
层级太多且比较长,所以我改为简短一点的:category/:title/
,这样给文章加了分类后,文章的永久链接就改为http://example.com/分类/标题/
如果这样修改就要给每一篇文章定义分类
本地阅览
首先生成页面,执行
1 | hexo g |
然后进行本地阅览,执行
1 | hexo s |
浏览器打开 http://localhost:4000/ 就可以看到效果了
部署
确保在 站点配置文件
中 配置部署,信息更改无误后,执行 clean
命令
1 | hexo clean |
此命令会清除缓存文件 (db.json) 和已生成的静态文件 (public)。然后生成页面
1 | hexo g |
最后部署
1 | hexo d |
出现如下信息
1 | INFO Deploy done: git |
以上三条命令可以一气呵成,只需要执行
1 | hexo clean && hexo g && hexo d |
大功告成