Hexo博客搭建与个性化定制指南

1.什么是 Hexo?

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

2.为什么使用Hexo?

完全免费;静态站点,轻量快速;可按需求自由定制改造;托管在 GitHub,安全省心;迁移方便。

3.部署准备工作

3.1.安装依赖

  • Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
  • Git

如果您的电脑中已经安装上述必备程序,那么恭喜您!你可以直接前往下一步骤。

如果您的电脑中尚未安装所需要的程序,请根据以下安装指示完成安装。

3.1.1.安装 Git

前往git官网下载并安装。但本人实测了官网下载速度实在太慢,推荐使用镜像下载站下载山东大学镜像下载站,感谢山东大学。

3.1.2.安装 Node.js

前往Node.js官网下载并安装。附送淘宝 Node.js 镜像下载链接。

另外如果不想因为npm安装让C盘变红最好跟着下面这篇博客设置一下【node_global】和【node_cache】的环境变量。Node.js下载安装及环境配置教程【超详细】_nodejs下载-CSDN博客

3.2.创建 Github Pages 仓库

连接 Github

使用邮箱注册 GitHub 账户,选择免费账户(Free),并完成邮件验证。

右键 -> Git Bash Here,设置用户名和邮箱

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

创建 SSH 密匙

输入 ssh-keygen -t rsa -C "GitHub 邮箱",然后一路回车。

添加密匙:

进入 [C:\Users\用户名.ssh] 目录(要勾选显示“隐藏的项目”),用记事本打开公钥 id_rsa.pub 文件并复制里面的内容。

登陆 GitHub ,进入 Settings 页面,选择左边栏的 SSH and GPG keys,点击 New SSH key。

Title 随便取个名字,粘贴复制的 id_rsa.pub 内容到 Key 中,点击 Add SSH key 完成添加。

验证连接:

打开 Git Bash,输入 ssh -T git@github.com ,显示 “Hi xxx! You’ve successfully……” 即连接成功。

GitHub 主页右上角加号 -> New repository:

  • Repository name 中输入 用户名.github.io
  • 勾选 “Initialize this repository with a README”
  • Description 选填

填好后点击 Create repository 创建。

4.部署 Hexo 到 GitHub Pages

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

1
$ npm install -g hexo-cli

安装以后,可以使用以下两种方式执行 Hexo:

  1. npx hexo <command>
  2. Linux 用户可以将 Hexo 所在的目录下的 node_modules 添加到环境变量之中即可直接使用 hexo <command>
1
echo 'PATH="$PATH:./node_modules/.bin"' >> ~/.profile

新建hexo工作目录MyBlogCode,右击打开git bash,初始化运行Hexo

1
2
3
cd E:\MyBlogCode
hexo init # 初始化
npm install # 安装组件

完成后依次输入下面命令,启动本地服务器进行预览

1
2
hexo g   # 生成页面
hexo s # 启动预览

访问 http://localhost:4000,出现 Hexo 默认页面,本地博客安装成功!

Tips:如果出现页面加载不出来,可能是端口被占用了。Ctrl+C 关闭服务器,运行 hexo server -p 5000 更改端口号后重试。

本地博客测试成功后,就是上传到 GitHub 进行部署,使其能够在网络上访问。

首先安装 hexo-deployer-git

1
npm install hexo-deployer-git --save

然后修改 _config.yml 文件末尾的 Deployment 部分,修改成如下:

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

完成后运行 hexo d 将网站上传部署到 GitHub Pages。

完成!这时访问我们的 GitHub 域名 https://用户名.github.io 就可以看到 Hexo 网站了。

5.绑定域名

博客搭建完成使用的是 GitHub 的子域名("GitHub 用户名".github.io),我们可以为 Hexo 博客绑定自己的域名替换 GitHub 域名,更加个性化和专业,也利于SEO。

Cloudflare添加我们需要托管的域名,网站–域名–DNS–添加记录,类型我们选择CNAME,主机名我直接填的是@,目标填写"GitHub 用户名".github.io,同时让Cloudflare帮我们代理一下,自动加上Cloudflare Origin CA 证书认证。

回到github pages的项目地址,进入Settings-Pages-Custom domain,填写域名,点击save,静静等待DNS验证。此时你会发现在项目根目录下多出来一个名为CNAME的文件,里面填写了你的域名,且文件没有后缀。

DNS验证通过后就可以使用自己的域名访问 Hexo 博客了。

6.开始使用

进入博客所在目录,右键打开 Git Bash Here,创建博文:

1
hexo new "My New Post"

然后 source_posts 文件夹中会出现一个 My New Post.md 文件,就可以使用 Markdown 编辑器在该文件中撰写文章了。

写完后运行下面代码将文章渲染并部署到 GitHub Pages 上完成发布。

1
hexo g -d   # 生成页面并部署发布

也可以不使用命令自己创建 .md 文件,只需在文件开头手动加入如下格式 Front-matter 即可,写完后运行 hexo ghexo d 发布。

1
2
3
4
5
6
7
8
9
10
11
12
13
---
title: Hello World # 标题
date: 2019/3/26 hh:mm:ss # 时间
categories: # 分类
- Diary
tags: # 标签
- PS3
- Games
---

摘要
<!--more-->
正文

7.网站设置

包括网站名称、描述、作者、链接样式等,全部在网站目录下的 _config.yml 文件中,参考官方文档按需要编辑。

注意:冒号后要加一个空格!

8.更换主题

Themes | Hexo 选择一个喜欢的主题,比如 Stellar,进入博客目录打开 Git Bash Here 下载主题:

8.1.安装方法

  1. 打开终端并进入博客文件夹,执行:
    1
    npm i hexo-theme-stellar
  2. MyBlogCode/_config.yml 文件中找到并修改:
1
theme: stellar

8.2.更新方法

  1. 打开终端并进入博客文件夹,执行:
1
npm i hexo-theme-stellar
  1. 阅读 更新日志 进行迁移操作。

9.常用命令

1
2
3
4
5
6
7
8
hexo new "name"       # 新建文章
hexo new page "name" # 新建页面
hexo g # 生成页面
hexo d # 部署
hexo g -d # 生成页面并部署
hexo s # 本地预览
hexo clean # 清除缓存和已生成的静态文件
hexo help # 帮助

10.遇到的问题

10.1 Hexo发布到Github丢失readme和CNAME解决方案

方法一(推荐):将需要上传至github的内容放在source文件夹,例如CNAME、README.md、favicon.ico、images等,这样在 hexo d 之后就不会被删除了。

方法二:安装插件实现永久保留。

1
npm install hexo-generator-cname --save #安装此插件实现

之后在_config.yml中添加一条

1
2
Plugins: 
- hexo-generator-cname

需要注意的是:如果是在github上建立的CNAME文件,需要先clone到本地,然后安装插件,再deploy到GitHub Pages上即可。CNAME只允许一个域名地址。

10.2 添加及正确显示README.md文件

在source文件夹中新建README.md,再使用hexo g以及hexo d生成并部署后会发现GitHub.io仓库下的README.md文件变成了以.html结尾的文件。

变成html原因是当我们执行hexo g以及hexo d指令时md文件会被转换为html文件并被存放在public文件夹内,最后在提交到github.io项目下。为了让md文件格式不转换为html,可以在根目录_config.yml配置文件中的skip_render 关键字后面添加README.md,让解释器跳过渲染即可

1
2
skip_render: 
- README.md #让解释器跳过这些文件渲染

Hexo博客搭建与个性化定制指南
https://tttrove.top/202405/Hexo踩坑笔记/
发布于
2024年5月4日
许可协议