语雀文档同步到Hexo博客


对此程序员,都喜欢使用 Markdown 来工作、学习笔记,主要是简洁方便 (本人一直秉持“Everthing is Code”的原则,一次编写,多处复用)。过去一直使用 VS Code + Markdown All in One +PIcGo 的方式发布文章, 也用过 Typora, Notion, 通过 Markdown 格式向各平台分发文章,但是总感觉不是很方便,直到遇见了语雀

  1. 我希望自己的笔记能够形成不同类型的知识库,支持目录,语雀做到了
  2. 同时语雀支持快速的编辑,并支持导入导出 Markdown,进行平台分发
  3. 语雀也可以作为一个博客站点,内容的分发和积累。

考虑到之前写了很多 markdown 文档在 github/gitee, 希望能够进行整合,把语雀作为输入源,其他平台作为分发,包括 github/gitee, 结果一查有插件 yuque-hexo 支持 向 hexo 博客同步文章,正好自己有一个(PS:好久没更新了),系统通过这种方式重新用起来。

1. Hexo 博客

在开始之前,肯定是要有一个 Hexo 博客 - https://github.com/owen2016/owen2016.github.io
image.png

2. 创建语雀文档库

  • 首先注册语雀账号,语雀官网:https://www.yuque.com/
  • 登录语雀账号,新建一个文档库
  • 导入文章 (如果之前有 markdown 文档的话)

3. 获取语雀 token

  • 在语雀上点击 个人头像 -> 设置 -> Token 即可获取

image.png

4.安装&配置 yuque-hexo 插件

安装 yuque-hexo 插件 官方文档:https://github.com/x-cold/yuque-hexo
npm i -g yuque-hexo

配置说明

  • adapter 使用 hexo 和 markdown 都可以,这里推荐使用 markdown,经过我自己测试 markdown 对 front-matter 支持的更好
  • login 和 repo 可以点击 个人头像 -> 设置 -> Token 即可获取
  • login 和 repo 可以从 你的仓库路径中获取,例如我的 仓库路径 :https://www.yuque.com/binowen/blog ,其中 binowen 就是我的 login,blog 就是我的 repo
{
  "name": "hexo-site",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "clean": "hexo clean",
    "clean:yuque": "yuque-hexo clean",
    "build": "hexo generate",
    "deploy": "yuque-hexo sync && hexo deploy",
    "sync": "yuque-hexo sync",
    "reset": "npm run clean:yuque && npm run sync",
    "server": "hexo server"
  },
  "hexo": {
    "version": "5.2.0"
  },
  "yuqueConfig": {
    "postPath": "source/_posts/yuque",
    "cachePath": "yuque.json",
    "mdNameFormat": "slug",
    "adapter": "hexo",
    "concurrency": 5,
    "baseUrl": "https://www.yuque.com/api/v2",
    "login": "binowen",
    "repo": "blog",
    "token": "2CA6XXXXXXXXXXXXXXXXXgRfcrLE0as",
    "onlyPublished": true,
    "onlyPublic": true,
    "lastGeneratePath": "lastGeneratePath.log",
    "imgCdn": {
      "enabled": false,
      "imageBed": "qiniu",
      "host": "",
      "bucket": "",
      "region": "",
      "prefixKey": ""
    }
  },
  "dependencies": {
    "hexo": "^5.0.0",
    "hexo-baidu-url-submit": "0.0.6",
    "hexo-deployer-ali-oss": "^1.0.0",
    "hexo-deployer-git": "^2.1.0",
    "hexo-generator-archive": "^1.0.0",
    "hexo-generator-baidu-sitemap": "^0.1.9",
    "hexo-generator-category": "^1.0.0",
    "hexo-generator-feed": "^3.0.0",
    "hexo-generator-index": "^2.0.0",
    "hexo-generator-search": "^2.4.1",
    "hexo-generator-sitemap": "^1.2.0",
    "hexo-generator-tag": "^1.0.0",
    "hexo-helper-live2d": "^3.1.1",
    "hexo-permalink-pinyin": "^1.1.0",
    "hexo-prism-plugin": "^2.3.0",
    "hexo-renderer-ejs": "^1.0.0",
    "hexo-renderer-marked": "^3.0.0",
    "hexo-renderer-stylus": "^2.0.0",
    "hexo-server": "^2.0.0",
    "hexo-wordcount": "^6.0.1",
    "live2d-widget-model-shizuku": "^1.0.5"
  },
  "devDependencies": {
    "yuque-hexo": "^1.6.5"
  }
}
参数名 含义 默认值
postPath 文档同步后生成的路径 source/_posts/yuque
cachePath 文档下载缓存文件 yuque.json
mdNameFormat 文件名命名方式 (title / slug) title
adapter 文档生成格式 (hexo/markdown) hexo
concurrency 下载文章并发数 5
baseUrl 语雀 API 地址 -
login 语雀 login (group), 也称为个人路径 -
repo 语雀仓库短名称,也称为语雀知识库路径 -
onlyPublished 只展示已经发布的文章 false
onlyPublic 只展示公开文章 false

本地调试

# 同步语雀的文档到本地
yuque-hexo sync

#  清理语雀文档
yuque-hexo clean

执行 yuque-hexo sync 就会拉取语雀的文章到本地 _post 路径下,所以记得先把自己的文章备份。
hexo g & hexo s 本地启动看看。尤其是看看封面之类的,如果不对,就自己看看从语雀拉取的文章格式对不对。
image.png

5. 自动化

上面已经实现了,将语雀知识库的文章拉取到 Hexo 的 _post 路径下,这时候自己 hexo deploy 也是可以的,当然,咱们要实现的是自动化,可不是要自己再拉下来一次,然后再手动 push
https://blog.csdn.net/qq_36535538/article/details/123749206

参考


文章作者: Owen Li
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Owen Li !
  目录