我的浏览器用户脚本有 3 个版本:
- 本地草案
- 本地-Greasemonkey
- Github
我希望 Github 中只有 1 个脚本实例。
我需要一种方法来将正在 Github 中共同编辑的脚本内容直接从 Github 导入到 Greasemonkey。
因此,对 Github 中的脚本所做的更改将自动影响全部用户在他们的浏览器中使用脚本,而无需在每次更新时手动复制更改。
知道怎么做吗?请将您的答案限制为您所知道的 1 或 2 种最佳方法。
笔记:
- 当然,我通常会备份我的电脑,包括 GitHub 资料。
答案1
您的问题分为两部分。
第一种是直接从 GitHub 存储库或 GitHub GIST 加载安装脚本。
GitHub 存储库和 GIST 都允许您获取指向对象本身的“原始”对象链接,并在 Web 浏览器中直接以纯文本形式提供该对象(如果可能)。通常可以通过这些“原始”URL 正确获取用户脚本。您可以通过单击 GIST 中单个项目上的“原始”按钮或在 GitHub 存储库中查看特定对象时获取原始 URL。然后,您可以分发该“原始链接”以用于安装目的。
第二部分是设置用户脚本中的更新和下载字段以指向您上面获得的相同原始链接,以便让 GreaseMonkey / TamperMonkey 自动更新。
有很多脚本可以做到这一点。我将使用Charcoal Team 的用户脚本库,称为 Flag Dialog Smokey Controls,又名 FDSC,其中有此类配置的一个很好的例子。
用户脚本有一个标头部分,它定义了用户脚本的细节,例如脚本的名称、版本号、贡献者、启用该脚本的站点以及其他字段。这里有两个字段与您想要的“下载”和“更新”组件高度相关 -@updateURL
和@downloadURL
。将注释/标头部分中的这些字段设置// ==UserScript==
为我在第一部分中提到的原始链接。然后,Greasemonkey/Tampermonkey 将适当地解释更新 URL,并在您增加用户脚本标头部分中的“版本”时进行相应的更新。
请注意,FDSC 为此使用了两个脚本,一个用于实际更新检测,另一个用于获取更新版本的实际下载位置:
// @updateURL https://raw.githubusercontent.com/Charcoal-SE/Userscripts/master/fdsc/fdsc.meta.js
// @downloadURL https://raw.githubusercontent.com/Charcoal-SE/Userscripts/master/fdsc/fdsc.user.js
我相信您可以使用相同的链接来实现这些。(但我还没有测试过)