Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

etng/ForkURL

Repository files navigation

ForkURL

一个 Chrome 扩展(Manifest V3),在 GitHub / npm / GitLab / PyPI / crates.io / pkg.go.dev / Docker Hub 等页面上一键跳转到相关工具:Pages、Raw、github.dev、CDN、包元数据、依赖分析、安全评分、在线 IDE......

不再向页面注入浮动面板。匹配的页面会让工具栏图标出现数字 badge,点击图标弹出可用跳转列表(类似 Google 翻译的体验)。

特性

  • 工具栏图标徽标:匹配页面显示可用跳转数量,不再侵入页面 DOM
  • 远程规则源:从 GitHub raw 等公开 URL 同步规则 JSON,每 6 小时自动刷新
  • 三层启停:组 / 规则 / 单链接 任意粒度勾选启用或禁用
  • 浏览优先的规则管理:默认折叠全部规则组,支持搜索、状态筛选、展开全部 / 折叠全部,并在展开后就近编辑
  • 可视化图标选择器:内置 71 个图标(Simple Icons + Lucide),默认启用 Iconify 缓存未内置图标,也可在线搜索 200,000+ 图标
  • 导入 / 导出:用 fork-url-config 配置文件备份全部自定义配置,也可以只导出某个规则组的自定义部分

默认跳转目标

当前公开默认规则包含 14 个规则组、23 条页面匹配规则、77 个跳转目标。完整快照见 docs/default-rules.md,官网首页 #rules 段落也会展示同一张表。

规则组 匹配页面 默认跳转目标 数量
GitHub GitHub 仓库主页 Pages, github.dev, github1s, vscode.dev, Gitpod, StackBlitz, CodeSandbox, pkg-size, jsDelivr GH, Releases 10
GitHub GitHub 文件 (blob) Raw, github1s, github.dev, RawGitHack, HTMLPreview 5
GitHub GitHub Pull Request github.dev, ReviewNB, Patch, Diff 4
GitHub GitHub Commit Patch, Diff 2
GitHub GitHub Release Tag Tag ZIP, Tag tar.gz 2
GitHub GitHub Gist Raw, Blocks 2
npm npm 包页面 unpkg, jsDelivr, Bundlephobia, Packagephobia, pkg-size, npmgraph, RunKit, Socket, deps.dev, Registry JSON, unpkg meta, jsDelivr CDN, esm.sh, bundlejs, publint, npm trends, Snyk Advisor 17
GitLab GitLab 仓库 Pages, Gitpod 2
GitLab GitLab 文件 (blob) Raw 1
Bitbucket Bitbucket 仓库 Source, Gitpod 2
Bitbucket Bitbucket 文件 Raw 1
PyPI PyPI 项目页 JSON API, deps.dev, Libraries.io, Snyk Advisor, piwheels 5
Rust crates crates.io 包页面 docs.rs, docs.rs JSON, deps.rs, deps.dev, crates API 5
Go pkg.go.dev 模块页 deps.dev, GoDocs, Proxy latest 3
Maven Maven Central Artifact Central, deps.dev 2
RubyGems RubyGems 包页面 deps.dev, Libraries.io, Gemdocs, BestGems 4
Packagist Packagist 包页面 Metadata JSON 1
VS Code Marketplace VS Code 扩展 Open VSX 1
Docker Hub Docker 官方镜像 library repo, OCI Explorer, deps.dev 3
Docker Hub Docker 命名空间镜像 OCI Explorer, deps.dev 2
SNS status page To Article 1
SNS article page To Status 1
Android GooglePlayApk ApkPure 1

这张表由 scripts/sync-rule-docs.mjsrules.json 生成。合并规则提交后,CI 会同步更新 README、官网首页规则段落和 docs/default-rules.md

默认规则只是起点。你可以在扩展设置页的规则管理中新增自己的规则组、正则和跳转链接,也可以配置远程规则源同步团队规则;提交到官方源的规则审核合并后会进入这张表。

安装

方式一:下载发布版(推荐普通用户)

  1. Releases 下载最新 forkurl-vX.Y.Z.zip,解压
  2. 打开 chrome://extensions,开启「开发者模式」
  3. 点「加载已解压的扩展程序」,选择解压后的目录

方式二:从源码加载(开发者)

  1. clone 本仓库
  2. 同样在 chrome://extensions 加载已解压的扩展程序,选仓库根目录

建议把扩展 pin 到工具栏(点击拼图图标 → 图钉),这样它就在地址栏右边。

使用默认远程规则源

打开扩展设置页(点击图标 → 设置,或 chrome://extensions 找到本扩展点「扩展程序选项」),点「使用官方源」按钮即可填入:

https://raw.githubusercontent.com/etng/ForkURL/main/rules.json

点「立即更新」拉取最新规则。

管理规则与配置

设置页的规则管理以浏览为主:默认折叠全部规则组,顶部支持搜索、按状态筛选、展开全部和折叠全部。命中搜索或筛选条件时,相关规则组会自动展开;手动折叠全部后会尊重你的选择。

展开规则组后,可以在组内顶部新增规则、编辑组名 / 组 ID、导出该组自定义部分,或清空该组的自定义覆盖。内置和远程规则不能直接删除;你可以禁用它们,也可以编辑成自己的覆盖版本。删除覆盖后会恢复到底层内置或远程规则。

配置导出文件的 typefork-url-config,导入时仍兼容旧版 url-switcher-config。底部的「导出配置」会导出全部自定义规则、远程地址和禁用状态;规则组内的「导出」只导出当前组的自定义部分,文件名使用 fork-url-config-{groupId}.json

官网与隐私

ForkURL 会在浏览器本地读取当前标签页 URL,用来匹配规则并生成跳转列表。匿名使用统计默认开启,可在设置页关闭;关闭后会清理本地遥测 ID 和发送记录。

匿名统计只包含安装/更新/每日活跃/弹窗打开/跳转点击/设置页打开/规则刷新这类事件,以及扩展版本、语言、浏览器大类和系统大类。不会发送页面 URL、域名、跳转目标、自定义规则、远程规则地址或导入导出的配置内容。

规则 JSON Schema

{
 "version": 1,
 "groups": [
 {
 "id": "github",
 "name": "GitHub",
 "rules": [
 {
 "id": "github-repo",
 "name": "GitHub 仓库",
 "patterns": [
 "^https://github\\.com/([^/]+)/([^/]+)/?$"
 ],
 "links": [
 {
 "id": "pages",
 "label": "Pages",
 "icon": "🌐",
 "url": "https://{1}.github.io/{2}",
 "desc": "GitHub Pages 站点"
 }
 ]
 }
 ]
 }
 ]
}
  • patterns:正则数组,命中任一即匹配
  • URL 模板里 {1}{2} 引用对应的捕获组

数据合并优先级

默认内置规则 → 远程规则(按 group.id 覆盖同名组)→ 自定义规则覆盖层(同 group.id 合并,同 rule.id 覆盖;完全相同规则去重)→ 用户禁用集合作最后过滤。

图标值的三种形式

icon 字段接受任意字符串,渲染时按优先级匹配:

  1. simple:<slug> —— Simple Icons(CC0),如 simple:githubsimple:gitpod
  2. lucide:<slug> —— Lucide(MIT),如 lucide:globelucide:shield
  3. 其他任何文本 —— 当作 emoji 或纯文本字面渲染(🌐......)

设置页里点链接前面的图标按钮会弹出可视化选择器,带搜索和分类。

贡献规则

不用 fork 仓库 / 写代码也能贡献新规则。最简方式:

  1. 在扩展设置页 → 规则管理里编好你的规则
  2. 点这条规则旁的「🔍 验证」按钮,输入示例 URL 验证生成的目标地址正确无误
  3. 点「📤 提交」按钮 —— 自动跳转到 GitHub Issue 表单,所有字段已预填
  4. 直接点 Submit 提交即可

提交后的流程:

  • 机器人自动校验,回复「✅ 校验通过」或具体错误
  • 仓库维护者评论 /approve 后,GitHub Action 会自动写入 rules.json、关闭 Issue
  • 全体用户最多 6 小时后自动收到更新

链接列表格式(一行一条,| 分隔):

显示名 | 图标 | URL 模板 | 说明(可选)
Pages | lucide:globe | https://{1}.github.io/{2} | GitHub Pages 站点

校验和合并逻辑见 .github/scripts/apply-submission.mjs

重新构建图标库

如果想给内置图标库加 / 减图标,编辑 scripts/build-icon-library.sh 顶部的 SIMPLE_ICONS / LUCIDE_ICONS 数组,然后:

bash scripts/build-icon-library.sh

会从上游下载 SVG、规范化(1em + currentColor)、生成 icon-library.js

版本与发布

  • 版本号定义在 manifest.jsonversion 字段,遵循语义化版本(MAJOR.MINOR.PATCH)
    • MAJOR:破坏性变更(manifest schema、规则数据结构、设置项不兼容等)
    • MINOR:新功能(新规则组、UI 组件、图标库等)
    • PATCH:bug 修复、默认规则微调、文案调整等
  • rules.json 的更新(通过 Issue 审批合并)不会自动发版;它通过运行时远程同步推给所有启用了远程源的用户。但每次合并时 CI 会自动同步重新生成 default-rules.js、README 默认规则表、官网首页 #rules 段落和 docs/default-rules.md,让文档快照保持最新

发布流程

# 1. 在 main 上把 manifest.json 的 version 改成 2.2.0
# 2. 提交并打 tag
git add manifest.json
git commit -m "chore(release): 🔧 release v2.2.0"
git tag v2.2.0
git push origin main
git push origin v2.2.0
# 3. CI 自动校验、打包、创建 GitHub Release 上传 zip

工作流定义见 .github/workflows/release.yml,本地预演:

bash scripts/build-extension.sh # 仅打包,输出到 dist/
bash scripts/build-extension.sh --check-version v2.2.0 # 同时校验 manifest 版本

License

代码 MIT。打包的图标各自遵循其原始许可(Simple Icons CC0 / Lucide MIT)。

About

Chrome 扩展:在 GitHub/npm/GitLab 等页面一键跳转 Pages/Raw/IDE/CDN,规则可远程同步与自定义

Resources

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /