0%

语雀同步hexo实现

简介

语雀编写文档写起来很方便,适合于个人写文章和记录。hexo 是一个很实用的博客框架,主题多,搭建使用起来方便,但是每次写文章不是很方便,需要在本地写好再放上去。因此考虑取长补短,使用语雀来写博客,再使用 hexo 来展示,依赖的主要工具:https://github.com/x-cold/yuque-hexo

工具使用

Install

将相关的项目安装到本地(提前配置好 node 环境)

1
2
3
npm i -g yuque-hexo
# or
npm i --save-dev yuque-hexo

Sync

在对应博客的 package.json 中添加
(token 也需要配置见下文)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"yuqueConfig": {
"postPath": "source/_posts/yuque", // 生成的文章目录
"cachePath": "yuque.json",
"mdNameFormat": "title",
"adapter": "hexo",
"concurrency": 5,
"baseUrl": "https://www.yuque.com/api/v2",
"login": "", // 登录用户
"repo": "", // 对应知识库的内容,url上可以看到
"onlyPublished": false,
"onlyPublic": false,
"lastGeneratePath": "lastGeneratePath.log",
"imgCdn": { //图床配置
"enabled": true,
"concurrency": 1,
"imageBed": "github",
"host": "cdn.jsdelivr.net",
"bucket": "image",
"region": "",
"prefixKey": "blog-images"
}
}

执行如下命令,会把语雀对应的文章生成到对应的目录下,注意会覆盖掉之前目录下的内容,记得保存好。同步之后就可以将自己的语雀文章发布到博客上了。

1
yuque-hexo sync

Clean

下面命令会清除已同步的文章

1
yuque-hexo clean

图床搭建

语雀本身的图片有防盗链机制,同步过来之后图片就识别不了了。可使用图床,把相关的图片上传到图床,并替换链接。本文主要介绍 github 图床。

新建仓库

在 github 上新建一个空的仓库,权限选 public 公开。

生成 token

生成一个自己 github 账号的 token 令牌,点击右上角头像->Settings->左侧底部 Developer settings->Personal Access tokens->tokens->Generate New Token,后续需要用到(已有的请忽略)。token 秘钥只显示一次,请妥善保存。

记得勾选,读写权限

配置文件配置

新建一个环境变量文件,读取 token 和图床信息

1
2
3
YUQUE_TOKEN=xx #语雀的token
SECRET_ID=xx #github用户名
SECRET_KEY=xxx #图床生成的token

安装 dotenv-cli,之后使用相关命令启动读取的命令

1
2
3
4
5
6
7
8
9
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"deploy": "hexo deploy",
"server": "hexo server",
"sync": "yuque-hexo sync",
"clean:yuque": "yuque-hexo clean",
"yuque:sync-local": "dotenv -e .env yuque-hexo sync"
},

使用 npm run yuque:sync-local

其他方案

https://github.com/LetTTGACO/elog
使用和图床配置都类似,支持的博客框架和写作平台更多一些。但是目前发现同步过来文件名没有识别到
修改配置文件:.elog.env
主要配置:elog.config.js

脚本更新

由于本人比较懒,文章写得比较好,因此也懒得折腾自动更新了
使用脚本来同步
yuque-hexo 脚本

1
2
3
4
5
6
7
8
9
10
11
@echo off
REM 切换到目标目录,使用
cd E:\Blog

REM 同步命令
npm run yuque:sync-local

REM 更新到hexo
hexo g
hexo d
pause

elog 脚本

1
2
3
4
5
6
7
8
9
10
11
@echo off
REM 切换到目标目录,使用
cd E:\Blog

REM 同步命令
elog sync

REM 更新到hexo
hexo g
hexo d
pause
-------------本文结束感谢您的阅读-------------
您的支持将成为我创作的动力!