hexo博客搭建

谨以此文纪念该网站的诞生。
博客的搭建是基于 Hexo + GitHub Page,并采用了Fluid主题。

而写博客的难点,则在于如何把网状的思考,用树状结构,体现在线性展开的语句中。这也正是搭建该站点的初衷。

搭建经历

1. 安装Node.js

参考官网:Node.js — Run JavaScript Everywhere

安装完成后,在 cmd 或者 bash 中输入 node -v 查看版本。

一个需要注意的点: 在 Windows 系统中,默认情况下 npm 的全局依赖包和缓存文件会安装在 C盘 的默认路径下(可通过 npm root -g 查看)。若需将这些目录迁移至其他磁盘(例如 D 盘),需执行以下操作:

1
2
npm config set prefix="D:\\download\\nodejs\\node_global"
npm config set cache="D:\\download\\nodejs\\node_cache"

通过命令npm config ls查看相关配置(这个配置在C:\User\用户\.npmrc文件中),除此之外,为了能够在cmd中使用npm安装的包的相关命令,需要将上述prefix目录添加到 PATH 环境变量中。

2. 注册GitHub,并创建GitHub Page仓库

注册完github后,创建一个仓库(其中的 {github_username} 是注册用户的名称):

1
https://github.com/{github_username}/{github_username}.github.io

此时可以在浏览器中访问域名:https://{github_username}.github.io

注意:如果创建的仓库取了其他名字,那么访问的域名则是:https://用户名.github.io/仓库名/

3. 下载Git

安装Git,参考官网:Git

配置全局(--global)的个人信息:

1
2
git config --global user.name "xxx"
git config --global user.email "xxxxx@google.com"

可以通过 git config --global --list 查看全局的 git 配置。

4. 配置GitHub SSH

如果需要将本地代码同步到 GitHub 上,需要使用Git与远程仓库建立安全连接,那么后续 push/pull 仓库时就不需要重复输入密码了。在2021年8月13号之后,HTTPS的建立安全连接方式被github停止使用了,并且官方推荐使用SSH协议的方式登录GitHub

本地生成一个私钥-公钥对

1
ssh-keygen -t rsa -b 4096  -C "xxx@qq.com"

参数详解:

  • -t : 指定加密算法类型,这里指定使用 RSA 算法生成密钥
  • -b : 指定密钥的位数
  • -C : 添加注释(--comment)

完成后,会在一个提示目录下找到公钥文件(默认是~\.ssh\id_rsa.pub),在 GitHub 的设置中找到SSH,并将生成的公钥内容添加相关的Key中。配置完成后在本地通过命令检测是否配置成功:

1
2
3
ssh -vT git@github.com
# 运行结果出现类似如下即表示成功
# Hi {github_username}! You've successfully authenticated, but GitHub does not provide shell access.

5. 安装Hexo

参考官网:Hexo

在电脑中新建 Blog 文件夹,如 D:\Blog。在 cmd 命令行打开D盘,用 cd Blog命令进入 Blog子目录

根据 Hexo 官网 上提示的全局安装命令:

1
npm install hexo-cli -g

输入初始化部署命令:

1
2
# 或者进入一个空文件目录,然后使用hexo init
hexo init blog_test

即可在 Blog目录下 新建博客文件夹 blog_test,然后 cd blog_test 进入博客子目录,然后安装 Node.js 包管理器命令,安装所有依赖:

1
npm install

输入生成本地预览命令:

1
2
3
4
hexo s

# 或者
hexo server

默认会生成 localhost:4000 端口的网址,在浏览器中可以访问。

localhost:4000

6. 安装编辑器

主要是用于编写文档和修改配置,可以选择使用 VsCode (其他的也可以)。直接按照 MarkDown的语法规则编写内容即可(当然也可以直接用 HTML 语法规则编写内容)。

内容编写完成后,可依此执行用于 清理缓存、生成博客文件、生成本地预览 的命令:

1
2
3
4
5
hexo cl # 或者 hexo clean

hexo g # 或者 hexo generate

hexo s # 或者 hexo server

在启动完服务后,即可在浏览器中查看相关生成内容的预览。

7. 将 Hexo 发布到 GitHub 仓库

参考 Hexo git 一键部署内容:打开整个项目根目录中的 _config.yml,更改有关参数:

  • #Site: 站点的描述内容(自行修改)
  • #URL:部分,这个是站点链接,如果绑定了域名改为相关域名即可,否则直接用GitHub Page的域名
  • #Deployment
    • type: 改为 git
    • repo: 改为 GitHub仓库地址
    • branch: 改为main

安装部署插件:

1
npm install hexo-deployer-git --save

之后执行命令即可将 Hexo 内容发布到 GitHub 仓库中:

1
hexo d # 或者 hexo deploy

同步主要是 #Deployment 内容的修改,执行同步命令后,将 hexo g 生成的静态文件(默认是public目录下)同步推送到repo指定的GitHub仓库地址,并且指定分支为branch的内容。而使用GitHub Page的话,默认使用main分支。

Hexo的基础使用

1. 新建文章:

使用命令(因为默认布局是文章post):

1
hexo new "文章名" # 也可以hexo n "文章名"

文章名可以自由更改,新建后会在/source/_posts 创建一个 文章名.md 的文件,文章名不需要文件后缀,会自动生成 Markdown 文件,且带有预先定义的参数(在 Front-matter 中),如标题、日期、标签等。

这个 Front-matter 可参考Front-matter | Hexo , 就是配置一些渲染设置,文章分类标签,创建时间等等内容。

2. 布局管理

1
hexo new [layout] "文章名" # 也可以hexo n [layout] "文章名"

其中,layout 可替换为 post(文章,默认)、draft(草稿)、page(页面)。对于这三种布局,有默认的三种Front-matter模板(在 scafflolds 路径下),可以提前修改相关的 Front-matter 模板。

对于三种布局,个人感觉最大的区别在于:

  • 文章 post,在_posts目录下创建一个 title.md 文件。
  • 页面 page,在source目录下创建一个 title 的文件夹,然后在里面创建一个index.md
  • 草稿 draft,在source目录下的_drafts目录,创建一个 title.md 文件

3. 分类和标签

在Hexo中,分类和标签有着明显的区别:分类具有顺序性和层次性,而标签没有顺序和层次

一般分类和标签主要是写在Front-matter内容中,如本文章的设置:

1
2
3
4
5
6
categories: 
- 技术栈
- 博客
tags:
- Hexo
- Git

hexo博客搭建
https://tzhelloworld.top/hexo-helloworld.html
作者
Tang Zhen
发布于
2025年5月13日
更新于
2025年8月20日
许可协议