hexo博客自动发布

hexo是一款博客工具,可以将markdown文件自动转换成html静态页面,并且有丰富的主题可选,是一款很优秀的博客工具(关于hexo如何搭建,自行百度,很简单)。但是hexo有一个很大的不足,就是本地编辑的文件需要手动hexo g编译然后hexo deploy上传。

因为本身我有一台自己的腾讯云服务器,可以将其发布到上面。但是又不想那么麻烦,每次本地写完文章后,还要经过好多步骤才能发到网上。

于是就有了一个想法:能不能本地写完文章后自动发布到网上,实现完全自动化。

下面就是操作流程 ↓ ↓ ↓

自动化架构

首先要实现这个自动化流程需要几个工具GoodSyncjenkinsnginx

下面是架构图

hexo本地编辑自动发布

实现步骤

1、服务器搭建hexo

在服务器上搭建一套hexo,如果不好调试可以先在本地调试美化好后再到服务器替换掉该替换的文件

2、编写文档

在/source/_posts目录下新建一个md文档

hexo文档都有一个固定的头(Front-matter),这样才能检测转换,如

---
title: 2021-10-31 努力,别停下来
date: 2021-10-31
cover: https://gitee.com/BestErwin/img/raw/master/202111091527046.png
---

当然不同主题的Front-matter是不尽相同的,详细要看各自的主题文档

3、配置goodSync同步

写好文件之后需要上传到服务器,当然不能手动,这个时候就需要用到goodsync了。goodsync会监听指定文件夹的文件变动,自动同步到服务器,只需要简单配置一下就可以实现

image-20211109233450811

4、搭建nginx

服务需要被访问到,当然要搭建服务http服务,这里使用docker nginx搭建http服务,当然也可以用普通的nginx搭

服务器安装docker,运行

docker run --name hexo-nginx -p 9900:80 -v /home/hexo/public:/usr/share/nginx/html:ro -d nginx
  • 9900 是你最后浏览器要访问的端口,可以自行更换
  • /home/hexo/public:是hexo编译后的public文件夹

5、jenkins服务自动化构建

ps:imgjenkins如何搭建自行百度了哈,实在是懒得写

jenkins创建一个普通项目

image-20211109234732587

生成API token

image-20211109235135320

下载远程构建插件: Build Authorization Token Root

image-20211109235448493

编写构建脚本

image-20211109234926015

6、文件变动监控脚本

服务器编写文件变动监控脚本,当监控到hexo文件夹变动的时候,自动调jenkins构建链接进行构建

服务器下载:inotify-tools

安装

tar zxvf inotify-tools-XXX.tar.gz
cd inotify-tools-XXX
./configure
make
make install

编写脚本

#!/bin/bash
export CNROMS_SRC=/home/hexo/_gsdata_/_saved_   # 需要监控的路径
inotifywait --exclude '\.(part|swp)' -r -mq --timefmt '%y-%m-%d %H:%M' --format '%T %w%f %e' -e  modify,move_self,create,delete,move,close_write $CNROMS_SRC |
  while read event;
    do
    curl 'http://10.168.2.238:8888/buildByToken/build?job=hexo&token=11c1443bfaa6XXXXXX26ad426a5a9d6' && echo '执行成功' || echo '失败' #jenkins远程构建链接
  done

启动脚本

sh inotifywait.sh >/dev/null &

到这里所有设置都完成了,在本地_posts文件夹新建一个md文件,编写完成后保存,几秒钟后goodsync自动上传到服务器相应位置,然后监控脚本检测到文件变动,调用jenkins构建链接,自动构建hexo文件并发布到nginx服务。实现本地编写自动发布。img

虽然有些繁琐,但是却是目前想到的最好的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值