Greasy Fork 支持简体中文。

Google Scholar DOI Extractor

Identify DOI from Google Scholar search result page and highlight it.

// ==UserScript==
// @name         Google Scholar DOI Extractor
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Identify DOI from Google Scholar search result page and highlight it.
// @author       nodelore
// @require      https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js
// @match        https://scholar.google.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';
    const triggerNotification = (doi)=>{
        const notification = $(`<div>Copy ${doi} to clipboard</div>`);
        notification.css({
            position: "fixed",
            right: 0,
            "z-index": 100000000,
            top: "0",
            background: "#000",
            color: "#FFF",
            "box-shadow": "0 0 10px #000",
            "font-size": "18px",
            padding: "10px",
            "border-radius": "5px",
            "display": "none",
        });
        $("#gs_top").append(notification);
        notification.fadeIn(300);
        notification.click(() => {
            notification.remove();
        });
        setTimeout(() => {
            notification.fadeOut(1000);
        }, 500);
    }
    $("#gs_bdy_ccl a").each(function(){
        console.log($(this)[0])
        const href = $(this).attr("href");
        const match = href.match(/10\.\d{4,9}\/[-._;()/:A-Z0-9]+$/i);
        if(match){
            const doi = match[0].split(".pdf")[0];
            const doiItem = $(`<span style='color: red; cursor: pointer;'><br/>DOI: ${doi}</span>`);
            doiItem.click(function(){
                triggerNotification(doi);
                navigator.clipboard.writeText(doi);
            })
            $(this).after(doiItem);
        }
    })
})();