您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A userscript that removes the "+" and "-" from code diffs
当前为
// ==UserScript== // @name GitHub Remove Diff Signs // @version 1.1.0 // @description A userscript that removes the "+" and "-" from code diffs // @license https://creativecommons.org/licenses/by-sa/4.0/ // @namespace https://github.com/Mottie // @include https://github.com/* // @grant none // @run-at document-idle // @author Rob Garrison // ==/UserScript== (() => { "use strict"; let debounce, busy = false, observers = []; function processDiff() { busy = true; if (document.querySelector(".highlight")) { let indx = 0, els = document.querySelectorAll(` .blob-code-deletion .blob-code-inner, .blob-code-addition .blob-code-inner` ), len = els.length, // target "+" and "-" at start regex = /^[+-]/, // loop with delay to allow user interaction loop = () => { let el, txt, // max number of DOM insertions per loop max = 0; while ( max < 50 && indx < len ) { if (indx >= len) { return; } el = els[indx]; txt = el.childNodes[0].textContent; el.childNodes[0].textContent = txt.replace(regex, " "); max++; indx++; } if (indx < len) { setTimeout(() => { loop(); }, 200); } }; loop(); } busy = false; } // GitHub pjax document.addEventListener("pjax:end", init); function removeObservers() { observers.forEach(observer => { if (observer) { observer.disconnect(); } }); observers = []; } function addObservers() { // DOM targets - to detect GitHub dynamic ajax page loading Array.from( // Observe progressively loaded content document.querySelectorAll(` .js-diff-progressive-container, .js-diff-load-container` ) ).forEach(target => { const obsrvr = new MutationObserver(mutations => { mutations.forEach(mutation => { // preform checks before adding code wrap to minimize function calls const tar = mutation.target; if (!busy && tar && ( tar.classList.contains("js-diff-load-container") || tar.classList.contains("blob-wrapper") ) ) { clearTimeout(debounce); debounce = setTimeout(() => { processDiff(); }, 500); } }); }); obsrvr.observe(target, { childList: true, subtree: true }); observers.push(obsrvr); }); } function init() { removeObservers(); if (document.querySelector("#files.diff-view")) { addObservers(); processDiff(); } } init(); })();