GitHub 增强

为 GitHub 增加额外的功能。

作者
PRO-2684
日安装量
1
总安装量
1,177
评分
1 0 0
版本
0.3.5
创建于
2024-09-29
更新于
2025-01-15
大小
29.8 KB
许可证
GPL-3.0
适用于

Greasy Fork

如果你在 Greasy Fork 上查看自述文件时遇到问题,请访问 GitHub 上的自述文件 以获得更好的体验。

🪄 特点

  • 不使用 MutationObserversetInterval,纯粹基于事件驱动,比类似功能的脚本更高效
  • 没有危险的动态修补,确保兼容性
  • 实验性支持各种 GitHub 镜像站
    • 需自行将镜像站添加到此脚本的 用户匹配 列表
    • 管理面板 - 已安装脚本 - GitHub 增强 - 设置 - 包括/排除 - 用户匹配 - 添加...

⚙️ 配置

  • 🔢 Code Features
    • 📥 Clone Full Command: 在代码标签下的 httpsgit@ URL 前附加 git clone。(实验性功能,可能有效也可能无效)
    • ➡️ Tab Size: 设置 Tab 缩进大小。
    • 😉 Cursor Blink: 启用光标闪烁。
    • 🌊 Cursor Animation: 使光标平滑移动。
  • 🎨 Appearance
    • 📰 Dashboard: 配置仪表盘。(Default, Hide Copilot, Hide Feed, Mobile-Like)
    • ↖️ Left Sidebar: 配置左侧栏。(Default, Hidden)
    • ↗️ Right Sidebar: 配置右侧栏。(Default, Hide 'Latest changes', Hide 'Explore repositories', Hide Completely)
    • 📌 Sticky Avatar: 使头像固定。(实验性功能,不适用于所有头像)
  • 📦 Release Features
    • ⬆️ Release Uploader: 显示 Release 中文件的上传者。
      • 如果上传者是用户,则悬停时显示用户悬停卡片。
      • 如果上传者是 GitHub App,则着色为绿。
    • 📥 Release Downloads: 显示 Release 中文件的下载次数。
    • 📊 Release Histogram: 显示 Release 中各文件的下载次数直方图。
      • 如果只有零个或一个 Release 文件,则不会显示。
      • 如果没有任何 Release 文件被下载,则不会显示。
    • 🫥 Hide Archives: 隐藏 Release 中的源代码归档。(实验性功能)
  • 🪄 Additional Features
    • 🎭 Tracking Prevention: 阻止 GitHub 的一些跟踪。
  • ⚙️ Advanced Settings
    • 🔑 Personal Access Token: GitHub API 的个人访问令牌,以 github_pat_ 开头(用于提升速率限制)。详见 个人访问令牌 (PAT) 部分。
    • 📈 Rate Limit: 查看当前速率限制状态。
    • 🐞 Debug: 启用调试模式。

🖼️ 效果展示

"Assests" 部分示例 下述 Release "Assests" 部分的示例均启用了 `Release Downloads`, `Release Uploader` 和 `Release Histogram`。 [microsoft/[email protected]](https://github.com/microsoft/terminal/releases/tag/v1.22.2702.0): ![microsoft/[email protected]](./images/assets-1.jpg) [PRO-2684/[email protected]](https://github.com/PRO-2684/GM_config/releases/tag/v1.2.1): ![PRO-2684/[email protected]](./images/assets-2.jpg)
仪表盘示例 这是一个仪表盘界面的示例,其中 `📰 Dashboard` 设置为 `Mobile-Like`, `↖️ Left Sidebar` 设置为 `Hidden`, `↗️ Right Sidebar` 设置为 `Hide 'Latest changes'`。 ![](./images/dashboard.jpg)

🔑 个人访问令牌 (PAT)

  • 没有 PAT,每小时只允许 $60$ 次请求;有 PAT,每小时允许 $5000$ 次请求,对大多数用户来说足够了。
  • 在这里 了解如何创建细粒度的个人访问令牌。
  • Repository access 选项卡下只需选择 Public Repositories (read-only)(默认设置)。此部分后面展示了一张示例图片,以供参考。
  • 请注意,此脚本无法在私有仓库上添加额外信息。
  • 记得 在令牌过期时生成一个新令牌
  • 自行承担在镜像站上使用个人访问令牌的风险。
个人访问令牌示例设置 ![](./images/token.jpeg)

💡 机制

有关更详细的信息,请参阅源代码。(希望)它有很好的注释,并包含其他可能未在此处涵盖的说明与见解。

Release * 功能

  • 首先,我们需要监听 DOMContentLoadedturbo:load 事件,以了解 DOM 何时准备就绪或内容发生更改。在这两种情况下,我们都需要重新检查页面(setupListeners)。
  • 然后,我们应该找到所有与 Release 相关的 include-fragment 元素。通过使用开发者工具,我们了解到它们将动态地被实际内容替换,因此调查它们至关重要。
  • 搜索 GitHub,我们可以找到 include-fragment 的仓库,其中包含文档。我们可以从文档中了解到,include-fragment 元素将在内容被获取并解析后、插入到 DOM 之前派发一个 include-fragment-replace 事件。更好的是,它带有一个方便的类型为 DocumentFragment 的属性 detail.fragment,亦即解析后的内容。
  • 因此,对于每个 include-fragment 元素,我们监听 include-fragment-replace 事件,然后处理 detail.fragment 以添加我们的额外信息(onFragmentReplace)。
  • 为了查询给定 Release 的额外信息,我们只需调用 "Get a release by tag name" API。然后,我们可以提取我们需要的信息并将其添加到 DocumentFragment 中。

Tracking Prevention 功能

通过调查源代码(感谢源代码映射)并设置断点,我们可以发现 GitHub 从某些 <meta> 标签初始化跟踪端点。通过移除这些标签,我们可以阻止一些跟踪。更多细节可以参阅源代码,或阅读 这篇帖子

🤔 已知问题

  • 添加的信息可能不对齐。
  • 如果启用了 "Tracking Prevention",则可能会看到一个 "Error Looks like something went wrong!" 横幅。