- 个人知识库
- 空间(团队)知识库
- 协作知识库
自 2.1.0 版本开始,交互式列表中 👤 前缀表示个人知识库,其它则为 👥
pull -> 登录 -> 交互式选择知识库(命令行参数完整不会进入交互式环节) -> 等待下载完成
目前登录完成后会设置一天的有效时间,也就是说在24小时之内重复导出只有第一次需要登录。
npm i yuque-tools -g 安装到全局
npm i yuque-tools 安装到局部
安装到全局以下方法使用ytool xx
,安装到局部以下方法使用npx ytool xx
创建目录yuque-docs
并进入目录
ytool pull
参数 | 说明 | 必填 |
---|---|---|
userName password | 语雀账号和密码 | 是/交互 |
tocRange | 例如: test-book/测试目录 test-book2 ,多个知识库之间空格隔开 |
是/交互 |
all | 导出所有知识库,与tocRange 互斥 |
是/交互 |
skip/skipDoc | 导出时是否跳过本地同名文件 | 否/交互 |
lb/linebreak | 导出时是否保留语雀换行标签,即<br/> 标签 |
否/交互 |
host | 指定空间 域名,例如: https://van.yuque.com ,后面不要有斜杠(/ ) |
否 |
output | 导出目录,例如: ./mydocs ,默认为docs |
否 |
注意:
- 命令行认为前两个参数为帐号和密码;
- 当以上必填参数全都存在时不会进入交互式环节,反之则会进入交互环节;
- 对于
skip
和lb
,为了命令行使用便捷,采用skip
表示,而为了含义明确,在配置中采用skipDoc
表示,lb
同理; - 为降低命令行使用时的复杂度,
host
及output
(特定场景需要)仅支持配置形式使用且不会进入问询环节,具体配置方式见以下TIPS⬇️
以 我的测试知识库 为例
采用一行命令直接导出的形式:
参数生效的前提是userName
和password
同时存在,且在所有参数最前面,其它参数顺序均无具体要求
ytool pull 18989XXX xxxx all 表示导出所有知识库,不跳过本地同名文件,不保持语雀换行标签
ytool pull 18989XXX xxxx test-book 表示导出
test-book
知识库,不跳过本地同名文件,不保持语雀换行标签
ytool pull 18989XXX xxxx test-book skip 表示导出
test-book
知识库,跳过本地同名文件
ytool pull 18989XXX xxxx test-book/测试目录 skip 表示导出
test-book
知识库下测试目录
下的文档,跳过本地同名文件
ytool pull 18989XXX xxxx test-book other-book skip 表示导出
test-book
和other-book
两个知识库,跳过本地同名文件
ytool pull 18989XXX xxxx all skip lb 表示导出所有知识库,跳过本地同名文件,保持语雀换行标签
采用完全交互式的形式:
ytool pull 即什么都没有传的情况下,以上所有可选的信息都会进入交互式问询环节
工具可能存在因yuque
接口的不稳定性产生的无法规避的错误(概率较低),从而导致导出操作失败/异常,此时可以clear
之后再重试导出操作。
ytool clear
导出参数支持配置化形式,适合长期使用,采用yuque-docs/yuque.config.json
进行配置,具体含义与上述[参数说明]一致
以下配置模版可通过
ytool init
直接生成(仅支持2.0版本及以上)
{
"userName": "XXX",
"password": "XXX",
"tocRange":["xxx知识库", "yyy知识库/zzz目录"],
"skipDoc": false,
"linebreak": false,
"host":"",
"output":"./docs"
}
考虑后期此工具(外挂)还会支持更多工具,从2.0版本开始支持便捷的升级操作,采用如下命令即可方便的完成升级
ytool upgrade
目前具体实践已应用至我个人的 knowledge-garden 中,感兴趣的朋友可以了解其具体实现。
此工具开发的初心是将其作为一个将语雀知识库与其它平台数据共享的介质,因此也具备很多实践的可能性,
通过语雀作为文字的载体,你可以通过yuque-tools
实现以下几种可能性:
- 你有自己的个人博客,通过定制脚本将语雀知识库的内容同步至自己的服务器;
- 你在多个社区有自己的内容创作,通过定制脚本将语雀知识库的内容同步至内容平台;
- 你有更灵活的私域/公域的文字记录,通过
yuque-tools
灵活的导出能力,将内容分发至不同的平台; - ...
在跨平台文档同步/博客方案方面elog有着更强大的能力,有需要的朋友可以了解一下这个项目
![image](https://private-user-images.githubusercontent.com/43501134/258471862-8876287c-c80d-420d-82af-ade2586970d6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ5Nzg3MzQsIm5iZiI6MTcyNDk3ODQzNCwicGF0aCI6Ii80MzUwMTEzNC8yNTg0NzE4NjItODg3NjI4N2MtYzgwZC00MjBkLTgyYWYtYWRlMjU4Njk3MGQ2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODMwVDAwNDAzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBhZjM3MTZhNzIyMjNiNDhhZjJiMTkwMzJhYWI3NjUzMDVlYTJmZjYyNTg2ZmM1ZjVmYzlmNzgxOTgzZWNlZDcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ApJ5YAv7MBI8BNTvPR83HKdOu5cb5SGhbI1zuhCKHWA)
欢迎提供更好的意见,如果有帮助欢迎点个鼓励的⭐️