Skip to content

同步语雀的文章到 Hexo博客,并支持语雀图片替换为自己的图床

License

Notifications You must be signed in to change notification settings

LetTTGACO/yuque-hexo-with-cdn

This branch is 33 commits ahead of, 37 commits behind x-cold/yuque-hexo:master.

Folders and files

NameName
Last commit message
Last commit date
Jul 17, 2022
Jul 17, 2022
Sep 4, 2021
Dec 23, 2020
Jan 28, 2022
Sep 4, 2021
Oct 11, 2022
Aug 29, 2018
Apr 17, 2019
Jan 18, 2022
Dec 20, 2020
Dec 23, 2020
Aug 26, 2018
Jul 17, 2022
Sep 4, 2019
Jul 17, 2022
Feb 1, 2019
Jul 17, 2022

Repository files navigation

yuque-hexo-with-cdn

NPM version build status Test coverage David deps npm download

A downloader for articles from yuque(语雀知识库同步工具) 本插件改造自yuque-hexo

Usage

Premise

建议使用 Node.js >= 12

事先拥有一个 hexo 项目,并在 package.json 中配置相关信息,可参考 例子

Config

配置 YUQUE_TOKEN

出于对知识库安全性的调整,使用第三方 API 访问知识库,需要传入环境变量 YUQUE_TOKEN,在语雀上点击 个人头像 -> 设置 -> Token 即可获取。传入 YUQUE_TOKEN 到 yuque-hexo 的进程有两种方式:

  • 设置全局的环境变量 YUQUE_TOKEN
  • 命令执行时传入环境变量
    • mac / linux: YUQUE_TOKEN=xxx yuque-hexo sync
    • windows: set YUQUE_TOKEN=xxx && yuque-hexo sync

配置 图床TOKEN(可选)

语雀的url存在防盗链的问题,直接部署可能导致图片无法加载。 如果需要语雀URL上传到图床中并替换原链接,就需要配置上传密钥。

访问图床的密钥管理获取密钥,然后传入密钥到yuque-hexo

  • 腾讯云API密钥管理

  • 阿里云API密钥管理

  • 七牛云API密钥管理

  • 在设置YUQUE_TOKEN的基础上配置SECRET_ID和SECRET_KEY

  • 命令执行时传入环境变量

    • mac / linux: YUQUE_TOKEN=xxx SECRET_ID=xxx SECRET_KEY=xxx yuque-hexo sync
    • windows: set YUQUE_TOKEN=xxx SECRET_ID=xxx SECRET_KEY=xxx && yuque-hexo sync

配置知识库

package.json

{
  "name": "your hexo project",
  "yuqueConfig": {
    "postPath": "source/_posts/yuque",
    "cachePath": "yuque.json",
    "mdNameFormat": "title",
    "adapter": "hexo",
    "concurrency": 5,
    "baseUrl": "https://www.yuque.com/api/v2",
    "login": "yinzhi",
    "repo": "blog",
    "onlyPublished": false,
    "onlyPublic": false,
    "lastGeneratePath": "lastGeneratePath.log",
    "imgCdn": {
      "enabled": false,
      "imageBed": "qiniu",
      "host": "",
      "bucket": "",
      "region": "",
      "prefixKey": ""
    }
  }
}
参数名 含义 默认值
postPath 文档同步后生成的路径 source/_posts/yuque
cachePath 文档下载缓存文件 yuque.json
lastGeneratePath 上一次同步结束的时间戳的文件
mdNameFormat 文件名命名方式 (title / slug) title
adapter 文档生成格式 (hexo/markdown) hexo
concurrency 下载文章并发数 5
baseUrl 语雀 API 地址 -
login 语雀 login (group), 也称为个人路径 -
repo 语雀仓库短名称,也称为语雀知识库路径 -
onlyPublished 只展示已经发布的文章 false
onlyPublic 只展示公开文章 false
imgCdn 语雀图片转CDN配置
urlReplace 链接识别替换

slug 是语雀的永久链接名,一般是几个随机字母。

imgCdn 语雀图片转图床配置说明

注意:开启后会将匹配到的所有的图片都上传到图床

参数名 含义 默认值
enabled 是否开启 false
imageBed 选择将图片上传的图床,目前支持腾讯云(cos)、阿里云(oss)和七牛云(qiniu),默认使用七牛云 'qiniu'
host 使用七牛云图床时,需要指定CDN域名前缀
bucket 图床的bucket名称 -
region 图床的的region -
prefixKey 文件前缀 -

host 说明

由于七牛云默认使用CND进行图片外链访问(默认提供30天的临时域名或者添加自定义CDN域名),所以需要指定访问的域名前缀 例如:'host': http://image.1874.cool,域名后面不需要加斜杠

bucket和region说明

获取腾讯云的bucket和region,示例:{ bucket: "blog", region: "ap-guangzhou" }

获取阿里云的bucket和region,示例:{ bucket: "blog", region: "oss-cn-shenzhen" }

获取七牛云的bucket(空间)和region(机房),示例:{ bucket: "blog", region: "Zone_z2" }

七牛云机房取值: 华东(Zone_z0)华北(Zone_z0)华南(Zone_z0)北美(Zone_z0)

prefixKey 说明

如果需要将图片上传到bucket的根目录,那么prefixKey不用配置。

如果想上传到指定目录blog/image下,则需要配置prefixKey为"prefixKey": "blog/image"。

目录名前后都不需要加斜杠

urlReplace 链接替换说明

参数名 含义 默认值
enabled 是否开启 false
originalUrl 需要替换的链接 ''
replaceUrl 替换后的链接 ''

使用场景 说明 链接替换功能是针对于在语雀写作时插入之前文章的链接, 但是在部署到hexo博客后,在博客上点击访问时也会跳转到语雀

虽然无伤大雅,但还是提供了这个功能,让博客上跳转链接的文章依然跳博客的文章

Example:

originalUrl: 'https://www.yuque.com/1874w/1874.cool'

replaceUrl: 'https://1874.cool'

[语雀的文章](https://www.yuque.com/1874w/1874.cool/roeayv) => [博客的文章](https://1874.cool/roeayv)

Install

npm i -g yuque-hexo-with-cdn
# or
npm i --save-dev yuque-hexo-with-cdn

Sync

yuque-hexo sync

Clean

yuque-hexo clean

Npm Scripts

{
  "sync": "yuque-hexo sync",
  "clean:yuque": "yuque-hexo clean"
}

Debug

DEBUG=yuque-hexo.* yuque-hexo sync

Best practice

另外 x-cold 本人提供了一个触发 Travis CI 构建的 HTTP API 接口,详情请查看文档 (请勿恶意使用)

Notice

  • 语雀同步过来的文章会生成两部分文件;

    • yuque.json: 从语雀 API 拉取的数据
    • source/_posts/yuque/*.md: 生成的 md 文件
  • 支持配置 front-matter, 语雀编辑器编写示例如下:

    • 语雀编辑器示例,可参考原文
    tags: [hexo, node]
    categories: [fe]
    cover: https://cdn.nlark.com/yuque/0/2019/jpeg/155457/1546857679810-d82e3d46-e960-419c-a715-0a82c48a2fd6.jpeg#align=left&display=inline&height=225&name=image.jpeg&originHeight=225&originWidth=225&size=6267&width=225
    
    ---
    
    some description
    
    <!-- more -->
    
    more detail
  • 如果遇到上传到语雀的图片无法加载的问题,可以考虑开启imgCdn配置或者参考这个处理方式 yuque-hexo插件语雀图片防盗链限制的解决方案

Example

Changelog

v1.2.2

  • 新增链接替换功能

v1.2.1

  • 修复不使用图床配置时报错的问题

v1.2.0

  • 图片替换支持腾讯云图床、阿里云图床、七牛云图床

v1.1.2

  • 支持自动上传语雀图片到COS,并替换原链接

About

同步语雀的文章到 Hexo博客,并支持语雀图片替换为自己的图床

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%