如何将 GitHub 仓库导出为 Markdown(完整指南)
你在 GitHub 上 Star 了好几年项目。那些点赞仓库代表着无数小时的发现——你评估过的库、收藏的工具、启发你的项目。但如果 GitHub 挂了呢?账号被盗呢?或者你只是想把收藏接入自己的笔记系统?
导出为 Markdown 就是答案。它是一种开放格式,人类可读,兼容几乎所有笔记和知识管理工具。下面是具体做法。
为什么是 Markdown?
导出格式很多——JSON、CSV、SQLite 数据库。但 Markdown 有独特优势:
- 人类可读。 在任何文本编辑器中打开就能看懂内容。
- 高度便携。 Obsidian、Notion、Logseq、Joplin、语雀——所有知识管理工具都支持 Markdown。
- 版本控制友好。 Markdown 文件在 git 中 diff 清晰,方便跟踪收藏随时间的变化。
- 面向未来。 纯文本格式。20 年后依然可读。
方法一:GitHub API(手动,完全可控)
如果你不排斥命令行,GitHub API 给你最大的自由度。
第一步: 在github.com/settings/tokens 生成一个 GitHub 个人访问令牌。只需要 public_repo 权限(无需写入权限)。
第二步: 用 curl 或脚本拉取你的 Star 仓库:
curl -H "Authorization: token YOUR_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/user/starred?per_page=100&page=1"
第三步: 把 JSON 输出通过格式化脚本处理。这是一个最简单的 Python 例子:
import json, sys
stars = json.load(sys.stdin)
for repo in stars:
print(f"## [{repo['full_name']}]({repo['html_url']})")
print(f"⭐ {repo['stargazers_count']} | 🗣 {repo['language'] or 'N/A'}")
print(f"{repo['description'] or '无描述'}")
print()
第四步: 处理分页。GitHub API 每页最多返回 100 个仓库。检查响应中的 Link 头获取下一页 URL,循环直到全部拉取完毕。
这个方法可行,但缺点也很明显:需要自己写和维护脚本、需要处理速率限制(未认证 60 次/小时,有令牌 5000 次/小时)、还需要记得定期重新运行。
方法二:GitHub 网页界面(快速,但有限)
如果想零设置快速导出一次:
1. 打开 github.com/<你的用户名>?tab=stars
2. 一直往下滚,加载完所有点赞仓库(如果有几千个就很痛苦了)
3. 用浏览器扩展(如"Copy as Markdown")抓取页面内容
4. 粘贴到 Markdown 文件中
局限: 不能自动更新。手动滚动。只能抓取屏幕可见内容。方法三:开源脚本(社区方案)
一些开源脚本自动化了 API 方案:
- amirhmoradi/starred:一个 Python 脚本,拉取所有点赞仓库输出单个 Markdown 文件。简单、专注、好用。
- starred-repo-exporter:Python 脚本,提供更多格式化选项,可以包含 README 摘要。
- gh-star-export:使用
ghCLI 进行认证,减少配置摩擦。
这些脚本比手写方案更方便,但仍需要定期手动运行,且需要一定的命令行基础。
方法四:GithubBackup 一键导出 — GitHub 仓库备份 & AI 分析器
GithubBackup 是一个 GitHub 仓库备份与 AI 分析工具,内置了 Markdown 导出功能。连接 GitHub 账号之后:
1. 进入控制面板中的我的仓库
2. 点击导出 Markdown
3. 生成完成后下载文件
导出包含你收藏中的每个仓库——名称、链接、描述、Star 数,以及 AI 生成的摘要+分类+标签(Pro 功能)。文件异步生成(无需等待 API 分页),保存 7 天。
你能得到什么: 一个干净、按分类组织的 Markdown 文件:# 我的 GitHub 仓库
## Web开发
- **[vercel/next.js](https://github.com/vercel/next.js)** — React Web 框架
⭐ 128K | TypeScript
...
## 人工智能(AI)
- ...
局限: 导出是快照,不是实时同步。Star 了新仓库需要重新导出。Pro 会员导出包含 AI 摘要。
自动化:保持导出常新
无论你选择哪种方法,让导出保持更新的关键是自动化。有两条路:
1. 定期提醒。 设置一个循环日历提醒,每月或每季度导出一次。简单粗暴但有效。
2. CI/CD 自动化。 如果用的是方法一或方法三,可以设置一个 GitHub Action 定期运行导出脚本(比如每周),并把 Markdown 文件提交到仓库。这样你就有了一份带版本控制的点赞仓库历史记录。
导出之后可以做什么
有了点赞仓库的 Markdown 文件:
- 导入 Obsidian/Logseq,在整个知识库中全文搜索
- 存入 git 仓库,做版本控制的备份
- 归档到云存储(S3、R2、Google Drive),作为灾备措施
- 喂给大语言模型,询问关于收藏的问题("我都 Star 了哪些测试库?")
- 分享给同事,作为精选资源列表
要点总结
你的 GitHub 点赞仓库是宝贵的知识资产。导出为 Markdown,就是把这份资产从封闭平台中拿出来,放进你自己控制的格式里。
如果你想要完全可控,选方法一;想要折中方案,找个开源脚本;想要一键完成、什么都不操心,用 GithubBackup。
对导出仓库有疑问?我们很乐意帮忙。