在 github page 上部署 Hexo 个人博客
网上有许多教程讲了如何将 hexo 部署到 github 上,但没考虑到国内环境下,github 访问的问题。本文将从访问 github 开始,在本地初始化 hexo,远程部署到 github,并且通过编写脚本实现一键启动新建文章部署。
一、访问 github
一般 windows 下可以使用科学上网,这是比较复杂的方法,涉及到不能言说的东西。同时还能使用修改 host,将 github 站点原 ip 映射到本地 host 文件中,但是这个方法也是用不久远的,因为 github 的 ip 时刻在变。
这里我推荐Steamcommunity302这款由 Dogfight360 大大制作的本地反代理软件,不仅能在国内环境访问 steam 商店,社区还能访问 github.
首先,前往站点steamcommunity302下载最新版,解压。
然后,进入设置,勾选 github 选项,开机自启动。
保存设置,启动服务
最后,github,启动!
二、创建 github pages 仓库
注册 github 账号
首先得有一个可以收发的邮箱账号,这里我用的 QQ 邮箱。进入 github 官网,点击右上角的 sigin up 按钮,填写注册信息,其中 username 为之后 github pages 域名的开头,如 username.github.io,自己想一个。
创建仓库
注册完之后,登陆,在 repository 里点击按钮,新建一个仓库,假设你的用户名为 hello,则仓库名为 hello.github.io,设置默认分支为 hexo 分支,分支名也可以是其他的,后面 hexo 部署要用。
到这里,github 仓库就配置完成了,可以在里面上传一个 index.html
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1 style="text-ailgn:center;">Hello World!</h1>
</body>
</html>
然后访问你的 github pages 地址测试一下,如 hello.gothub.io,默认支持 https,是用的是 github 官方的 ssl 证书,也支持自定义域名,如 blog.example.com
三、本地部署 Hexo
安装 Hexo
前置条件:git,nodejs 18 及以上
以上两软件 Windows 下直接去官网下载,安装。
然后安装 hexo 官网的方法,全局下载 hexo。
安装完成后
hexo init 博客名 //创建本地hexo仓库
cd 博客名 //进入你的hexo仓库
hexo server //启动服务 这时访问 http://localhost:4000/ 看是否能够访问
配置 Hexo
进入你的 hexo 博客文件夹,根目录里面有个_config.yml 的文件,里面就是你博客的各种配置信息了。可以根据 hexo 官方的教程进行自定义。
配置完成后输入如下命令更新
hexo clean
撰写博客
在使用 hexo server 开启服务后,在项目根目录下 source 文件夹内_posts 文件文件夹中的 markdown 文件会实时生成文章,也就是说以后将文件放入此文件夹即可发布
四、发布到 GithubPages
生成 ssh 公钥
在已经安装了 git 的环境下输入以下命令生成公钥:
ssh-keygen -t rsa -C “example@emali.com” //该邮箱可以是你github注册邮箱
一路回车
Windows 下公钥文件会保存在 C:\Users\你的用户名.ssh 文件夹下,.pub 后缀名的文件,右键使用记事本打开,复制其中内容。
github 配置 ssh key
进入 settings
打开 SSH and GPG keys,点击 New SSH key 按钮
在里面 key 填入上一步生成的.pub 公钥内容,name 随意,然后带你加 ADD SSH key
配置 hexo 部署文件
进入创建好的 hello.github.io 仓库,复制仓库 ssh 链接地址
打开本地 hexo 配置文件_config.yml 将末尾的 deploy 中的 repo 改为刚刚复制的 ssh 链接地址
deploy:
type: git
repo: "ssh地址"
branch: "hexo"
完成以上步骤,在 hexo 本地仓库目录终端下运行以下命令
hexo clean
hexo deploy
没有报错,访问 hello.github.io 查看是否生效。到这样就大功告成了。
注意事项
git ssh 连接不上 github
这往往是 22 端口不行,在 C:\Users\你的用户名.ssh 文件夹中 config 文件中写入
Host github.com
Hostname ssh.github.com
Port 443
这个配置是使用 443 端口进行 ssh 通讯