Hugo+Github+Obsidian的博客工作流
文章目录
是不是每一个博客的第一篇博客都是教你如何搭建博客(笑
序言
其实很久之前已经搭过一个博客,但已经年久失修了。这次因为又起了记录和整理知识以及分享一下生活的心思,重新搭了一个博客,也许会一直更下去,也许今天之后就不会更了….. :-D
前期准备
我使用Hugo搭建静态博客,并将其通过GitHub Action部署到我的云服务器上,通过Cloudflare启用域名解析和CDN。
在本地通过Obsidian来编辑和推送博客。
故你需要:
- 一个GitHub账号
- 一个云服务器,并安装Nginx
- 一个Cloudflare账号和一个域名
- Obsidian
开始搭建
安装Hugo
我的本地操作系统为Arch,通过pacman -S hugo安装Hugo,注意,由于我使用的主题需要用到Hugo Pipes特性,故需要安装Hugo extend,通过pacman安装的Hugo默认已经启用了extend。
其余操作系统可在这个界面查看如何安装。
执行hugo new site my-blog 创建一个新站点。,为了将Hugo备份至GitHub,并使用其同步功能,需要执行:
| |
将其初始化为一个仓库。
安装Hugo 主题
我使用的是Even主题,它的干净和简洁深得我心。
具体的安装步骤可以在其README界面查看,不过为了避免各位不想去看README,我将关键步骤整理如下。
先进入站点根目录,执行:
| |
然后将主题提供的配置文件复制到站点根目录:
| |
根据自己的需求修改配置文件。
注意: 对于这个主题,你应该使用 post 而不是 posts,即
hugo new post/some-content.md
GitHub 同步推送至服务器
当在本地编辑完博客并推送至远程仓库后,会触发GitHub Action,自动编译Hugo网站,并使用rsync同步至服务器,GitHub Action的配置如下所示:
| |
这里需要添加一些Repository secrets:
- TARGET_DIR:为服务器网站根目录
- SSH_HOST
- SSH_USER
- SSH_PRIVATE_KEY
- GITALK_CLIENT_ID和GITALK_CLIENT_SECRET:如果使用Gitalk作为评论系统需要配置
本地Obsidian工作流
需要用到Enveloppe和QuickAdd插件:Enveloppe用来提交和推送博客,并将Obsidian格式的Markdown文件转成Hugo格式;QuickAdd插件用来快速创建一个新博客模板。
Enveloppe配置如下:
| |
请把上面的json配置文件中
conversion.censorText[0].replace中的“把我删掉”这四个字删掉
QuickAdd脚本可以在GitHub仓库中查看