isa
V2EX  ›  分享创造

写了一个可以在线下载 Github 仓库子文件夹的用户脚本

By isa at 2020 年 9 月 26 日 · 3082 次点击

无需克隆 GitHub 仓库, 一键在线下载 Github 仓库子文件夹; 同时还能在源码详情页一键复制源码.

脚本安装地址: download github repo sub-folder, 源码地址: github

下载按钮 和 复制按钮无缝和 Github.com 集成, 示例效果如下:

Download Github screenshot

credits: 在线下载 Github 仓库的文件夹功能使用开源项目 downgit(源码) 实现

使用说明

安装脚本管理器

Chrome 用户推荐安装浏览器扩展: Tampermonkey

其他选择可参考: 安装一个用户脚本管理器

安装本脚本

脚本安装地址: download github repo sub-folder, 源码地址: github

脚本管理器配置

本脚本的下载 Github 单个文件的功能依赖脚本管理器的 GM_download 权限, 需遵循脚本管理器的安全策略, 如 Tampermonkey 官方所说:

因安全原因所下载的文件后缀名必须添加至 Tampermonkey 的白名单中

你可以按下述步骤来设置 Tampermonkey:

  1. 在 Chrome 中打开 Tampermonkey 的设置页面, 你可以直接复制 chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/options.html#nav=settings 在 Chrome 地址栏中打开
  2. 在 General 设置组 将 Config mode 改为 Advanced
  3. 然后再滚动到页面底部, 找到 Downloads BETA, 将你需要下载的文件后缀追加至 Whitelisted File Extensions: 中:

    可以添加常用代码文件后缀 /\.(js|ts|jsx|tsx|json|java|go|cpp|c|swift|cmd|sh|md|markdown|rb)$/
    如果嫌麻烦, 也可以添加 /\..*$/ 来允许下载任意后缀文件, 需自行注意所下载文件的安全问题

已知问题:

downgit在线下载 github 文件夹时, 会调用 github api, 由于该网站调用 API 时没使用 Github Auth Token, 会有接口调用频次和权限限制:

  1. 不能下载私有仓库的内容
  2. 下载几个仓库文件夹后即会报错, 原因是超过 GitHub 匿名调用 API 的次数, 需等待一天

若想突破上面限制, 可使用另一个服务 gitzip, 填入你的 GitHub Auth Token 后即可无限制下载了.

2 条回复  •  2020-09-26 11:25:29 +08:00
lxk11153
   1
lxk11153  
   2020 年 9 月 26 日
[doge] 我也看到一个,是从这 /t/710179 递归到的 ↓
https://i.otherhill.com/index.php/topic/show/271/2
isa
   2
isa  
OP
   2020 年 9 月 26 日
@lxk11153 嗯, 就是用的 downgit. downgit 和 gitzip 用起来都不太便利, 后续有空会考虑把下载文件夹的功能直接集成到 userscript 中去
爱意满满的作品展示区。
© 2026 V2EX · 33ms · 3.9.8.5