零基础快速搭建hexo

前期准备工作

  1. Node必备
  2. Git必备
  3. VSCode可选
  4. 域名,建议配置一个域名以避免被防火墙阻挡,推荐购买链接: https://spaceship.sjv.io/limin
  5. 配置 Cloudflare,托管域名:托管教程
  6. 创建免费图床:图床搭建教程
  7. 注册cloudflare怕被扣费,推荐用myfine有50张虚拟卡(需要护照),教程链接:注册教程
  8. Hexo官方主题展示:点击跳转##

安装 Node

  1. 从 Node 官网 下载适合自己系统的版本。
  2. 完成安装,Windows电脑建议使用默认目录 C:/Program Files/nodejs/,苹果电脑无所谓。
  3. 验证安装成功,在命令行中输入 node -v 检查版本信息。

安装 Git

  1. 从 Git 官网 下载适配的 Git 版本。
  2. Windows 用户可使用默认目录安装 Git,Mac 用户则按提示在终端操作。
  3. 验证安装完毕后,Windows 用户会在开始菜单中看到 Git Bash 等应用。

配置 Git 密钥并连接至 Github

常用 Git 命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 显示所有生效的 Git 配置项
git config -l
// 显示 系统级配置
git config --system --list
// 显示当前用户的全局配置
git config --global --list

// 完整克隆整个仓库的所有历史记录
git clone git@github.com:username/username.github.io.git
// 使用 SSH 协议,克隆 GitHub 上的博客仓库,只拉取最新一次提交(浅克隆)
git clone git@github.com:username/username.github.io.git --depth=1

//将本地更改提交并推送到远程仓库
// 将当前目录下的所有修改(包括新增、修改、删除的文件)添加到暂存区
// . 表示“当前目录及所有子目录
git add .
// 提交已暂存的更改
// -m 后跟的是提交信息,这里是 "add_branch"
git commit -m "add_branch"
// 将当前分支的提交推送到远程仓库对应的分支
// 如果是第一次推送新分支,建议用: git push -u origin <分支名>
git push

配置用户名和邮箱

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

通过 git config -l 验证是否成功。

配置公钥连接 Github

  1. 生成 SSH 公钥:
1
ssh-keygen -t rsa -C "你的邮箱"

一路回车生成密钥,进入 .ssh 文件夹复制 id_rsa.pub 公钥内容,配置到 Github 的 SSH 设置中。

  1. 将 SSH KEY 配置到 GitHub

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

  1. 测试连接:
1
ssh -T git@github.com

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

1
Hi he-zhenpeng! You've successfully authenticated, but GitHub does not provide shell access.

创建 GitHub.io 仓库

  1. 点击右上角的 + 按钮,选择新建仓库,命名格式为 <用户名>.github.io,(注意:前缀必须为用户名)选择公开 Public
  2. 点击 Creat repository 进行创建即可。

初始化 Hexo 博客

  1. 创建文件夹保存博客源码:

苹果用户随意创建好文件夹后,在文件夹右击,选择“服务”选择“新建终端窗口以便操作”

Windows用户可以(例如 D:/Hexo-Blog),在该文件夹内启动 Git Bash 或终端。

  1. 安装 Hexo:
1
npm install -g hexo-cli && hexo -v
  1. 初始化 Hexo 项目安装依赖:
1
2
3
hexo init blog
cd blog
npm i
  1. 启动项目并验证:
1
hexo cl && hexo s

在浏览器中访问 http://localhost:4000/ 以查看效果。

将静态博客挂载到 GitHub Pages

  1. 修改 _config.yml 文件,配置 repository 为你的 GitHub 地址,分支改为 main
1
2
3
4
deploy:
type: git
repository: git@github.com:你的用户名/你的用户名.github.io.git
branch: main
  1. 安装 hexo-deployer-git
1
npm install hexo-deployer-git --save
  1. 部署到 GitHub:
1
2
3
4
5
6
7
// Git BASH终端
hexo clean && hexo generate && hexo deploy

// 或者

// VSCODE终端
hexo cl; hexo g; hexo d

将静态博客挂载到 Cloudflare Pages

  1. 通过 Cloudflare Pages 连接 Git 仓库。
  2. 登录 GitHub,点击保存并部署。
  3. 部署成功后,访问 Cloudflare 提供的链接。

如有自定义域名,可以在 Cloudflare Pages 中绑定。没有建议去申请,这样博客就不被墙了。

如何使用

新建一篇博文

1
hexo new 这是一篇新的博文

生成标签页和分类页

生成标签页:

1
hexo new page tags

找到 source/tags/index.md 文件,添加 type: "tags"

1
2
3
4
5
6
7
---
title: 标签
date: 2024-07-05 03:36:02
type: "tags"
comments: false
top_img: false
---

生成分类页:

1
hexo new page categories

找到 source/categories/index.md 文件,添加 type: "categories"

1
2
3
4
5
6
7
---
title: 分类
date: 2024-10-22 03:36:48
aside: false
top_img: false
type: "categories"
---

配置文章模板

/scaffolds 目录下有几个模板文件:

  • post.md:新建博文模板
  • page.md:新建标签页模板

post.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
---
title: {{ title }} #【必需】页面标题
date: #【必需】页面创建日期
updated: #【可选】页面更新日期
tags: #【可选】文章标签
categories: #【可选】文章分类
keywords: #【可选】文章关键字
description: #【可选】文章描述
top: # 1 置顶
top_img: #【可选】文章顶部图片
comments: #【可选】显示文章评论模块(默认 true)
cover: https://img.090227.xyz/file/ae62475a131f3734a201c.png #【可选】文章缩略图
toc: #【可选】显示文章 TOC
toc_number: #【可选】显示 toc_number
toc_style_simple: #【可选】显示 toc 简洁模式
copyright: #【可选】显示文章版权模块
copyright_author: #【可选】文章版权作者
copyright_author_href: #【可选】作者链接
copyright_url: #【可选】版权链接
copyright_info: #【可选】版权声明文字
mathjax: #【可选】显示 mathjax
katex: #【可选】显示 katex
aplayer: #【可选】加载 aplayer 的 js 和 css
highlight_shrink: #【可选】配置代码框是否展开
aside: #【可选】显示侧边栏 (默认 true)
swiper_index: 10 #【可选】首页轮播图配置
top_group_index: 10 #【可选】首页右侧卡片组配置
ai: #【可选】文章 ai 摘要
background: "#fff" #【可选】文章主色
---
<div class="video-container">[视频内嵌代码]</div>
<style>.video-container { position: relative; padding-top: 56.25%; } .video-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style>page.md 模板示例

page.md 模板示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
title: {{ title }} #【必需】页面标题
date: #【必需】页面创建日期
type: #【必需】标签、分类等
updated: #【可选】页面更新日期
comments: #【可选】显示页面评论模块
description: #【可选】页面描述
keywords: #【可选】页面关键字
top_img: https://img.090227.xyz/file/ae62475a131f3734a201c.png #【可选】页面顶部图片
mathjax: #【可选】显示 mathjax
katex: #【可选】显示 katex
aside: #【可选】显示侧边栏 (默认 true)
aplayer: #【可选】加载 aplayer 的 js 和 css
highlight_shrink: #【可选】配置代码框是否展开
top_single_background: #【可选】部分页面的顶部模块背景图片
---

开启本地搜索

安装插件

安装 hexo-generator-search

1
npm install hexo-generator-search --save

设置主题配置文件

在配置文件中添加:

1
2
3
4
local_search:
enable: true
preload: false
CDN:
参数 解释
enable 是否开启本地搜索
preload 预加载,进入网页后自动加载搜索文件
CDN 搜索文件的 CDN 地址(默认使用本地链接)

个性化配置

修改网站图标:

  • 在线制作ico图标:链接

修改以下位置的 favicon.ico

  • themes/anzhiyu/source/img/favicon.ico
  • .deploy_git/img
  • public/img
  • .deploy_git

替换为自己的图标,注意原图标大小。

将 themes/anzhiyu/source/img/siteicon/ 下的 32.png 和 16.png 替换为自己的图标,注意原图标大小。

保存后,运行以下指令更新:

1
2
3
hexo cl
hexo g
hexo d

文章置顶

安装插件

1
npm install hexo-generator-topindex --save

设置置顶

在需要置顶的文章中添加 top 参数:

1
2
3
4
5
6
7
8
9
---
title: 每天一个linux命令
date: 2017-01-23 11:41:48
top: 1
categories:
- 运维
tags:
- linux命令
---

如果存在多个置顶文章,top 后的参数越大,越靠前。

添加任意文件

若想在网站根目录添加 ads.txt 文件,只需在 /source 文件夹下放置该文件即可。

安装AnZhiYu主题

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

使用主题

修改 Hexo 配置文件 _config.yml,将主题改为 anzhiyu

1
theme: anzhiyu

覆盖配置

覆盖配置可将主题配置放置在 anzhiyu 目录之外,避免在更新主题时丢失自定义的配置。通过 Npm 安装主题的用户可忽略,其他用户建议学习使用。

  • macOS/Linux 在博客根目录运行:
1
cp -rf ./themes/anzhiyu/_config.yml ./_config.anzhiyu.yml
  • Windows 用户复制 /themes/anzhiyu/_config.yml 到 Hexo 根目录,并重命名为 _config.anzhiyu.yml

后续修改主题配置只需更新 _config.anzhiyu.yml

注意事项

  • _config.anzhiyu.yml 中的配置优先级高于 _config.yml
  • 每次更新主题时可能存在配置变更,请查看更新说明,并手动同步修改 _config.anzhiyu.yml
  • 可通过 hexo g --debug 查看覆盖配置是否生效。
  • 若要将某些配置覆盖为空,注意不要删除主键。