arXiv:标记论文为已读
点击 PDF 链接时本地保存论文 ID,并在列表中暗化已读条目。
可复制的代码
// Mark papers as "read" once you click their PDF link, dim them in listings
(function () {
var KEY = 'jzArxReadIds';
function load() {
try { return JSON.parse(localStorage.getItem(KEY) || '{}') || {}; }
catch (e) { return {}; }
}
function save(map) { localStorage.setItem(KEY, JSON.stringify(map)); }
function markId(id) {
if (!id) { return; }
var m = load(); m[id] = Date.now(); save(m);
apply();
}
function extractId(href) {
var m = href.match(/\/(?:abs|pdf)\/([\w.\-\/]+?)(?:v\d+)?(?:\.pdf)?$/);
return m ? m[1] : null;
}
document.addEventListener('click', function (e) {
var a = e.target.closest('a[href*="/pdf/"], a[href$=".pdf"]');
if (!a) { return; }
markId(extractId(a.getAttribute('href') || ''));
}, true);
function apply() {
var read = load();
document.querySelectorAll('a[href*="/abs/"]').forEach(function (a) {
var id = extractId(a.getAttribute('href') || '');
if (!id || !read[id]) { return; }
var row = a.closest('dt, li, tr, .arxiv-result') || a.parentElement;
if (row && !row.dataset.jzArxRead) {
row.dataset.jzArxRead = '1';
row.style.opacity = '0.55';
row.style.filter = 'grayscale(0.5)';
var tag = document.createElement('span');
tag.textContent = ' ✓ read';
tag.style.cssText = 'color:#0a7c3a;font-weight:700;font-size:12px;margin-left:6px;';
a.appendChild(tag);
}
});
}
apply();
new MutationObserver(function () {
clearTimeout(window.__jzArxRead);
window.__jzArxRead = setTimeout(apply, 400);
}).observe(document.body, { childList: true, subtree: true });
})();
如何使用此示例
- 用上方按钮复制代码。
- 安装 JustZix(2 分钟),在目标页面打开扩展。
- 添加一条匹配该页面的新规则。
- 将代码粘贴到规则的 JavaScript 面板并保存 — 每次访问页面时都会运行。
为此示例评分
暂无评分 — 成为第一个。