无需服务器在Gihub搭建静态hexo博客

原文教程:https://blog.cmliussss.com/p/HexoBlogNo1/

【hexo博客】无需服务器在Gihub搭建静态hexo博客

1.准备环节

  1. 域名(非必须,你也可以使用免费域名,或者GitHub.ioPages.dev分配的域名也可以)
  2. GitHub必须,你需要注册一个GitHub帐号)
  3. Cloudflare非必须,你需要注册一个Cloudflare帐号,这样你就可以将博客部署在CF的CDN里加速,但是你也可以直接使用GitHub.io分配的域名)

2.软件支持

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

2.1.安装 Node

  1. 打开Node官网,下载和自己系统相配的Node的安装程序,否则会出现安装问题。下载地址:https://nodejs.org/en
  2. 下载后安装,安装的目录可以使用默认目录C:/Program Files/nodejs/
  3. 安装完成后,检查是否安装成功。在键盘按下win + R键,输入CMD,然后回车,打开CMD窗口,执行node -v命令,看到版本信息,则说明安装成功。

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

1
npm config set registry https://mirrors.huaweicloud.com/repository/npm/

2.2.安装 Git

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

  1. 下载后傻瓜式安装Git即可,安装的目录最好使用默认目录C:/Program Files/Git
  2. 点击电脑左下角开始即可看见 Git CMDGit BashGit GUI
    • Git CMD 是windows 命令行的指令风格
    • Git Bash 是linux系统的指令风格(建议使用)
    • Git GUI是图形化界面(新手学习不建议使用)

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

常用 Git 命令

1
2
3
git config -l  //查看所有配置
git config --system --list //查看系统配置
git config --global --list //查看用户(全局)配置

3.1. 配置用户名和邮箱

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

git config --global user.name "xiaodukeji"
git config --global user.email "xiaodusuiji@outlook.com"

3.2. 配置公钥连接Github

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

1
2
3
4
5
6
7
ssh-keygen -t rsa -C "你的邮箱"

ssh-keygen -t rsa -C "xiaodusuiji@outlook.com"

生成后
Your identification has been saved in /Users/duliang/.ssh/id_rsa
Your public key has been saved in /Users/duliang/.ssh/id_rsa.pub

提示Enter file in which to save the key直接一路回车即可,新手小白不推荐设置密钥

之后打开C盘下用户文件夹下的.ssh的文件夹,会看到以下文件

  • id_rsa私钥
  • id_rsa.pub公钥

以记事本方式打开公钥文件,复制。

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

4.初始化 Hexo 博客

4.1.创建一个文件夹来保存博客源码(比如:路径为D:/Hexo-Blog

4.2.切换到该目录打开git,或进入终端切换到该目录,输入以下命令安装 Hexo

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

Mac端这一步极有可能会报错(权限问题),是因为通过安装程序安装的node.js导致权限问题,需要卸载掉重新用node版本管理工具安装node.js。

❎ 如果报错首先卸载node

https://blog.csdn.net/qq_50386946/article/details/130391560

#查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装

1
npm ls -g --depth=0 

#删除全局 node_modules 目录

1
sudo rm -rf /usr/local/lib/node_modules 

#删除 node

1
sudo rm /usr/local/bin/node 

#删除全局 node 模块注册的软链

1
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm

✅ 然后通过nvm版本管理工具安装node

nvm是一个用于管理和切换不同Node.js版本的工具。

nvm项目https://github.com/nvm-sh/nvm

a. 安装nvm:

1
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash

安装完nvm后关闭终端对话框,再重新打开。

b. 安装Node.js:

1
nvm install node

c. 安装完成后,可以通过以下命令检查Node.js和npm的版本,确认安装成功:

1
2
node -v
npm -v

然后再接着执行第二步:

4.2.切换到该目录打开git,或进入终端切换到该目录,输入以下命令安装 Hexo

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

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

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

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

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

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

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

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

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

5.1安装 hexo-deployer-git

1
npm install hexo-deployer-git --save

5.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

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

1
2
3
4
5
6
7
// 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://username.github.io ,这时候我们就可以看到博客内容了。

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

  1. Workers 和 Pages 中选择 Pages连接到 Git

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

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

  4. 提示成功!您的项目已部署到以下区域:全球后,浏览器访问:https://username-github-io.pages.dev ,这时候我们就可以看到博客内容了。

这时你也就可以将你的<用户名>.github.io的仓库设置为Private私库了

  1. 如果你有自己的域名,你可以在这里绑定你自己的自定义域即可。

参考资料

https://hexo.io/zh-cn/
https://www.fomal.cc/posts/e593433d.html
https://docs.anheyu.com/