{"repo":"LetTTGACO/elog","free":true,"listed":false,"github":"https://github.com/LetTTGACO/elog","clone":"git clone https://github.com/LetTTGACO/elog.git","description":"Markdown 批量导出工具、开放式跨平台博客解决方案，随意组合写作平台(语雀/Notion/FlowUs/飞书/我来Wolai)和博客平台(Hexo/Vitepress/Halo/Confluence/WordPress等)","language":"TypeScript","stars":1878,"topics":["blog","confluence","docusaurus","docz","feishu","flowus","hexo","hugo","markdown","notion","vitepress","wordpress","yuque"],"license":"MIT","category":"dev_tool","readme_excerpt":"<div align=\"center\">\n  <h1>Elog</h1>\n  <p>开放式跨端博客解决方案，随意组合写作平台（语雀/飞书/Notion/FlowUs）和博客平台（Hexo/Vitepress/Confluence/WordPress）等</p>\n  <a href=\"http://makeapullrequest.com\">\n    <img src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\" alt=\"PRs Welcome\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/@elog/cli\">\n    <img src=\"https://img.shields.io/node/v/@elog/cli.svg?style=flat-square\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/@elog/cli\">\n    <img src=\"https://img.shields.io/npm/v/@elog/cli.svg?style=flat-square\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/@elog/cli\">\n    <img src=\"https://img.shields.io/npm/l/@elog/cli.svg?style=flat-square\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/@elog/cli\">\n    <img src=\"https://img.shields.io/npm/dt/@elog/cli.svg?style=flat-square\">\n  </a>\n  <a href=\"https://github.com/LetTTGACO/elog\">\n    <img src=\"https://img.shields.io/github/stars/LetTTGACO/elog\" alt=\"GitHub stars\">\n  </a>\n  <a href=\"https://github.com/LetTTGACO/elog\">\n    <img src=\"https://img.shields.io/github/forks/LetTTGACO/elog\" alt=\"GitHub forks\">\n  </a>\n  <a href=\"https://github.com/LetTTGACO/elog\">\n    <img src=\"https://img.shields.io/github/contributors/LetTTGACO/elog\" alt=\"GitHub contributors\">\n  </a>\n  <a href=\"https://github.com/LetTTGACO/elog\">\n    <img src=\"https://img.shields.io/github/commit-activity/w/LetTTGACO/elog\" alt=\"GitHub commit activity\">\n  </a>\n  <a href=\"https://github.com/LetTTGACO/elog\">\n    <img src=\"https://img.shields.io/github/issues-closed/LetTTGACO/elog\" alt=\"GitHub closed issues\">\n  </a>\n</div>\n\n## 前言\n\n在遇到Elog之前，你的博客可能是：\n\n- 本地编辑器书写 + Hexo/Hugo/Vitepress部署\n- 语雀记录\n- Notion记录和发布\n- WordPress在线书写和发布\n- GHost在线书写和发布\n- Github记录\n- 掘金/知乎等在线平台记录\n\n可以发现，大部分博客平台要么自己提供在线编辑器，要么就让用户本地书写再进行进行部署。\n可惜目前好用的编辑器大都都不是博客平台自己提供的，而是一些第三方编辑器，代表产品：\n\n- Notion：出色的数据库设计，灵活度非常高\n- FlowUs：仿Notion的国内文档产品，用了下还不错\n- 飞书云文档：也是一个很出色的在线协同文档工具，主打工作/团队场景，也有个人版\n- 语雀：阿里出品，笔者觉得很不错的一款在线编辑器，涵盖日常个人、工作所需要的各种场景，够用\n- Typora：一款出色的本地编辑器，支持实时预览和流程书写，可惜新版本收费了\n\n而博客平台一般分为两类，一种是轻量化的，只负责渲染文档不提供编辑器，代表产品：\n\n- Hexo\n- Vitepress\n- HuGo\n\n一种是内容管理系统软件，相对上面这些比较重，初期涉及到数据库和手动部署，拥有自己的编辑器，代表产品：\n\n- WordPress\n- GHost\n\n## Elog\n\n如果我既想用最熟悉、最舒适的编辑器，又想用主流的博客平台，怎么办呢？\n\nElog就是为了解决这个问题而诞生的。\n\nElog将这些平台揉合在一起，你可以随意组合写作平台和博客平台，目前支持：\n\n**写作平台**\n\n- [X] Notion\n- [X] 语雀\n- [X] FlowUs\n- [X] 飞书云文档\n- [X] 我来\n\n**博客平台**\n\n- [X] Hexo\n- [X] Vitepress\n- [X] HuGo\n- [X] Docusaurus\n- [X] Docz\n- [X] Halo\n- [X] Confluence\n- [X] WordPress\n\n> 博客平台目前支持所有类似 Hexo 的框架：通过向指定目录存放 markdown 文档来进行渲染的方式\n\n## 🌅 图床功能\n\n和很多在线平台一样，Notion和语雀也同样存在图片防盗链的问题，直接将写作平台的图片链接放到其他站点的话，会加载不出来。\n为了解决这个问题，Elog支持了在生成MD文件之前，将扫描到的图片上传到图床上，并对文档中的图片链接进行替换。\n当前支持的图床有：\n\n- [X] 本地\n- [X] 腾讯云COS\n- [X] 阿里云OSS\n- [X] Github图床\n- [X] 七牛云\n- [X] 又拍云\n\n> 你也可以通过自定义图床插件的方式上传文档图片到任意图床\n> \n> 社区图床插件\n> - [Cloudflare R2](https://github.com/LetTTGACO/elog/tree/master/plugins/plugin-img-r2#readme)\n> - [Backblaze B2](https://github.com/LetTTGACO/elog/tree/master/plugins/plugin-img-b2#readme)\n\n## ✨ 特性\n\n- 📝 写作平台支持语雀/Notion/FlowUs/飞书云文档\n- 🚀 博客平台支持所有通过渲染本地 Markdown 文档生成静态站点的博客平台\n- 🚀 博客平台支持Halo/Confluence/WordPress站点\n- 🌅 图床平台支持存放到本地或上传到阿里云/腾讯云/Github/七牛云/又拍云\n- 📦 支持生成Front Matter Markdown\n- ⚙️ 支持自定义文档处理适配器\n- 🛡 支持自定义图床插件\n\n更多详情见 [ELog 开发计划](https://1874.notion.site/Elog-91dd2037c9c847e6bc90b712b124189c)\n\n## 🔨 快速上手\n\n[Elog 使用文档](https://elog.1874.cool/)\n\n备用文档地址1：[https://1874.notion.site](https://1874.notion.site/0aa9217e5bcc46768bdae424fddcbc28)\n\n备用文档地址2：[https://wordpress.1874.cool](https://wordpress.1874.cool)\n\n## 📦 开箱即用\n\n- [Notion + Elog + Hexo + GitHub Actions + Vercel 博客解决方案](https://github.com/elog-x/notion-hexo)  👉  [Notion-Hexo](https://notion-hexo.vercel.app/)\n- [语雀 + Elog + Hexo + GitHub Actions + Vercel 博客解决方案](https://github.com/elog-x/yuque-hexo)  👉  [Yuque-Hexo](https://yuque-hexo.vercel.app/)\n- [语雀 + Elog + VitePress + GitHub Actions + Vercel 文档站点解决方案](https://github.com/elog-x/yuque-vitepress)  👉  [Yuque-Vitepress](https://yuque-vitepress.vercel.app/)\n- [FlowUs + Elog + Halo + GitHub Actions 博客解决方案](https://github.com/elog-x/flowus-halo)  👉  [FlowUs-Halo](https://halo.1874.cool/archives/flowus-halo)\n- [Notion + Elog + Halo + GitHub Actions 博客解决方案](https://github.com/elog-x/notion-halo)  👉  [Notion-Halo](https://halo.1874.cool/archives/notion-halo)\n\n## 🔗 最佳实践\n\n- [elog-docs](https://github.com/LetTTGACO/elog-docs) 多写作平台云端写作 + vitepress + GitHub Action + GitHub Pages 持续集成  👉  [Elog Docs](https://elog.1874.cool/)\n- [jasonma0012.github.io](https://github.com/JasonMa0012/jasonma0012.github.io) 语雀 + hexo + GitHub Action 抓取文章 + Vercel 部署  👉  [Elysium](https://elysium.jason-ma.com/)\n- [Knowledge-Garden](https://github.com/shenweiyan/Knowledge-Garden) 语雀 + mkdocs + GitHub Action 持续集成  👉  [生信知识花园](https://doc.weiyan.cc/)\n- [blog-butterfly](https://github.com/ccknbc-actions/blog-butterfly) 语雀 + hexo + GitHub Action 抓取文章 + Webify/GitHub/Vercel/GitLab/Gitee/Netlify/BitBucket/CloudFlare 部署  👉  [CC的部落格](https://blog.ccknbc.cc/about/)\n- [hexo.bmqy.net](https://github.com/bmqy/hexo.bmqy.net) notion + hexo + GitHub Action 持续集成  👉  [北门清燕](https://www.bmqy.net/)\n- [www](https://github.com/ql-isaac/www) 语雀 + hexo + GitHub Action 抓取文章 + Webify（境内）/Vercel（境外）部署  👉  [IMQL.LIFE](https://www.imql.life/categories/%E6%88%91%E7%9A%84%E5%8D%9A%E5%AE%A2/)\n- [Notion-Action-MD](https://github.com/cyolc932/elog) Notion + Elog 文档备份 + GitHub Action 持续集成  👉  [DC&#39;s Blog](https://aaqq.cc/article/24c2897b-78f3-4f6a-b8e6-292ea60edf7c)\n- [happyzhangyyds](https://github.com/happyzhangyyds/elog) Notion + Elog 文档备份 + GitHub Action 持续集成  👉  [MatrixCore&#39;s Blog](https://matrixcore.top/article/elog)\n- Notion + hexo + GitHub Action + cloudflare 持续集成  👉  [Derick&#39;s Blog](https://blog.ithuo.net/post/2023-11-07%2FNotion%E5%8D%9A%E5%AE%A2%E6%8A%98%E8%85%BE%E6%8C%87%E5%8D%97)\n- [语雀写作，Kubernetes部署——Elog+Hexo博客持续集成](https://juejin.cn/post/7304540675668181003)\n- [next-yuque-elog](https://github.com/lidelong-0201/next-yuque-elog) yuque写作 + elog同步 + NextJs渲染 + vercel部署  👉  [delong的博客](https://lidelong.xyz/)\n- [Ymri's Haven](https://github.com/Ymriri/Haven) 语雀 + VitePress + GitHub Actions + Vercel部署  👉  [Ymri's Haven](https://blog.ym94.cn/)\n- [Xlenco&#39;s Blog](https://github.com/xlenco/blog) hexo+elog+语雀，部署在vercel和azure web  👉  [Xlenco&#39;s Blog](https://blog.xlenco.top/p/1420.html)\n- FlowUs+Hexo+Github Actions+Vercel 博客解决方案  👉  [白](https://www.imbai.cn/posts/32113.html)\n- [OfferNow](https://github.com/white0dew/OfferNow) 语雀 + Elog + NextJs渲染   👉  [OffewNow](https://offernow.cn/)\n- [yuque_halo](https://github.com/Flionay/yuque_halo) 语雀 + Halo + GitHub Actions 👉  [AngYi](https://www.angyi.online/archives/rw9pet6kloggaehv)\n\n## 👬 社区生态\n可访问 [awesome-elog仓库](https://github.com/elog-x/awesome-elog) 查看相关资源，如果你也有优秀的实践或工具，欢迎提交PR到 [awesome-elog](https://github.com/elog-x/awesome-elog)\n## 🌍 交流与反馈\n如果遇到问题，请 [提交 issue](https://github.com/LetTTGACO/elog/issues/new/choose) 或在 [discussions 中留言](https://github.com/LetTTGACO/elog/discussions/categories/q-a)\n\n## 🥫支持\n- 我有两只猫，假如觉得 Elog 让你生活更美好，可以给猫 [喂罐头 🥫](https://1874.cool/cats)。\n- 如果你喜欢 Elog，可以在 Github Star，更欢迎推荐给你志同道合的朋友使用。\n\n## 🌹 感谢\n\n感谢以下用户贡献了很多bugs和建议\n\n- [CC康纳百川](https://github.com/CCKNBC)\n- [Steven Shum](https://github.com/shenweiyan)\n- [北门清燕](https://github.com/bmqy)\n- [觉·白](https://github.com/vannvan)\n- [JasonMa](https://github.com/JasonMa0012)\n- [happyzhangyyds](https://github.com/happyzhangyyds)\n- [蜗牛](https://github.com/Hiwoniu)\n- [Derick](https://github.com/DerickIT)\n- [BreakALegCml](https://github.com/BreakALegCml)\n- [Ymriri](https://github.com/Ymriri)\n- [ruibaby](https://github.com/ruibaby)\n- [白](https://github.com/3401797899)\n\n感谢下列项目提供了灵感\n\n- [yuque-tools](https://github.com/vannvan/yuque-tools)\n- [yuque-hexo](https://github.com/x-cold/yuque-hexo)\n\n## 🔗 友情链接\n- [youdaonote-pull](https://github.com/DeppWang/youdaonote-pull) 有道云笔记导出工具\n- [NotionNext](https://github.com/tangly1024/NotionNext) 相比 Elog，支持更多 Notion 富文本格式。使用 NextJS + Notion API 实现的，支持多种部署方案的静态博客，无需服务器、零门槛搭建网站，为Notion和所有创作者设计\n","default_branch":"master","files":240,"tree":[".changeset/README.md",".changeset/config.json",".changeset/empty-words-act.md",".changeset/plenty-hats-rule.md",".changeset/pre.json",".changeset/shaggy-rocks-walk.md",".eslintignore",".eslintrc.js",".github/ISSUE_TEMPLATE/bug_report.yml",".github/ISSUE_TEMPLATE/config.yml",".github/ISSUE_TEMPLATE/feature_request.yml",".gitignore",".husky/commit-msg",".husky/pre-commit",".npmignore",".prettierrc.js",".sync.sh","LICENSE","README.md","commitlint.config.js","package.json","packages/cli/.npmignore","packages/cli/CHANGELOG.md","packages/cli/README.md","packages/cli/bin/elog.js","packages/cli/package.json","packages/cli/src/const/index.ts","packages/cli/src/index.ts","packages/cli/src/run.ts","packages/cli/src/scripts/clean.ts","packages/cli/src/scripts/init.ts","packages/cli/src/scripts/sync.ts","packages/cli/src/scripts/upgrade.ts","packages/cli/src/utils/clean.ts","packages/cli/src/utils/config.ts","packages/cli/src/utils/gen-config-file.ts","packages/cli/src/utils/gen-env-file.ts","packages/cli/src/utils/run.ts","packages/cli/src/utils/utils.ts","packages/cli/tsconfig.json","packages/cli/tsup.config.ts","packages/core/.npmignore","packages/core/CHANGELOG.md","packages/core/README.md","packages/core/package.json","packages/core/src/client.ts","packages/core/src/const.ts","packages/core/src/index.ts","packages/core/src/types.ts","packages/core/tsconfig.json","packages/core/tsup.config.ts","packages/deploy/.npmignore","packages/deploy/CHANGELOG.md","packages/deploy/README.md","packages/deploy/package.json","packages/deploy/src/adapter/index.ts","packages/deploy/src/client.ts","packages/deploy/src/const.ts","packages/deploy/src/index.ts","packages/deploy/src/platform/confluence.ts","packages/deploy/src/platform/halo.ts","packages/deploy/src/platform/local.ts","packages/deploy/src/platform/wordpress.ts","packages/deploy/src/types.ts","packages/deploy/src/utils/common.ts","packages/deploy/tsconfig.json","packages/deploy/tsup.config.ts","packages/plugin-adapter/.npmignore","packages/plugin-adapter/CHANGELOG.md","packages/plugin-adapter/README.md","packages/plugin-adapter/package.json","packages/plugin-adapter/src/html/html.ts","packages/plugin-adapter/src/index.ts","packages/plugin-adapter/src/markdown/markdown.ts","packages/plugin-adapter/src/markdown/matter-markdown.ts","packages/plugin-adapter/src/wiki/render.ts","packages/plugin-adapter/src/wiki/wiki.ts","packages/plugin-adapter/tsconfig.json","packages/plugin-adapter/tsup.config.ts","packages/plugin-image/.npmignore","packages/plugin-image/CHANGELOG.md","packages/plugin-image/README.md","packages/plugin-image/package.json","packages/plugin-image/src/core.ts","packages/plugin-image/src/index.ts","packages/plugin-image/src/platform/client.ts","packages/plugin-image/src/platform/const.ts","packages/plugin-image/src/platform/cos.ts","packages/plugin-image/src/platform/github.ts","packages/plugin-image/src/platform/index.ts","packages/plugin-image/src/platform/local.ts","packages/plugin-image/src/platform/oss.ts","packages/plugin-image/src/platform/qiniu.ts","packages/plugin-image/src/platform/types.ts","packages/plugin-image/src/platform/upyun.ts","packages/plugin-image/src/platform/utils.ts","packages/plugin-image/src/types.ts","packages/plugin-image/tsconfig.json","packages/plugin-image/tsup.config.ts","packages/sdk-confluence/.npmignore","packages/sdk-confluence/CHANGELOG.md","packages/sdk-confluence/README.md","packages/sdk-confluence/package.json","packages/sdk-confluence/src/client.ts","packages/sdk-confluence/src/index.ts","packages/sdk-confluence/src/types.ts","packages/sdk-confluence/tsconfig.json","packages/sdk-confluence/tsup.config.ts","packages/sdk-feishu/.npmignore","packages/sdk-feishu/CHANGELOG.md","packages/sdk-feishu/README.md","packages/sdk-feishu/package.json","packages/sdk-feishu/src/client.ts","packages/sdk-feishu/src/core.ts","packages/sdk-feishu/src/index.ts","packages/sdk-feishu/src/types.ts","packages/sdk-feishu/src/utils.ts","packages/sdk-feishu/tsconfig.json","packages/sdk-feishu/tsup.config.ts","packages/sdk-flowus/.npmignore","packages/sdk-flowus/CHANGELOG.md","packages/sdk-flowus/README.md","packages/sdk-flowus/package.json","packages/sdk-flowus/src/client.ts","packages/sdk-flowus/src/const.ts","packages/sdk-flowus/src/core.ts","packages/sdk-flowus/src/index.ts","packages/sdk-flowus/src/types.ts","packages/sdk-flowus/src/utils.ts","packages/sdk-flowus/tsconfig.json","packages/sdk-flowus/tsup.config.ts","packages/sdk-halo/.npmignore","packages/sdk-halo/CHANGELOG.md","packages/sdk-halo/README.md","packages/sdk-halo/package.json","packages/sdk-halo/src/client.ts","packages/sdk-halo/src/index.ts","packages/sdk-halo/src/types.ts","packages/sdk-halo/tsconfig.json","packages/sdk-halo/tsup.config.ts","packages/sdk-notion/.npmignore","packages/sdk-notion/CHANGELOG.md","packages/sdk-notion/README.md","packages/sdk-notion/package.json","packages/sdk-notion/src/client.ts","packages/sdk-notion/src/const.ts","packages/sdk-notion/src/core.ts","packages/sdk-notion/src/index.ts","packages/sdk-notion/src/types.ts","packages/sdk-notion/src/utils.ts","packages/sdk-notion/tsconfig.json","packages/sdk-notion/tsup.config.ts","packages/sdk-outline/.npmignore","packages/sdk-outline/CHANGELOG.md","packages/sdk-outline/README.md","packages/sdk-outline/global.d.ts","packages/sdk-outline/package.json","packages/sdk-outline/src/client.ts","packages/sdk-outline/src/core.ts","packages/sdk-outline/src/index.ts","packages/sdk-outline/src/types.ts","packages/sdk-outline/src/utils.ts","packages/sdk-outline/tsconfig.json","packages/sdk-outline/tsup.config.ts","packages/sdk-wolai/.npmignore","packages/sdk-wolai/CHANGELOG.md","packages/sdk-wolai/README.md","packages/sdk-wolai/package.json","packages/sdk-wolai/src/client.ts","packages/sdk-wolai/src/const.ts","packages/sdk-wolai/src/core.ts","packages/sdk-wolai/src/index.ts","packages/sdk-wolai/src/types.ts","packages/sdk-wolai/src/utils.ts","packages/sdk-wolai/tsconfig.json","packages/sdk-wolai/tsup.config.ts","packages/sdk-wordpress/.npmignore","packages/sdk-wordpress/CHANGELOG.md","packages/sdk-wordpress/README.md","packages/sdk-wordpress/package.json","packages/sdk-wordpress/src/client.ts","packages/sdk-wordpress/src/index.ts","packages/sdk-wordpress/src/types.ts","packages/sdk-wordpress/tsconfig.json","packages/sdk-wordpress/tsup.config.ts","packages/sdk-yuque/.npmignore","packages/sdk-yuque/CHANGELOG.md","packages/sdk-yuque/README.md","packages/sdk-yuque/global.d.ts","packages/sdk-yuque/package.json","packages/sdk-yuque/src/const.ts","packages/sdk-yuque/src/index.ts","packages/sdk-yuque/src/pwd/client.ts","packages/sdk-yuque/src/pwd/core.ts","packages/sdk-yuque/src/pwd/types.ts","packages/sdk-yuque/src/token/client.ts","packages/sdk-yuque/src/token/core.ts","packages/sdk-yuque/src/token/format-ext.ts","packages/sdk-yuque/src/token/types.ts","packages/sdk-yuque/src/types.ts","packages/sdk-yuque/src/utils.ts","packages/sdk-yuque/tsconfig.json","packages/sdk-yuque/tsup.config.ts","packages/shared/.npmignore","packages/shared/CHANGELOG.md","packages/shared/README.md","packages/shared/package.json","packages/shared/src/const.ts","packages/shared/src/index.ts","packages/shared/src/out.ts","packages/shared/src/request.ts","packages/shared/src/requestAxios.ts","packages/shared/src/test.md","packages/shared/src/types.ts","packages/shared/src/utils/image.ts","packages/shared/src/utils/package.ts","packages/shared/src/utils/qetag.js","packages/shared/src/utils/time.ts","packages/shared/tsconfig.json","packages/shared/tsup.config.ts","packages/types/.npmignore","packages/types/CHANGELOG.md","packages/types/README.md","packages/types/package.json","packages/types/src/doc.ts","packages/types/src/index.ts","packages/types/tsconfig.json","packages/types/tsup.config.ts","plugins/plugin-img-b2/.npmignore","plugins/plugin-img-b2/CHANGELOG.md","plugins/plugin-img-b2/README.md","plugins/plugin-img-b2/index.js","plugins/plugin-img-b2/package.json","plugins/plugin-img-r2/.npmignore","plugins/plugin-img-r2/CHANGELOG.md","plugins/plugin-img-r2/README.md","plugins/plugin-img-r2/index.js","plugins/plugin-img-r2/package.json","pnpm-workspace.yaml","tsconfig.root.json"],"storefront":"/r/LetTTGACO","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/LetTTGACO/elog/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}