Greasy Fork is available in English.
为阮一峰周刊的公众号页面的条目添加链接
// ==UserScript== // @name 阮一峰周刊引用链接跳转 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 为阮一峰周刊的公众号页面的条目添加链接 // @author Cesaryuan // @match https://mp.weixin.qq.com/* // @icon https://www.google.com/s2/favicons?domain=qq.com // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // 获取公众号名称 var name = document.querySelector('#js_name').innerText; // 获取文章名称 var articleTitle = document.querySelector('#activity-name').innerText; if(name.includes('阮一峰的网络日志') && articleTitle.trim().startsWith('科技爱好者周刊')){ var items = getElementByXpathAll('//p/span[sup and contains(@style, \'rgb(255, 53, 2)\')]') for (var item of items) { /** @type {HTMLElement} */ var indexSup = item.firstElementChild; if(indexSup.tagName === 'SUP' && indexSup.innerText.startsWith('[')){ var index = indexSup.innerText.substr(1, indexSup.innerText.length - 2); var emLinkElement = getElementByXpath(`//p/code[contains(text(), '[${index}]')]/following::em`); var link = emLinkElement.innerText; placeElementInAnchor(indexSup, link); } } } /** * @return {Node} * @param xpath */ function getElementByXpath(xpath){ return document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } /** * * @param {string} xpath * @returns {HTMLElement[]} */ function getElementByXpathAll(xpath){ var result = []; var xpathResult = document.evaluate(xpath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0; i < xpathResult.snapshotLength; i++) { result.push(xpathResult.snapshotItem(i)); } return result; } function placeElementInAnchor(element, url){ var anchor = document.createElement('a'); anchor.href = url; anchor.target = '_blank'; anchor.innerText = element.innerText; element.innerText = ''; element.appendChild(anchor); } })();