GitHub+Hexo搭建个人博客


我们趋行在人生这个亘古的旅途,在坎坷中奔跑,在挫折里涅槃,忧愁缠满全身,痛苦飘洒一地。我们累,却无从止歇;我们苦,却无法回避。——马尔克斯《百年孤独》


这篇博文是我根据网上教程和个人踩坑经验总结的GitHub+Hexo搭建个人博客的(伪)教程,跟着以下目录的步骤,可以初步上线自己的Hexo博客雏形 目录第八条有记录曾经的踩坑问题,如果中途有报错卡住了可以去瞧一瞧~

后续想了解Hexo主题配置请点击这里《Hexo主题配置教程》


目录:

1. GitHub创建个人仓库
2. 安装git
3. 安装Node.js
4. 安装Hexo
5. 配置token(令牌)或SSH密钥
6. 修改站点配置文件
7. 部署上线
8. 踩坑记录


1. GitHub创建个人仓库

如果没有GitHub先注册一个人账号 https://github.com/

登录GitHub,创建一个名为[账号名].gihub.io的仓库

[账号名]要与GitHub账号名一致

[账号名]要与GitHub账号名一致,新手为避免不必要的麻烦,不要勾选Add a README file(否则可能会出现push第一次代码的时候发现push不上去),直接creating repository创建仓库


2. 安装git

在官网下载git https://git-scm.com/ ,根据 git安装教程 步骤下载


3. 安装Node.js

在官网下载node.js https://nodejs.org/en/ ,根据 node.js安装教程 步骤下载,安装完成后通过右键git bash here打开git的shell窗口,运行node -vnpm -v ,如果能成功出现x.x.x的版本号即安装成功


4. 安装Hexo

先创建一个自命名空文件夹,Hexo和今后发布的网页都将存在这里,创建好之后进入文件夹中,右键git bash here打开git的shell窗口,安装hexo,输入:

1
npm install -g hexo-cli

安装拓展:

1
npm i hexo-deployer-git

初始化博客,输入:

1
hexo init blog

安装完成后,点进和_config.yml文件同级的目录,右键git bash here打开git的shell窗口,为检测网站,创建一个页面并预览,按顺序输入以下三条命令:

1
2
3
hexo new test_page 
hexo g
hexo s #预览

完成后在浏览器可以预览,在地址栏输入:

1
localhost:4000

检查页面是否成功加载,新手在这个地方可能遇见404也可能在命令阶段会有很多git上的报错,还需按照实际情况查资料解决,我会在结尾处po上自己的8.踩坑记录仅供参考(真的巨多细碎的小坑…)


5. 配置token(令牌)或SSH密钥

由于2021年8月13日起GitHub不再支持账号密码身份验证,需要token(令牌)或SSH密钥进行身份验证,所以很多2021年8月之前的教程在站点配置文件_config.ymlDeployment部分的repo内容填的都还是https://github.com/[账户名]/[账户名].github.io.git,导致后面hexo d上线时输入账号密码仍旧报错,因为搞起来比较复杂,所以这个我把这个巨坑从原先的8.踩坑记录挪到前面变成目录

方法一:配置token(令牌)

没配置时报错含 remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

解决方法:点击右上角头像 > Settings > 左侧Developer settings > 左侧Personal access tokens右侧点击Generate new token按钮创建令牌,进去后Note设置令牌名称,Expiration设置令牌到期时间,Eelect scopes选repo就行,然后拉到最下面生成,复制生成的密钥存下来(密钥只会显示这一次,切记存好),打开站点配置文件_config.yml,找到以下代码修改repo:

1
2
3
4
5
6
7

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: https://[密钥]@github.com/[账号名]/[账号名].github.io.git #账户名是GitHub账号名
branch: main #GitHub已将分支由master改为main

方法二:配置SSH密钥

没配置时报错含FATAL bash: /dev/tty: No such device or address error: failed to execute prompt script (exit code 1) fatal: could not read Username for 'https://github.com': Invalid argument Error: bash: /dev/tty: No such device or address error: failed to execute prompt script (exit code 1) fatal: could not read Username for 'https://github.com': Invalid argument

先在本地生成ssh key,在git shell窗口输入:

1
$ ssh-keygen -t rsa -C [你的邮箱地址]

然后一直按回车

完成后公钥就生成在C:\Users\[Administrator]\.ssh\id_rsa文件里,然后复制里面所有内容后进入GitHub,右上角头像 > Setting > 左侧SSH and GPG keys > 点击右侧New SSH Key按钮,进入后title随便设置名字,Key输入刚刚在id_rsa粘贴的内容,然后点击Add SSH Key按钮

完成后去shell窗口验证ssh key:

1
ssh -T git@github.com

出现以下语句说明ssh key已经配置好

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

接着初始化本地git仓库,在站点配置文件_config.yml同级目录打开git shell窗口,设置git的username和email:

1
2
git config --global user.name  '[你的username]'
git config --global user.email '[你的email]'

初始化git仓库:

1
git init

本地仓库连接远程仓库:

1
git remote add origin git@github.com:[账号名]/[账号名].github.io.git

完成后,打开站点配置文件_config.yml,找到以下代码修改repo:

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: git@github.com:[账号名]/[账号名].github.io.git #账号名是GitHub账号名
branch: main #GitHub已将分支由master改为main


6. 修改站点配置文件

站点配置文件即_config.yml,点开后从上到下依次是Site, URL,Directory,Writing,Home page setting,Category & Tag,Metadata elements,Date / Time format,Pagination,Include / Exclude file(s),Extensions,Deployment,新手只需先修改一些基础的配置,让我们能先把博客发布出去

首先Site部分:

1
2
3
4
5
6
7
8
# Site
title: #网站主标题,一般写博客名
subtitle: '' 网站副标题,一般写座右铭
description: #描述
keywords:
author: #作者名
language: #网站语言,中文zh-CN,英文en
timezone: '' #时区不用填

URL部分:

1
2
3
4

# URL
url: https://[账户名].github.io/

Deployment部分:

1
2
3
4
5
6
7

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: [在目录 {5.配置token(令牌)或SSH密钥}处 两个方法二选一配置]
branch: main #GitHub已将分支由master改为main


7. 部署上线

依旧进入 _config.yml文件同级目录,右键git bash here打开git的shell窗口,按顺序输入以下代码部署上线:

1
2
3
hexo clean  #清理缓存
hexo g #部署
hexo d #上线

hexo d 100%完成上线后,在浏览器地址栏输入https://[账户名].github.io 回车,在之前步骤没问题的情况下,至此,一个原始且淳朴的属于自己的hexo个人博客就建好啦!

想必初始的博客样式并不能满足大家想要的效果(我真的没有针对landscape →v→),想要自己的博客有更好看的主题,可以来这挑选 Hexo主题 ,新手大部分会先尝试nexT,因为这个主题用的人多网上教程也多,想了解主题配置请点击这里《Hexo主题配置教程》


8. 踩坑记录

部署上线后白屏或者404

  1. 白屏情况可能是站点配置文件_config.yml里的URL部分写错了:
    # URL
    url: https://[账号名].github.io/  #此处的连接后记得有一条'/' 
    

记得配置文件里的 key:value 中冒号:后面都有一个空格!

  1. 页面404部分:
    一般都是网址写错了,或者是站点配置文件里URL 下的root:不是’/‘,但初始配置应该不会改的,所以认准https://[账号名].github.io/


`hexo d`后出现有关SSL的报错,或者报错含有`Spawn failed`

运行git config --global http.sslVerify falsehexo d 一遍


`hexo d`后卡一会然后出现有关time out的报错

网络超时,等网速可以的时候再传

The End


GitHub+Hexo搭建个人博客
https://wwwhisperr.github.io/2022/07/11/demo01/
作者
Whisper
发布于
2022年7月11日
许可协议