Greasy Fork

Greasy Fork is available in English.

arXiv AlphaXiv 跳转器

按论文 ID 在 arXiv 摘要、HTML、PDF 和 AlphaXiv 页面之间跳转。

当前为 2026-05-06 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
fangwei00-jin
评分
0 0 0
版本
1.0.1
创建于
2026-05-06
更新于
2026-05-06
大小
10.4 KB
许可证
MIT
适用于

脚本定位:用于在 arXiv 和 AlphaXiv 的论文页面之间快速跳转。脚本会根据当前页面中的论文 ID 自动生成一个悬浮跳转面板,方便用户切换到同一篇论文的不同展示形式。

支持的网站页面

脚本会在以下页面生效:

同时支持带 www 和不带 www 的域名形式。

核心功能

1. 自动识别 arXiv 论文 ID

脚本会从当前页面中提取 arXiv 论文 ID,支持两类 ID:

  • 新格式 ID,例如:2401.12345
  • 旧格式 ID,例如:cs/9901001hep-th/9901001

提取来源包括:

  • 当前页面 URL 路径
  • canonical 链接
  • og:url 元信息
  • 页面中的 arXiv 或 AlphaXiv 链接
  • 页面正文文本

2. 生成跨站跳转链接

识别论文 ID 后,脚本会生成以下跳转目标:

  • arXiv 摘要页:abs
  • arXiv HTML 页:html
  • arXiv PDF 页:pdf
  • AlphaXiv 论文页:αabs
  • AlphaXiv 概览页:αblog

如果当前页面已经是其中某一种类型,面板中会隐藏当前页面对应的跳转项,只显示其他可跳转目标。

3. 自动检测 GitHub 仓库链接

脚本会尝试从 arXiv 摘要页内容中查找 GitHub 仓库链接。

检测方式:

  • 如果当前页面是 arXiv 摘要页,优先直接扫描当前页面 HTML
  • 否则请求对应的 arXiv 摘要页,再扫描其中的 GitHub 链接

如果找到有效仓库,会在跳转面板中额外添加一个 git 链接。

脚本会过滤一些 GitHub 系统页面或非仓库页面,例如:

  • github.com/topics/...
  • github.com/search/...
  • github.com/trending/...
  • github.com/login/...

4. 显示悬浮跳转面板

脚本会在页面右上方插入一个小型悬浮面板。

面板特点:

  • 使用 Shadow DOM 隔离样式,减少对原网页的影响
  • 默认只显示当前页面类型按钮
  • 点击按钮可展开或收起跳转列表
  • 点击列表项即可跳转到对应页面

5. 支持拖动面板位置

悬浮面板支持鼠标拖动。

拖动后会将位置保存到 localStorage 中,键名为:

arxiv-alphaxiv-jumper-position

下次打开匹配页面时,面板会恢复到上次保存的位置。

6. 防止重复插入

初始化时会检查页面中是否已经存在:

arxiv-alphaxiv-jumper-root

如果已经存在,则不会重复创建悬浮面板。

运行时机

脚本配置为:

@run-at document-idle

如果页面仍在加载中,会等待 DOMContentLoaded 后再初始化;否则会立即执行初始化逻辑。

网络权限

脚本使用了以下权限:

  • GM_xmlhttpRequest
  • @connect arxiv.org
  • @connect www.arxiv.org

这些权限主要用于跨页面请求 arXiv 摘要页,以便提取可能存在的 GitHub 仓库链接。

主要函数说明

normalizeArxivId(value)

清洗输入文本或 URL,并从中提取有效的 arXiv 论文 ID。

extractArxivId()

从当前页面多种来源中提取论文 ID。

getCurrentKind()

判断当前页面类型,例如:

  • abs
  • html
  • pdf
  • alphaabs
  • alphablog

findGithubRepo(id)

尝试查找当前论文对应的 GitHub 仓库链接。

buildTargets(id, githubRepo)

根据论文 ID 和 GitHub 仓库地址生成跳转目标列表。

createPanel(id, githubRepo)

创建悬浮跳转面板,并处理展开、收起、拖动、位置保存等交互逻辑。

init()

脚本入口函数,负责提取论文 ID,并创建跳转面板。

总结

该脚本的主要作用是提升 arXiv 与 AlphaXiv 之间的论文阅读跳转效率。它能够自动识别论文 ID,生成摘要页、HTML 页、PDF 页、AlphaXiv 页面和 GitHub 仓库的快捷入口,并通过可拖动的悬浮面板提供轻量级交互。