hexo部署到github pages
这是我在github pages上部署hexo的方法,参考了官方文档
在 GitHub Pages 上部署 Hexo
建立名为 <你的 GitHub 用户名>.github.io
的储存库,若之前已将 Hexo
上传至其他储存库,将该储存库重命名即可。
修改_config.yml
1 |
|
将 Hexo
文件夹中的文件 push
到储存库的默认分支,默认分支通常名为 main
,旧一点的储存库可能名为 master。
将 main
分支 push
到 GitHub:
1 |
|
默认情况下 public/
不会被上传(也不该被上传),确保 .gitignore
文件中包含一行 public/
。整体文件夹结构应该与 范例储存库 大致相似。
使用 node --version
指令检查你电脑上的 Node.js
版本,并记下该版本 (例如: v16.y.z
)
在储存库中建立 .github/workflows/pages.yml
,并填入以下内容 (将 16
替换为上个步骤中记下的版本):
.github/workflows/pages.yml
1 |
|
当部署作业完成后,产生的页面会放在储存库中的 gh-pages 分支。
在储存库中前往 Settings > Pages > Source,并将 branch 改为 gh-pages。
前往 https://<你的 GitHub 用户名>.github.io 查看网站。
CNAME
若你使用了一个带有 CNAME 的自定义域名,你需要在 source/ 文件夹中新增 CNAME 文件。 更多信息
项目页面
如果你希望网站部署在 `<你的 GitHub 用户名>.github.io`` 的子目录中:
建立名为 <repository 的名字>
的储存库,这样你的博客网址为 <你的 GitHub 用户名>.github.io/<repository 的名字>
,repository
的名字可以任意,例如 blog
或 hexo
。
编辑你的 _config.yml
,将 url:
更改为 <你的 GitHub 用户名>.github.io/<repository 的名字>
。Commit
并 push
到默认分支上。
当部署完成后,在 gh-pages
分支可以找到生成的网页。
在 GitHub 储存库中,前往 Settings > Pages > Source
, 并将 branch
改为 gh-pages
。
前往 https://<你的 GitHub 用户名>.github.io/<repository 的名字>
查看网站。
私有化部署Hexo
如果不希望别人直接fork自己的hexo仓库,但又想使用github action部署hexo,可以使用下面的方法
1、创建ssh密钥
执行命令:
1 |
|
连续三次回车,然后在~/.ssh
目录中就可以看到新生成的ssh密钥文件,id_rsa 为私钥
,id_rsa.pub为公钥
2、创建仓库
创建两个仓库,一个是公有仓库<你的 GitHub 用户名>.github.io
,用于展示网页;另一个是私有仓库<私有仓库名>
,用于存放你的Hexo源码。
3、添加密钥
- 1、添加公钥
在公有仓库中的Setting
->Deploy keys
->Add deploy key
添加公钥,并勾选Allow write access
。当然也可以在github主页点右上角的头像,选择Settings
->SSH and GPG keys
->SSH keys
->New SSH key
添加公钥
Deploy keys
类似SSH keys
,只有拥有与该公钥匹配的私钥相匹配才能进行ssh连接,进行git推送
- 2、添加私钥
在私有仓库的Setting
->Secrets and variables
->Action
->New repository secret
添加私钥,并将私钥的名称命名为DEPLOY_PRI
3、配置私有仓库
使用git将私有仓库克隆到本地并在仓库中配置好Hexo,然后在仓库的根目录新建github action文件夹.github/workflows
,在里面新建一个pages.yml
,填入以下内容
1 |
|
然后将私有仓库推送到github上,这时候去查看私有仓库的github action就可以看到正在运行自动推送的任务了,之后修改Hexo的文章后就可以自动推送了