Hexo博客一条龙

搭建博客


一、 事前准备

  1. GitHub(必须,你需要注册一个GitHub帐号)

  2. 域名(非必须,可以直接使用GitHub.io或Pages.dev分配的域名也可以)

  3. Cloudflare(非必须,你可以将博客部署在CF的CDN里加速,但是你也可以直接使用GitHub.io分配的域名)


二、 软件支持

  1. Node(必须)

1.1 打开Node官网,下载和自己系统相配的Node的安装程序,否则会出现安装问题。下载地址:https://nodejs.org/en

1.2 下载后安装,安装的目录可以使用默认目录C:/Program Files/nodejs/

1.3 安装完成后,检查是否安装成功。在键盘按下win + R键,输入CMD,然后回车,打开CMD窗口,执行node -v命令,看到版本信息,则说明安装成功。

1.4 修改npm源。npm下载各种模块,默认是从国处服务器下载,速度较慢,建议配置成华为云镜像源。打开CMD窗口,运行如下命令:

1
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
  1. Git(必须)

2.1 进入官网下载适合你当前系统的 Git:https://git-scm.com/downloads

2.2 下载后傻瓜式安装Git即可,安装的目录最好使用默认目录C:/Program Files/Git

2.3 点击电脑左下角开始即可看见Git CMD、Git Bash、Git GUI。

-Git CMD 是windows 命令行的指令风格
-Git Bash 是linux系统的指令风格(建议使用)
-Git GUI是图形化界面(新手学习不建议使用)

  1. VSCode(非必须,这是一款轻量型的代码编辑器,可以帮助你养成一个很好的编程习惯)

三、 博客搭建

  1. 配置 Git 密钥并连接至 Github

常用 Git 命令

git config -l #查看所有配置
git config –system –list #查看系统配置
git config –global –list #查看用户(全局)配置

1.1 配置用户名和邮箱

1
2
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

通过git config -l检查是否配置成功。

1.2 配置公钥连接Github

执行以下命令生成ssh公钥,此公钥用于你的计算机连接Github

1
ssh-keygen -t rsa -C "你的邮箱"

提示Enter file in which to save the key直接一路回车即可,新手小白不推荐设置密钥
之后打开C盘下用户文件夹下的.ssh的文件夹,会看到以下文件

id_rsa私钥
id_rsa.pub公钥

用记事本打开上述图片中的公钥id_rsa.pub,复制里面的内容,然后开始在github中配置ssh密钥。

SSH KEY配置到 GitHub

进入github,点击右上角头像 选择settings,进入设置页后选择 SSH and GPG keys,名字随便起,公钥填到Key那一栏。

测试连接,输入以下命令

1
ssh -T git@github.com

第一次连接会提示Are you sure you want to continue connecting (yes/no/[fingerprint]),输入yes即可

出现连接到账户的信息,说明已经大功告成,至此完成了环境准备工作。

1.3 创建GitHub.io仓库

点击右上角的+按钮,选择New repository,创建一个<用户名>.github.io的仓库。

仓库名字的格式必须为:<用户名>.github.io (注意:前缀必须为用户名,此为预览博客需要,后期可修改仓库名)

可见性必须选择 Public 方便第一次部署检查问题,点击 Creat repository 进行创建即可

  1. 初始化 Hexo 博客

创建一个文件夹来保存博客源码,在文件夹内右键鼠标,选择Open Git Bash here

在Git BASH输入如下命令安装Hexo

1
npm install -g hexo-cli && hexo -v

安装完后输入hexo -v验证是否安装成功。

初始化 Hexo 项目安装相关依赖。

1
2
3
hexo init blog-demo
cd blog-demo
npm i

初始化项目后,blog-demo有如下结构:

node_modules:依赖包
scaffolds:生成文章的一些模板
source:用来存放你的文章
themes:主题
.npmignore:发布时忽略的文件(可忽略)
_config.landscape.yml:主题的配置文件
config.yml:博客的配置文件
package.json:项目名称、描述、版本、运行和开发等信

输入hexo cl && hexo s启动项目

打开浏览器,输入地址:http://localhost:4000/ ,看到下面的效果,说明你的博客已经构建成功了。

  1. 将静态博客挂载到 GitHub Pages

3.1安装 hexo-deployer-git

1
npm install hexo-deployer-git --save

3.2修改 _config.yml 文件

在blog-demo目录下的_config.yml,就是整个Hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述。

修改最后一行的配置,将repository修改为你自己的github项目地址即可,还有分支要改为main代表主分支(注意缩进)。

1
2
3
4
deploy:
type: git
repository: git@github.com:cmliussss2024/cmliussss2024.github.io.git
branch: main

修改好配置后,运行如下命令,将代码部署到 GitHub(Hexo三连)。

1
2
3
4
5
// Git BASH终端
hexo clean && hexo generate && hexo deploy
// 或者
// VSCODE终端
hexo cl; hexo g; hexo d

hexo clean:删除之前生成的文件,可以用hexo cl缩写
hexo generate:生成静态文章,可以用hexo g缩写
hexo deploy:部署文章,可以用hexo d缩写
注意:deploy时可能要你输入 username 和 password

如果出现Deploy done,则说明部署成功了。

稍等两分钟,打开浏览器访问:https://cmliussss2024.github.io ,这时候我们就可以看到博客内容了。

  1. 将静态博客挂载到 Cloudflare Pages

4.1 在 Workers 和 Pages 中选择 Pages 的 连接到 Git

4.2 然后登录你Blog仓库对应的GitHub帐号

4.3 点击保存并部署后等待部署完成即可。

4.4 提示成功!您的项目已部署到以下区域:全球后,浏览器访问:https://cmliussss2024-github-io.pages.dev ,这时候我们就可以看到博客内容了。这时你也就可以将你的<用户名>.github.io的仓库设置为Private私库了

4.5 如果你有自己的域名,你可以在设置里绑定你自己的自定义域


四、 博客主题

  1. 安装主题

Git 安裝

在博客根目录里安装最新版主题

1
git clone -b main https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git themes/anzhiyu

第一次使用需要安装 pug 以及 stylus 的渲染器

1
npm install hexo-renderer-pug hexo-renderer-stylus --save
  1. 应用主题

修改 hexo 配置文件_config.yml,把主题改为anzhiyu

1
theme: anzhiyu
  1. 覆盖配置

覆盖配置可以使主题配置放置在 anzhiyu 目录之外,避免在更新主题时丢失自定义的配置。

如果你是linux系统就执行以下命令

1
cp -rf ./themes/anzhiyu/_config.yml ./_config.anzhiyu.yml

如果你是windows系统就请手动将/themes/anzhiyu/_config.yml复制到根目录下并重命名为_config.anzhiyu.yml即可。

以后如果修改任何主题配置,都只需修改 _config.anzhiyu.yml 的配置即可。

注意:
只要存在于 _config.anzhiyu.yml 的配置都是高优先级,修改原 _config.yml 是无效的。
每次更新主题可能存在配置变更,请注意更新说明,可能需要手动对 _config.anzhiyu.yml 同步修改。
想查看覆盖配置有没有生效,可以通过 hexo g –debug 查看命令行输出。
如果想将某些配置覆盖为空,注意不要把主键删掉,不然是无法覆盖的

  1. 生成标签页和分类页

4.1执行以下命令生成标签页

1
hexo new page tags

找到 source/tags/index.md 这个文件,修改添加标签

1
2
3
4
5
6
7
title: 标签名称
type: "tags"
date: 2024-12-31 00:00:00
comments: false
top_img: false
orderby: name #排序方式 :random/name/length
order:

4.2执行以下命令生成分类页

1
hexo new page categories

找到 source/categories/index.md 这个文件,修改添加分类

1
2
3
4
5
title: 分类名称
type: "categories"
date: 2024-12-31 00:00:00
aside: false
top_img: false
  1. 配置文章模版

/scaffolds目录下有几个模版文件,其中
post.md:新建博文模版
page.md:新建标签页模版

5.1post.md模版,仅供参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
---
title: {{ title }} #【必需】页面标题
date: {{ date }} #【必需】页面创建日期
updated: #【可选】页面更新日期
tags: #【可选】文章标签
categories: #【可选】文章分类
keywords: #【可选】文章关键字
description: #【可选】文章描述
top: # 1 置顶
top_img: #【可选】文章顶部图片
comments: #【可选】显示文章评论模块(默认 true)
cover: https://img.090227.xyz/file/ae62475a131f3734a201c.png #【可选】文章缩略图(如果没有设置 top_img,文章页顶部将显示缩略图,可设为 false/图片地址/留空)
toc: #【可选】显示文章 TOC(默认为设置中 toc 的 enable 配置)
toc_number: #【可选】显示 toc_number(默认为设置中 toc 的 number 配置)
toc_style_simple: #【可选】显示 toc 简洁模式
copyright: #【可选】显示文章版权模块(默认为设置中 post_copyright 的 enable 配置)
copyright_author: #【可选】文章版权模块的文章作者
copyright_author_href: #【可选】文章版权模块的文章作者链接
copyright_url: #【可选】文章版权模块的文章作者链接
copyright_info: #【可选】文章版权模块的版权声明文字
mathjax: #【可选】显示 mathjax(当设置 mathjax 的 per_page: false 时,才需要配置,默认 false)
katex: #【可选】显示 katex(当设置 katex 的 per_page: false 时,才需要配置,默认 false)
aplayer: #【可选】在需要的页面加载 aplayer 的 js 和 css,请参考文章下面的音乐 配置
highlight_shrink: #【可选】配置代码框是否展开(true/false)(默认为设置中 highlight_shrink 的配置)
aside: #【可选】显示侧边栏 (默认 true)
swiper_index: 10 #【可选】首页轮播图配置 index 索引,数字越小越靠前
top_group_index: 10 #【可选】首页右侧卡片组配置, 数字越小越靠前
ai: #【可选】文章ai摘要
background: "#fff" #【可选】文章主色,必须是16进制颜色且有6位,不可缩减,例如#ffffff 不可写成#fff
---

<div class="video-container">
[up主专用,视频内嵌代码贴在这]
</div>

<style>
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 aspect ratio (height/width = 9/16 * 100%) */
}

.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
</style>

5.2page.md模版,仅供参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
title: {{ title }} #【必需】页面标题
date: {{ date }} #【必需】页面创建日期
type: #【必需】标签、分类、关于、音乐馆、友情链接、相册、相册详情、朋友圈、即刻页面需要配置
updated: #【可选】页面更新日期
comments: #【可选】显示页面评论模块(默认 true)
description: #【可选】页面描述
keywords: #【可选】页面关键字
top_img: https://img.090227.xyz/file/ae62475a131f3734a201c.png #【可选】页面顶部图片
mathjax: #【可选】显示 mathjax(当设置 mathjax 的 per_page: false 时,才需要配置,默认 false)
katex: #【可选】显示 katex(当设置 katex 的 per_page: false 时,才需要配置,默认 false)
aside: #【可选】显示侧边栏 (默认 true)
aplayer: #【可选】在需要的页面加载 aplayer 的 js 和 css,请参考文章下面的音乐 配置
highlight_shrink: #【可选】配置代码框是否展开(true/false)(默认为设置中 highlight_shrink 的配置)
top_single_background: #【可选】部分页面的顶部模块背景图片
---

剩下的工作就是配置_config.yml和_config.anzhiyu.yml文件,修改博客参数。


五、 博客更新

  1. 新建博文

通过以下代码,本地新建博文

1
hexo new 新建的的博文
  1. 预览博文

通过以下代码,本地预览博文

1
2
3
4
5
// Git BASH终端
hexo cl && hexo s
// 或者
// VSCODE终端
hexo cl; hexo s
  1. 推送博文

通过以下代码,将本地更新推送至GitHub仓库

1
2
3
4
5
// Git BASH终端
hexo cl && hexo g && hexo d
// 或者
// VSCODE终端
hexo cl; hexo g; hexo d