利用GitHub-Actions将Hugo博客自动发布到GitHub和Gitee Pages

Python012

利用GitHub-Actions将Hugo博客自动发布到GitHub和Gitee Pages,第1张

现在个人博客通常有比较多的选择,如果不想要自己购买服务器实现静态博客的发布,可以在、CSDN等平台建立自己的账号并发布,但是原始数据无法在本地管理;如果想要数据完全自己管理,可以使用GitHub或者Gitee Pages功能发布自己的博客,利用Hugo或Hexo等成熟的静态博客将md文件转换成静态网站文件进行快速发布。本文就用来记录如何快速将博客发布到、GitHub以及Gitee Pages三个平台。

我希望的流程当然是主要精力用在写文章,发布的流程最好完全不需要手动处理,但实际情况下手动发布博客的流程大体是:

之前有使用过Travis CI+GitHub+Hexo自动发布到GitHub Pages,但是GitHub的访问经常不那么靠谱,因此想着也能同步到Gitee,并且自动构建Hexo的速度受Nodejs环境部署影响,速度很慢,因此本次计划采用Hugo来构建网站文件,整体流程设计如下:

为了满足博客自动发布流程,首先需要在本地准备好生产环境,以满足快速发布,以此的复杂是为了长期的简单,因此在环境准备阶段我会把所有涉及的工具都记录下来,以方便大家使用以及后边自己回顾,环境准备包含:

Obsidian完成知识积累后,按照ZK->Project->Archive->Blog的流程发布Blog,但是Obsidian的文件相互关联,且附件如何快速复用,需要对Typora和Obsidian都进行简单的配置,确保后续Blog能够快速完成并发布,并且文件仍在Obsidian工程中正常显示;

Typora非常的简洁,而且可以实时预览,在写博客的时候经常会插入一些图片,截图后可以直接粘贴进去,图片也会自动保存在本地,这里需要注意图片的保存路径,在偏好设置里,设置插入图片时复制到指定路径(./resource/),这样复制的图片就会自动保存在当前文件夹下的resource文件夹里,方便后续管理与转移。

在.ssh文件生成id_rsa和id_rsa.pub两个文件;

Hugo 是一个基于Go语言开发的静态博客框架,号称世界上最快的构建网站工具;

命令为: hugo new site myblog

myblog为博客的目录名,可以修改为你自己想取的名字,生成的目录如下:

由于默认主题生成的文章页面有些功能是不需要的,因此需要对themes下文件进行修改:

将config、content和themes三个目录拷贝到新创建的站点目录,将content下替换为文章文件即可。

utterances 是一款基于Github Issue的Github工具,优点主要是无广告、加载快、配置简单,轻量开源。

由于 utterances 是一款Github App,因此 安装utterances 非常简单,只需要授权特定repo权限给 utterances 就可以了,注意一个点:授权的这个repo必须是public的,可以选择多个repo,但是建议选择一个就可以了,也比较安全。

这是当前最简单的配置方法, 也可以在 utterances官方 查看其他配置方法,以及详细的配置参数说明。

Obsidian的安装和使用可参考我的另一篇文章: Obsidian作为第二大脑工具的基本使用和配置

所有环境准备好后,终于要开始启动我们的自动化流程的实现了;

同之前步骤相同,将Gitee密码配置到GitHub Secrets,命名为:GITEE_PASSWORD,所有配置结果如下:

synctogitee.yml

需要绑定Gitee账号到微信公众号,否则最后一步reload pages自动部署Gitee Pages会登录失败,原因是需要短信验证;绑定公众号后则不需要短信验证;其他问题解决可以参考 gitee-pages-action

在Typora完成文章编写后,一键上传所有图片到Gitee图床,拷贝发布到,然后提交到GitHub repo master分支,即可自动部署到GitHub和Gitee Pages;

以上就是我利用GitHub-Actions将Hugo博客自动发布到GitHub和Gitee Pages,希望可以帮助大家快速构建自己的个人网站;后边我会继续完善我的第二大脑系统的构建思路和方法。

一直直接操作的框架 使用vscode 打开就会自动装包,这次想写一个简单应用,确不会怎么建项目,记录如下。

go1.14 后,以及不再需要把项目写在GOPATH下,所有不需要再配置。

配置GOPRXY goenv-w GOPROXY=https://goproxy.cn,direct(国内无法访问https://proxy.golang.org)

使用go mod方法新建项目。

任意位置新建文件夹。

文件夹下执行go mod xxx ,生成一个go.mod文件。

新建一个main.go文件,就可以直接运行了。

我开始的时候,先建了main.go文件,再执行的go.mod。后面没法运行。

参考:李文周的博客。

go语言web框架beego安装(go mod方式)_不忘初心,方得始终-CSDN博客

重要:将bee命令放到GOROOT/bin目录下,这步很关键

cp bee /usr/local/go/bin/

注:或者可以将GOPATH/bin设置为环境变量

echo ’export PATH=" PATH"' >>~/.bashrc

source ~/.bashrc

router路由下方法名要大写,访问权限

wq保存

生效环境变量: source /etc/profile

go build -o abc.exe可指定编译后的文件名

Golang常用环境变量说明与设置详解

环境变量GOBIN表示我们开发程序编译后二进制命令的安装目录。

当我们使用go install命令编译和打包应用程序时,该命令会将编译后二进制程序打包GOBIN目录,一般我们将GOBIN设置为GOPATH/bin目录。

export GOBIN=$GOPATH/bin

Go get包管理mod

windows下默认项目路径在go安装目录的src下(beego)