记录本博客目前的编写, 数据同步, 部署方案.
Markdown文章编写使用Obsidian来完成, 多端数据同步使用remotely-sync
来同步到Onedrive上. 使用这套方案可以有很好的编辑体验以及可以做到多个终端数据同步.
由于我有一台Nas, 在Nas上启动了Cloud-Sync
服务,将Onedrive中的数据同步到Nas中存储(目前没有内网穿透, 如果可以直接访问Nas,可以使用WebDav直接同步到Nas上).
在Nas中会每天定时调用脚本, 脚本的会检查文章状态, 文件夹是一个Git仓库, 如果检测到文件变动, 会自动提交到Github.
在Github中, 使用Action来检测变动, 来自动完成文章部署.
以下是如何配置Github Action.
前提
- 电脑生成私钥公钥,公钥已经设置到Github上。
- GitHub上有
user-name.github.io
仓库 - 设置私钥到
user-name.github.io
仓库下,打开该仓库,找到setting/secrets/New repository secret
将本地~/.ssh/id_ras
文件复制进来,名称可以随便取,不过在下面使用的时候需要对应起来,比如我用了ACTION_DEPLOY_KEY
这个名称。需要勾选Allow write access
。
开始操作
- 下载
user-name.github.io
- 新建
Hexo
分支 - 将
Hexo
分支下的内容删除,将Hexo
的内容复制到该目录下。 - 编写
Hexo
分支下.github/workflows/main.yaml
文件,需要自己新建。内容为:
1 | name: Deploy Blog |
最终效果
在user-name.github.io
这个仓库中,master
分支为Hexo生成的Html页面内容,hexo
分支为原始文件,包括md文件,hexo的配置信息等。当我们编写完文章中,只要推送到了远端仓库,就可以帮我们自动完成发布,如果遇到异常还会给你发送邮件提醒。
注意事项:
在hexo的配置文件中,部署的GitHub地址需要使用git
不能使用http
。