语雀文章自动同步Hexo

前言

之前个人网站一直用的yuque-hexo来自动同步语雀文章到Hexo,某天发现其图片下载处理有点问题,导致个人网站图片全挂了。原项目是js不太熟,花了点时间自己整了个工具yuque-image-sync也可以完成相同的工作。今天就介绍下如何使用yuque-image-sync来自动同步语雀文章到Hexo。

yuque-image-sync工作流程介绍

这个工具主要做的事情概括下来主要如下:

  • 通过OpenAPI下载语雀上的文章
  • 将图片上传图床(现在v1.0.0仅支持上传阿里云)
  • 将语雀文章中的图片地址全部替换为图床的地址避免语雀图片防盗链的问题

yuque-image-sync使用

安装jdk环境

因为是java写的,需要安装java环境才可以执行。安装jdk命令如下:

1
yum install java-1.8.0-openjdk-devel.x86_64

下载yuque-image-sync工具包并解压

点我下载最新安装包yuque-image-sync.tar.gz,下载后使用如下命令解压即可:

1
tar -zxvf yuque-image-sync.tar.gz

解压后可以看到如下的目录结构:
image.png

配置yuque-image-sync

配置文件是conf/conf.properties,其中配置项的含义和获取方式如下:

参数 说明
yuque.token 语雀->账户设置->token 中获取
yuque.repo 知识库的名称,知识库设置中路径最后的就是
yuque.user 账户设置->账户管理->个人路径最后就是
yuque.new.interval.sec 设置小于等于0的值表示拉取和处理所有语雀已发布的文章,设定具体的秒数,更新时间>(当前时间-秒数) 的文章才会被处理,提升处理效率,避免重新处理历史文章
aliyun.oss.endpoint 阿里云OSS控制台可查,例如:https://oss-cn-hangzhou.aliyuncs.com
aliyun.oss.bucket OSS bucket名字,需要在阿里云控制台先创建bucket
aliyun.oss.ak 阿里云AccessKey
aliyun.oss.sk 阿里云SecretKey
parallel 并行度,一般设置成和你核心数一样就可以,例如4核可以设置为4
local.post.home 处理后的markdown源文件需要保存的位置
sync.timeout.sec 每个线程获取异步处理结果的超时时间,一般可以设置为300秒

语雀文章需要输出到Hexo的文章目录,Hexo的文章目录一般在$HEXO_HOME/source/_posts下。

启动工具

运行解压后bin目录中的启动脚本即可完成自动处理。日志输出在~/logs/yuque-image-sync/console.log

1
sh bin/start.sh

hexo部署

文章生成后执行hexo命令完成部署

1
hexo g