arXiv : bouton « Copier BibTeX »
Ajoute un bouton près du titre qui copie une entrée BibTeX avec ID arXiv, auteurs et année dans le presse-papiers.
Code à copier
// Add a one-click "Copy BibTeX" button next to the paper title
(function () {
function bibtex() {
var id = (location.pathname.match(/\/abs\/([\w.\-\/]+)/) || [])[1];
if (!id) { return null; }
var titleEl = document.querySelector('h1.title');
var title = titleEl ? titleEl.textContent.replace(/^\s*Title:\s*/i, '').trim() : id;
var authorEls = document.querySelectorAll('.authors a');
var authors = Array.from(authorEls).map(function (a) { return a.textContent.trim(); }).join(' and ');
var year = ((document.querySelector('.dateline, .submission-history') || {}).textContent || '').match(/(19|20)\d{2}/);
year = year ? year[0] : '';
var key = id.replace(/[^a-zA-Z0-9]/g, '');
return '@article{arxiv' + key + ',\n title = {' + title + '},\n author = {' + authors + '},\n journal= {arXiv preprint arXiv:' + id + '},\n year = {' + year + '}\n}';
}
function mount() {
if (document.getElementById('jzArxBibBtn')) { return; }
var host = document.querySelector('h1.title') || document.querySelector('#abs');
if (!host) { return; }
var btn = document.createElement('button');
btn.id = 'jzArxBibBtn';
btn.type = 'button';
btn.textContent = 'Copy BibTeX';
btn.style.cssText = 'margin-left:10px;padding:4px 10px;background:#b31b1b;color:#fff;border:0;border-radius:4px;font-size:13px;cursor:pointer;font-weight:600;';
btn.addEventListener('click', function () {
var t = bibtex();
if (!t) { return; }
navigator.clipboard.writeText(t).then(function () {
btn.textContent = 'Copied!';
setTimeout(function () { btn.textContent = 'Copy BibTeX'; }, 1500);
});
});
host.appendChild(btn);
}
mount();
new MutationObserver(mount).observe(document.body, { childList: true, subtree: true });
})();
Comment utiliser cet exemple
- Copiez le code avec le bouton ci-dessus.
- Installez JustZix (2 minutes) et ouvrez l'extension sur la page cible.
- Ajoutez une nouvelle règle correspondant à cette page.
- Collez le code dans le panneau JavaScript de la règle et enregistrez — il s'exécute à chaque visite de page.
Notez cet exemple
Aucune note — soyez le premier.