测试Hexo在Github上在线编辑并自动推送到Github Pages

  1. 1. 如何实现在Github上在线编辑
    1. 1.1. 1.新建、同步一个仓库
    2. 1.2. 2.生成一个SSH密钥
    3. 1.3. 3.配置gihtub actions
    4. 1.4. 如何在线编辑呢?

在线编辑参考这里


这里应该是详细的解释这个过程是怎么实现的

毕竟看到gihtub actions我就想到说可以来个自动化啊,这样就不用本地了啊,而且还起到了直接备份博客的作用(只要自己的Github密码不会忘记)

如何实现在Github上在线编辑

我因为已经有了github pages仓库,不想全部重来,于是就参考了初探无后端静态博客自动化部署方案这篇文章来

1.新建、同步一个仓库

在github上新建一个仓库(这里就不放图了)

记得要的是空白仓库

然后我们在博客目录打开git来同步仓库

(这里还是不放图了www)

2.生成一个SSH密钥

如果之前已经生成过的请直接忽略这一步骤!!!

在Git里输入ssh-keygen -t rsa -C '你的电子邮箱'

然后回车生成

就会在C:\Users\用户名\.ssh文件夹里生成2个文件,一般是这样的

生成的文件

然后我们打开id_rsa.pub这个文件,复制里面的内容

然后在你的Github头像下点Settings,点击“SSH and GPG key”,新建一个SSH key

Title自取,Key就粘贴刚刚复制的内容

然后点“Add SSH Key”

如果提示说要输入密码验证就输入密码

然后就成功了

例如我的就是这样

因为我这刚刚推送过一次所以就有了

3.配置gihtub actions

首先,请到C:\Users\用户名\.ssh文件夹里,找到名字为id_rsa的文件

(注意是没有后缀的,没有后缀的,没有后缀的!)

然后打开复制里面的内容

回到我们新建的仓库,点击“Settings”,然后……看图点吧

然后……Name填HEXO_DEPLOY_KEY(当然你写自己喜欢的名字也行,但是要在下面代码中的HEXO_DEPLOY_KEY修改成你自己写的名)

之后点Add secrets

搞定后点击“Actions”,然后点击这里↓

图中框住的地方

然后把下面的代码直接全选复制全选粘贴进去

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
name: Hexo Deploy Automatically

on: [push]

jobs:
build:

runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/[email protected]

- name: Node.js envs
uses: actions/[email protected]
with:
node-version: "10.x"

- name: Hexo deploy
env:
HEXO_DEPLOY_KEY: ${{ secrets.HEXO_DEPLOY_KEY }}
run: |
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name "Your GitHub UserName"
git config --global user.email "[email protected]"
npm i -g hexo-cli
npm i
hexo clean && hexo generate && hexo deploy

上面有些内容需要修改为自己的

然后点“Start commit”→“Commit new file”

然后就行了

如何在线编辑呢?

打开你新建的那个仓库,然后依次点击source_和posts文件夹

然后点击右边的Add file按钮,点击Create new file

然后你就看到了这个界面

对了,要自己手动复制scaffolds文件夹里的post.md文件里的全部内容到你新建的文件,然后再开始写……

目前好像也没什么解决办法……

这就是缺点所在了

然后我们写完了,点击下面的Commit new file(修改文件时显示的是Commit changes)就完成了

稍等片刻就好

点击切换到:Disqusjs | Valine 评论系统