该项目为 语雀 知识库同步工具,根据指定配置将语雀知识库文档下载到本地。该插件属于二次开发项目,因个人有较高定制化需求,故在原项目( x-cold/yuque-hexo )的 1.7.0
版本基础上重构代码以及需求上的二次开发。
相比原插件增加的功能:
- 支持语雀多个知识库的下载至指定文件夹
- 支持加密文章的特殊化处理
- 无需对语雀文档添加
front-matter
字段,常用字段自动拉取- 基本字段:
title
、date
、updated
- 根据语雀系统自动拉取:
urlname
、word_count
、secret
、belong_book
- 支持语雀系统上文档的目录至
hexo
中的categories
字段 - 自定义(eg:
tags
语雀文档暂无相关标签字段接口)
- 基本字段:
- 支持
hexoMarkdown
、hexoHtml
、markdown
三种format
格式 - 支持缓存配置
npm i -g yuque-hexo-lyrics
yuque-hexo-lyrics clean
yuque-hexo-lyrics sync
拉取语雀上的知识库需要传入环境变量 YUQUE_TOKEN
,传入 YUQUE_TOKEN
至本地有以下步骤:
- 语雀 Token 获取方式:https://www.yuque.com/settings/tokens
- 设置全局的环境变量 YUQUE_TOKEN
- 方式一:命令执行时传入环境变量
- mac / linux:
YUQUE_TOKEN=xxx yuque-hexo-lyrics sync
- windows:
set YUQUE_TOKEN=xxx && yuque-hexo-lyrics sync
- mac / linux:
- 方式二:直接在系统环境变量中设置
- 方式一:命令执行时传入环境变量
package.json
{
···
"yuqueConfig": {
"cache": {
"path": "yuque-hexo-lyrics"
},
"repos": [
{
"login": "wztlink1013",
"repo": "website",
"postPath": "source/website/",
"mdNameFormat": "title",
"adapter": "hexoMarkdown"
},
···
]
}
}
字段 | 默认值 | 描述 | |
---|---|---|---|
cache | path | yuque-hexo-lyrics | 缓存文件名 |
repos | baseUrl | https://www.yuque.com/api/v2/ | 语雀 API 地址 |
login | - | 语雀 login (group), 也称为个人路径 | |
repo | - | 语雀仓库短名称,也称为语雀知识库路径 | |
postPath | source/yuque | 文档同步后生成的路径 | |
mdNameFormat | title | 文件名命名方式 (title / slug) | |
onlyPublished | false | 只展示已经发布的文章 | |
onlyPublic | false | 只展示公开文章 | |
adapter | hexoMarkdown | 文档生成格式 (hexoMarkdown/hexoHtml/markdown) | |
timeout | 200s | 超时时间 | |
concurrency | 5 | 下载文章并发数 |
slug 是语雀的永久链接名,是几个随机字母和数字的混合字符串。
- 插件会自动拉取大多数 Hexo 字段,使得在语雀中写文章不用每次在头部都需要手动写
front-matter
,以下字段后续还会扩充 - 除去大多数上述字段,有少部分字段目前难以适配,比如
tags
和Hexo
大多数主题自定义front-matter
,语雀系统暂未开放文档的标签相关字段,所以写文章特别注重标签的用户只能以下面方式来添加front-matter
:
---
tags: [hexo, blog]
---
article description
<!-- more -->
article detail
去除原插件的本地缓存文件相关配置,因为当知识库文档数过大,本地缓存 json 文件过大。故改用新一种缓存策略,通过对文件判断更新日期、标题、本地存在与否在进行是否重新下载操作
https://github.com/wztlink1013/yuque-hexo-lyrics/projects/1