听见你引用的节拍 · Chrome 引用追踪扩展
听见你引用的节拍。 一个极简的浏览器扩展,定时获取你的 Google Scholar / Semantic Scholar 总引用数,并一键查看本周期内引用有增长的论文。
![]()
12.3k)+N 引用),按增量降序排列chrome.storage.local,不会上传到任何服务器git clone https://github.com/sci-m-wang/CiteBeat.git./pack.sh(会生成 dist/unpacked/ 目录)chrome://extensions 或 edge://extensions,启用”开发者模式”dist/unpacked注意:不要直接加载仓库根目录。根目录下的
_config.yml(GitHub Pages 用) 以下划线开头,会被 Chromium 视为保留名并拒绝加载。pack.sh会产出干净的扩展目录。本地调试时尽量固定使用同一个
dist/unpacked路径,并优先在扩展管理页点击 reload。 卸载重装或换目录加载可能导致 Chrome 分配不同扩展 ID,旧的chrome.storage.local数据不会自动迁移。需要保留历史时,请先在设置页导出备份。
(待上架后补充链接)
scholar.google.com/citations?user=XXX 中的 user= 参数semanticscholar.org/author/NAME/ID 末尾的数字 IDcitebeat-backup-*.json 文件,包含设置、当前引用、统计周期和历史记录Trend building;没有 Top 论文时显示占位说明;未成功刷新过时提示先刷新用于把引用数据同步到你自己的个人主页。默认关闭,不配置就永远不会发送。 支持两种方式:
| 方式 | 适用场景 | 做法 |
|---|---|---|
| 自定义节点 | 主页有后端 / Serverless 函数 | POST citation.snapshot JSON |
| GitHub Pages | 主页是静态站点 | 通过 Contents API 把 JSON 提交进仓库 |
https://example.com/api/citationsAuthorization: Bearer <token> 发送POST <你的节点地址>
Content-Type: application/json
X-CiteBeat-Schema: citation.snapshot/1
Authorization: Bearer <token> # 仅在选择 Bearer 时
节点返回 2xx 视为成功。
静态站点没有后端可以接收 POST,所以扩展改为把 JSON 作为一次提交写进你的仓库,GitHub Pages 重新部署后主页即可读到。
main)、文件路径(默认 data/citations.json)https://api.github.com/*扩展会先 GET 该文件拿 sha(不存在则创建),再 PUT 提交。若期间有其他提交导致 409,会重新取 sha 再试一次。
在主页里读取:
const res = await fetch('/data/citations.json');
const snap = await res.json();
document.querySelector('#citations').textContent = snap.metrics.citations;
document.querySelector('#hindex').textContent = snap.metrics.hIndex;
提交会计入仓库历史。建议把上报周期设为 1 天或更长,避免频繁提交刷屏。
{
"schema": "citation.snapshot",
"schemaVersion": 1,
"generatedAt": "2026-06-13T16:00:00.000Z",
"generator": { "name": "CiteBeat", "version": "0.3.1" },
"source": {
"provider": "scholar",
"authorId": "xxxxxxxx",
"profileUrl": "https://scholar.google.com/citations?user=xxxxxxxx",
"fetchedAt": "2026-06-13T15:58:00.000Z"
},
"metrics": { "citations": 571, "hIndex": 12, "i10Index": 15, "paperCount": 40 },
"period": { "mode": "manual", "startedAt": "2026-06-01T00:00:00.000Z", "citationDelta": 8 },
"papers": [
{ "id": "xxx", "title": "论文标题", "citations": 42, "delta": 2, "url": "https://..." }
],
"trend": [ { "at": "2026-06-10T00:00:00.000Z", "citations": 563 } ]
}
超时 15 秒,失败最多重试 3 次(仅对超时、429 和 5xx 重试)。
optional_host_permissions 声明为通配形式,因为无法预知你的域名;实际授权由浏览器逐域名弹窗确认+N 增量与当前总引用,点击标题直达论文页| 权限 | 用途 |
|---|---|
alarms |
创建周期性刷新任务与可选的上报检查 |
storage |
本地保存作者 ID、引用快照、统计周期起点、历史摘要和备份恢复数据 |
https://scholar.google.com/* |
抓取本人公开的 Google Scholar 个人页 |
https://api.semanticscholar.org/* |
调用 Semantic Scholar 官方 Graph API |
optional_host_permissions |
仅在启用上报并授权后,向你自填的节点地址发送快照 |
扩展不会读取其他任何页面,不会与第三方服务器通信,也不会收集任何用户识别信息。 唯一的对外发送是你主动配置并授权的上报节点。详见 PRIVACY.md。

欢迎 issue / PR。小工具、轻维护,任何改进都欢迎:
基于 MIT 协议开源 © 2026 KinaMind。
人-Agent 协作归属与溯源元数据遵循 SymPro 0.1
协议,详见仓库内 .sympro/ 目录。SymPro 作为 MIT 的补充,不改变代码本身的许可。