{"_id":"@binnnn/yuque-hexo","name":"@binnnn/yuque-hexo","dist-tags":{"latest":"1.9.1"},"versions":{"1.9.1":{"name":"@binnnn/yuque-hexo","version":"1.9.1","description":"A downloader for articles from yuque","main":"index.js","scripts":{"clean":"rimraf coverage","lint":"eslint .","test":"npm run lint -- --fix && npm run test-local","test-local":"egg-bin test","cov":"egg-bin cov","ci":"npm run clean && npm run lint && egg-bin cov"},"repository":{"type":"git","url":"git+https://github.com/x-cold/yuque-hexo.git"},"bin":{"yuque-hexo":"bin/yuque-hexo.js"},"author":{"name":"x-cold","email":"lxstart@outlook.com"},"license":"MIT","bugs":{"url":"https://github.com/x-cold/yuque-hexo/issues"},"homepage":"https://github.com/x-cold/yuque-hexo#readme","dependencies":{"@yuque/sdk":"^1.1.1","ali-oss":"6.17.0","chalk":"^2.4.1","common-bin":"^2.7.3","cos-nodejs-sdk-v5":"^2.11.6","debug":"^3.1.0","depd":"^2.0.0","ejs":"^3.1.6","filenamify":"^4.1.0","hexo-front-matter":"^0.2.3","html-entities":"^1.2.1","lodash":"^4.17.10","mkdirp":"^1.0.0","moment":"^2.22.2","prettier":"^2.0.4","qiniu":"^7.4.0","queue":"^4.5.0","rimraf":"^2.6.2","superagent":"^7.0.2","update-check":"^1.5.3","urllib":"^2.29.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"coffee":"^5.1.0","egg-bin":"^4.8.3","egg-ci":"^1.8.0","eslint":"^5.4.0","eslint-config-egg":"^7.1.0"},"gitHead":"8bce0635f68b3aef61f6d64b0067ec9588073a96","_id":"@binnnn/yuque-hexo@1.9.1","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-0HqTRgwpZTr2wGkVCZFV3NM4/Fd8n2pAKy5t09kQ4t2lMEndw0lkS1UlcCGFeLZqFChPrnSTMdh6217fUd1Ddw==","shasum":"698bdb7acb1451f4534b9fee2662350f5515c31e","tarball":"https://registry.npmjs.org/@binnnn/yuque-hexo/-/yuque-hexo-1.9.1.tgz","fileCount":34,"unpackedSize":53924,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDz5w/FRL4r/i52maILeJ0R2BEs0jdGpW1qJlOqr3qiBwIgBZwuZoSXdw9u/UXXpODNdWKD2sI7pdIvOtKoTwT7SI8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJihlLhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrwXxAAmwTvJZFj80yegJiQLbhnbP2m3RYDXI7FMgKGYtWB+peokdXk\r\nCbdSHsuW6Fve9pUhXzSwEBPqW/xGt9qgyxRo2K2wz89OYROAopotDkQhXxEU\r\n69Ye+5Hdd/lZwSmU7yEUedMVsE+eHExToO6s5yeb8Y3r+XkEKu2bATKFhelH\r\nN5u2C3s6xQoi1oHUbkYjCvWHjh/Dk/iCpRkNP8arCBe/VHTlkqYdmh+epySw\r\nbTHHQsqf3a7jlDqKmvGyJxT5GO6LlVRa7a5RcWQLvYhrwLCtKOIYRWrBh6Qw\r\nGdliEfU6qHIYnubKgbP3tmQE+OxjJJemmtu4o2i6eJCbnHYv03RAj5odq8YU\r\nvBRBY68stIB8Khc6aXRvTh999w/Gm+a9CNvOmdseSrVfzvGFtXBPBRQtiCXc\r\nHhk6qpW54ndalVnD7/olPmbpULR6xUsBnMrnYUcWelh85oBISqKWdr707FBq\r\nOVoefmQ4sLZ/KFxwJMfawUpYWJ9Jv6x8UwVLIxslgwK8FQjofzh3ZB/ZFb5y\r\ngq8ZuQZ5WWGftvRr+51BoHZ+F33RX2pH551yjBi0CbbKWj5lXR9l7XdmnHeo\r\ngbWxBJ4SKO2oZnTgNVT0qMZ7Gn88FDSg0sk7MZbUf8+FSISTIXYkyMzx1MXo\r\nAJle2f1/rZIzVvNN6RpeioNVAdCE8RbR/+0=\r\n=jN83\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wenbin_im","email":"wenbin.im@gmail.com"},"directories":{},"maintainers":[{"name":"wenbin_im","email":"wenbin.im@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/yuque-hexo_1.9.1_1652970209376_0.15447925940628982"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-19T14:23:29.303Z","1.9.1":"2022-05-19T14:23:29.542Z","modified":"2022-05-19T14:23:29.681Z"},"maintainers":[{"name":"wenbin_im","email":"wenbin.im@gmail.com"}],"description":"A downloader for articles from yuque","homepage":"https://github.com/x-cold/yuque-hexo#readme","repository":{"type":"git","url":"git+https://github.com/x-cold/yuque-hexo.git"},"author":{"name":"x-cold","email":"lxstart@outlook.com"},"bugs":{"url":"https://github.com/x-cold/yuque-hexo/issues"},"license":"MIT","readme":"# yuque-hexo\n\n[![NPM version][npm-image]][npm-url]\n[![build status][gitflow-image]][gitflow-url]\n[![Test coverage][codecov-image]][codecov-url]\n[![David deps][david-image]][david-url]\n[![npm download][download-image]][download-url]\n\n[npm-image]: https://img.shields.io/npm/v/yuque-hexo.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/yuque-hexo\n[gitflow-image]: https://github.com/x-cold/yuque-hexo/actions/workflows/nodejs.yml/badge.svg?branch=master\n[gitflow-url]: https://github.com/x-cold/yuque-hexo/actions/workflows/nodejs.yml\n[codecov-image]: https://codecov.io/gh/x-cold/yuque-hexo/branch/master/graph/badge.svg\n[codecov-url]: https://codecov.io/gh/x-cold/yuque-hexo\n[david-image]: https://img.shields.io/david/x-cold/yuque-hexo.svg?style=flat-square\n[david-url]: https://david-dm.org/x-cold/yuque-hexo\n[download-image]: https://badgen.net/npm/dt/yuque-hexo\n[download-url]: https://npmjs.org/package/yuque-hexo\n\nA downloader for articles from yuque（语雀知识库同步工具）\n\n# Usage\n\n## Premise\n\n> 建议使用 Node.js >= 12 \n\n事先拥有一个 [hexo](https://github.com/hexojs/hexo) 项目，并在 `package.json` 中配置相关信息，可参考 [例子](#Example)。\n\n## Config\n\n### 配置 YUQUE_TOKEN\n\n出于对知识库安全性的调整，使用第三方 API 访问知识库，需要传入环境变量 YUQUE_TOKEN，在语雀上点击 个人头像 -> 设置 -> Token 即可获取。传入 YUQUE_TOKEN 到 yuque-hexo 的进程有两种方式：\n\n- 设置全局的环境变量 YUQUE_TOKEN\n- 命令执行时传入环境变量\n  - mac / linux: `YUQUE_TOKEN=xxx yuque-hexo sync`\n  - windows: `set YUQUE_TOKEN=xxx && yuque-hexo sync`\n\n### 配置 图床TOKEN(可选)\n语雀的url存在防盗链的问题，直接部署可能导致图片无法加载。\n如果需要语雀URL上传到图床中并替换原链接，就需要配置上传密钥。\n\n访问图床的密钥管理获取密钥，然后传入密钥到yuque-hexo\n- 腾讯云[API密钥管理](https://console.cloud.tencent.com/cam/capi)\n- 阿里云[API密钥管理](https://ram.console.aliyun.com/manage/ak)\n- 七牛云[API密钥管理](https://portal.qiniu.com/user/key)\n\n- 在设置YUQUE_TOKEN的基础上配置SECRET_ID和SECRET_KEY\n- 命令执行时传入环境变量\n  - mac / linux: `YUQUE_TOKEN=xxx SECRET_ID=xxx SECRET_KEY=xxx yuque-hexo sync`\n  - windows: `set YUQUE_TOKEN=xxx SECRET_ID=xxx SECRET_KEY=xxx && yuque-hexo sync`\n\n\n### 配置知识库\n\n> package.json\n\n```json\n{\n  \"name\": \"your hexo project\",\n  \"yuqueConfig\": {\n    \"postPath\": \"source/_posts/yuque\",\n    \"cachePath\": \"yuque.json\",\n    \"mdNameFormat\": \"title\",\n    \"adapter\": \"hexo\",\n    \"concurrency\": 5,\n    \"baseUrl\": \"https://www.yuque.com/api/v2\",\n    \"login\": \"yinzhi\",\n    \"repo\": \"blog\",\n    \"onlyPublished\": false,\n    \"onlyPublic\": false,\n    \"lastGeneratePath\": \"lastGeneratePath.log\",\n    \"imgCdn\": {\n      \"enabled\": false,\n      \"imageBed\": \"qiniu\",\n      \"host\": \"\",\n      \"bucket\": \"\",\n      \"region\": \"\",\n      \"prefixKey\": \"\"\n    }\n  }\n}\n```\n\n| 参数名        | 含义                                 | 默认值               |\n| ------------- | ------------------------------------ | -------------------- |\n| postPath      | 文档同步后生成的路径                 | source/\\_posts/yuque |\n| cachePath     | 文档下载缓存文件                     | yuque.json           |\n| lastGeneratePath | 上一次同步结束的时间戳的文件             |                       |\n| mdNameFormat  | 文件名命名方式 (title / slug)        | title                |\n| adapter       | 文档生成格式 (hexo/markdown)         | hexo                 |\n| concurrency   | 下载文章并发数                       | 5                    |\n| baseUrl       | 语雀 API 地址                        | -                    |\n| login         | 语雀 login (group), 也称为个人路径   | -                    |\n| repo          | 语雀仓库短名称，也称为语雀知识库路径 | -                    |\n| onlyPublished | 只展示已经发布的文章                 | false                |\n| onlyPublic    | 只展示公开文章                       | false                |\n| imgCdn        | 语雀图片转CDN配置                    |                |\n> slug 是语雀的永久链接名，一般是几个随机字母。\n\nimgCdn 语雀图片转图床配置说明\n\n注意：开启后会将匹配到的所有的图片都上传到图床\n\n| 参数名        | 含义                                 | 默认值               |\n| ------------- | ------------------------------------ | -------------------- |\n| enabled       | 是否开启                           | false |\n| imageBed      | 选择将图片上传的图床，目前支持腾讯云(cos)、阿里云(oss)和七牛云(qiniu)，默认使用七牛云                           | 'qiniu' |\n| host          | 使用七牛云图床时，需要指定CDN域名前缀\n| bucket        | 图床的bucket名称                     | -          |\n| region        | 图床的的region               |  -                     |\n| prefixKey     | 文件前缀                                | -                |\n\n> host 说明\n>\n> 由于七牛云默认使用CND进行图片外链访问（默认提供30天的临时域名或者添加自定义CDN域名），所以需要指定访问的域名前缀\n> 例如：'host': `http://image.1874.cool`，域名后面不需要加斜杠\n\n> bucket和region说明\n> \n> [获取腾讯云的bucket和region](https://console.cloud.tencent.com/cos/bucket)，示例：{ bucket: \"blog\", region: \"ap-guangzhou\" }\n> \n> [获取阿里云的bucket和region](https://oss.console.aliyun.com/bucket)，示例：{ bucket: \"blog\", region: \"oss-cn-shenzhen\" }\n> \n> [获取七牛云的bucket(空间)和region(机房)](https://portal.qiniu.com/kodo/overview)，示例：{ bucket: \"blog\", region: \"Zone_z2\" }\n> \n> 七牛云机房取值: 华东(Zone_z0)华北(Zone_z0)华南(Zone_z0)北美(Zone_z0)\n\n> prefixKey 说明\n>\n> 如果需要将图片上传到bucket的根目录，那么prefixKey不用配置。\n>\n> 如果想上传到指定目录blog/image下，则需要配置prefixKey为\"prefixKey\": \"blog/image\"。\n>\n> 目录名前后都不需要加斜杠\n\n\n## Install\n\n```bash\nnpm i -g yuque-hexo\n# or\nnpm i --save-dev yuque-hexo\n```\n\n## Sync\n\n```\nyuque-hexo sync\n```\n\n## Clean\n\n```\nyuque-hexo clean\n```\n\n## Npm Scripts\n\n```json\n{\n  \"sync\": \"yuque-hexo sync\",\n  \"clean:yuque\": \"yuque-hexo clean\"\n}\n```\n\n## Debug\n\n```\nDEBUG=yuque-hexo.* yuque-hexo sync\n```\n\n## Best practice\n- [语雀云端写作Hexo+Github Actions+COS持续集成](https://www.yuque.com/1874w/1874.cool/roeayv)\n- [Hexo 博客终极玩法：云端写作，自动部署](https://www.yuque.com/u46795/blog/dlloc7)\n- [Hexo：语雀云端写作 Github Actions 持续集成](https://www.zhwei.cn/hexo-github-actions-yuque/)\n\n> 另外 x-cold 本人提供了一个触发 Travis CI 构建的 HTTP API 接口，详情请查看[文档](https://github.com/x-cold/aliyun-function/tree/master/travis_ci) (请勿恶意使用)\n\n# Notice\n\n- 语雀同步过来的文章会生成两部分文件；\n\n  - yuque.json: 从语雀 API 拉取的数据\n  - source/\\_posts/yuque/\\*.md: 生成的 md 文件\n\n- 支持配置 front-matter, 语雀编辑器编写示例如下:\n\n  - 语雀编辑器示例，可参考[原文](https://www.yuque.com/u46795/blog/dlloc7)\n\n  ```markdown\n  tags: [hexo, node]\n  categories: [fe]\n  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\n\n  ---\n\n  some description\n\n  <!-- more -->\n\n  more detail\n  ```\n\n- - 如果遇到上传到语雀的图片无法加载的问题， 可以考虑开启imgCdn配置或者参考这个处理方式[yuque-hexo插件语雀图片防盗链限制的解决方案](https://1874.cool/osar7h/)或者参考这个处理方式 [#41](https://github.com/x-cold/yuque-hexo/issues/41)\n\n# Example\n\n- yuque to hexo: [x-cold/blog](https://github.com/x-cold/blog/blob/master/package.json)\n- yuque to github repo: [txd-team/monthly](https://github.com/txd-team/monthly/blob/master/package.json)\n\n# Changelog\n\n### v1.9.1\n- 修复不使用图床配置时报错的问题\n\n### v1.9.0\n- 🔥 支持腾讯云/阿里云/七牛云图床链接替换语雀链接\n\n### v1.8.0\n- 🔥 支持自定义的适配器 adapter，具体查看 [配置示例](https://github.com/x-cold/yuque-hexo/tree/master/test/custom-adapter-project)\n\n### v1.7.0\n\n- 🔥 支持配置 lastGeneratePath，同步文章后会记录一个时间戳，下一次同步文档时不再清空全部文档，只同步修改时间大于这个时间戳的文档\n- 🔥 支持语雀提示区块语法\n- 🐸 修复 front-matter 中 “:” 等特殊字符会导致文章无法正常生成\n- 🐸 由于 [prettier 不再支持 Node 8](https://github.com/prettier/eslint-config-prettier/issues/140)，markdown 格式化仅在 node 版本 >= 10 生效\n- 🐸 现在必须配置 YUQUE_TOKEN 工具才能正常工作\n\n### v1.6.5\n\n- 🔥 支持过滤 public 文章\n- 🔥 生成的 markdown 自动格式化\n- 🔥 移除去除语雀的锚点\n\n### v1.6.4\n\n- 🐸 修复多行 <br /> 的[问题](https://github.com/x-cold/yuque-hexo/pull/59)\n\n### v1.6.3\n\n- 🔥 支持嵌套的 categories 解析 #56\n- 🐸 使用 [filenamify](https://github.com/sindresorhus/filenamify) 修复因为特殊字符的标题，生成非法的文件名导致的程序错误\n\n### v1.6.2\n\n- 🔥 使用 slug 自定义 [urlname](https://github.com/x-cold/yuque-hexo/pull/37)\n\n### v1.6.1\n\n- 🐸 修复 tags 格式化[问题](https://github.com/x-cold/yuque-hexo/issues/31)\n\n### v1.6.0\n\n- 🐸 修复 descrption 导致的 front-matter 解析错误[问题](https://github.com/x-cold/yuque-hexo/issues/27#issuecomment-490138318)\n- 🔥 支持私有仓库同步\n- 🔥 使用语雀官方的 SDK，支持 YUQUE_TOKEN，可以解除 API 调用次数限制\n\n### v1.5.0\n\n- 支持自定义 front-matter\n\n### v1.4.3\n\n- 支持过滤未发布文章 `onlyPublished`\n\n### v1.4.2\n\n- 支持纯 markdown 导出\n- 支持请求并发数量参数 `concurrency`\n\n### v1.4.0\n\n- 升级项目架构，增强扩展性，支持自定义 adpter\n\n### v1.3.1\n\n- 修复 front-matter 处理格式问题\n\n### v1.2.1\n\n- 修复 windows 环境下命令行报错的问题\n- 支持自定义文件夹和博客文件命名\n\n### v1.1.1\n\n- 支持 hexo-front-matter，可以在文章中编辑 tags / date 等属性\n","readmeFilename":"README.md"}