本文章由语雀编写
「语雀」是一个「知识创作工具」,孵化自 蚂蚁金服 ,是 体验科技 理念下的一款创新产品,已是 5万+ 阿里员工进行文档编写、知识沉淀的标配。博主本来就是语雀的用户,偶然发现下了elog,可以将语雀的文章同步到本地。用语雀写作除了能够即使渲染之外,并且图床也不用考虑了。废话不多说了下面开始教程。
迁移博客文章到语雀
打开语雀官网进入首页,点击左上角加号
其次点击导入
然后选择markdown
格式
最后在markdown导入配置中选择markdown打包后的压缩文件
导入完成后文件的Front-matter有点乱建议自己手动更改下
安装 Elog
首先,你需要使用 npm/ cnpm / yarn / pnpm 全局安装@elog/cli
1 | # 使用 npm 安装 CLI |
配置package.json
将@elog/cli安装到package.json
1 | npm i @elog/cli |
初始化
进入Hexo根目录下,使用命令进行初始化:
1 | elog init |
根据提示初始化成功后,会在根目录生成一份 elog.config.js 配置文件和本地调试用的.elog.env环境变量配置文件。
配置Elog
官方文档提供两种配置方式yuque(Token方式)和yuque-pwd(账号、密码方式)
如果你是语雀的会员建议选择yuque(Token方式,反之则选择yuque-pwd(账号、密码方式)
编辑你的elog.config.js文件
1 | module.exports = { |
配置.elog.env文件
为了防止此文件在Git上传中泄露建议在.gitignore中添加.elog.env
具体配置看你的设置方式
下面直接引入官方的文档说明
语雀(Token方式)
注意:根据语雀定价调整,此方式需要语雀高级会员可用,以前生成过token的账户依旧可用
语雀关键信息获取及配置流程请移步 关键信息获取 页面。
字段 | 必填 | 说明 | 默认值 |
---|---|---|---|
token | 是 | 语雀Token | - |
baseUrl | 否 | 语雀API请求的Base Url | https://www.yuque.com/api/v2 |
login | 是 | 个人路径/空间ID | - |
repo | 是 | 语雀仓库短名称,也称为语雀知识库路径 | - |
onlyPublic | 否 | 是否只获取公开文章 | false |
onlyPublished | 否 | 是否只获取已发布文章 | false |
limit | 否 | 文档下载并发数 | 3 |
baseUrl 为语雀 API 请求路径
当知识库类型为个人知识库时,无需配置。
当知识库类型为团队知识库时,baseUrl=https://空间id.yuque.com/api/v2,login=空间id,repo=空间中的语雀知识库路径
语雀(账号密码方式)
此方式无需语雀会员也可用
注意:在非国内CI/CD环境中使用此方式,例如Github Workflow,会导致语雀后台登录设备中出现大量美国IP,目前尚不清楚语雀是否会有安全限制措施,请谨慎使用。推荐本地同步时使用。
语雀关键信息获取及配置流程请移步 关键信息获取 页面。
字段 | 必填 | 说明 | 默认值 |
---|---|---|---|
username | 是 | 语雀帐号,一般是手机号 | - |
password | 是 | 语雀密码,可在设置进行绑定 | |
host | 否 | 语雀域名/团队域名 | https://www.yuque.com |
login | 是 | 个人路径/空间ID | - |
repo | 是 | 语雀仓库短名称,也称为语雀知识库路径 | - |
linebreak | 否 | 是否保持语雀的换行 | false |
onlyPublic | 否 | 是否只获取公开文章 | false |
onlyPublished | 否 | 是否只获取已发布文章 | false |
limit | 否 | 文档下载并发数 | 3 |
host 为语雀域名
当知识库类型为个人知识库时,无需配置。
当知识库类型为团队知识库时,host=https://空间id.yuque.com
开始同步
配置完成后在根目录下,执行本地同步命令:
1 | elog sync -e .elog.env |
自动化流程
语雀 + webhooks + serverless api + GitHub Actions + Github Pages 持续集成
这里引用官方文档的内容
Github Actions
- 在仓库的Settings 中的Secrets and variables-Actions-Secrets中进行配置需要用到的环境变量
GITHUBTOKEN | 你的Github Token |
---|---|
YUQUE_REPO | 你的语雀知识库路径 |
YUQUE_LOGIN | 你的语雀账号名(路径) |
YUQUE_USERNAME | 你的手机号 |
YUQUE_PASSWORD | 你的语雀密码 |
如何你使用的是语雀(Token方式)可将YUQUE_USERNAME,YUQUE_PASSWORD换成YUQUE_TOKEN
- 在仓库根目录创建.github/workflows/Deploy Yuque-Hexo Public To Pages文件,并按照以下流程配置
1 | name: Deploy Yuque-Hexo Public To Pages |
访问serverless api可触发action部署
serverless api
为了方便,这里提供一个部署在Vercel的免费公用的ServerlessAPI
将其填入语雀Webhooks中即可
未开通会员的语雀小伙伴可直接手动调用此API触发Github Actions进行自动化构建&部署
1 | https://serverless-api-elog.vercel.app/api/github?user=xxx&repo=xxx&event_type=xxx&tok |
语雀 webhooks
在语雀知识库 - 更多设置 - 消息推送中可配置语雀webhooks,填写一个支持POST请求的APi链接即可(这里以serverless api为例)。当文档更新时,语雀会调用这个API进行推送
令人遗憾的是,语雀将 webhooks 收费了
未开通会员的语雀小伙伴可直接手动调用API触发Github Actions进行自动化构建&部署
知识库配置了「自动发布」功能后,文档的 更新/发布 操作暂不会发送 webhooks