您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
优化 GitHub 使用体验的小工具;仓库页显示 GitHub 计数统计(issues、watch、fork、star)为具体数值、放大查看 Markdown 中的图片
当前为
// ==UserScript== // @name GitHub 小助手 // @description 优化 GitHub 使用体验的小工具;仓库页显示 GitHub 计数统计(issues、watch、fork、star)为具体数值、放大查看 Markdown 中的图片 // @namespace maomao1996.github-helper // @version 1.1.0 // @icon https://github.githubassets.com/favicons/favicon.svg // @author maomao1996 // @homepage https://github.com/maomao1996/tampermonkey-scripts // @supportURL https://github.com/maomao1996/tampermonkey-scripts/issues // @license MIT // @match *://github.com/* // @grant GM_addStyle // ==/UserScript== !function() { "use strict"; var e = "femm-helper"; function t(e, t) { (null == t || t > e.length) && (t = e.length); for (var o = 0, n = new Array(t); o < t; o++) n[o] = e[o]; return n; } function o(e, o) { return function(e) { if (Array.isArray(e)) return e; }(e) || function(e, t) { var o = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (null != o) { var n, r, i = [], d = !0, a = !1; try { for (o = o.call(e); !(d = (n = o.next()).done) && (i.push(n.value), !t || i.length !== t); d = !0) ; } catch (e) { a = !0, r = e; } finally { try { d || null == o.return || o.return(); } finally { if (a) throw r; } } return i; } }(e, o) || function(e, o) { if (!e) return; if ("string" == typeof e) return t(e, o); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(n); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return t(e, o); }(e, o) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } var n = /^(\d{1,3}(,\d{3})*|\d+|\d{1,3},\d{3}\+)$/, r = { COUNTER: 'span[class*="Counter"]:not(['.concat(e, "])"), REPO_SIDEBAR: "#repo-content-pjax-container .Layout-sidebar", WATCH: "#repo-notifications-counter", FORKS: "#repo-network-counter", STARS: '[id^="repo-stars-counter-"]' }, i = [ [ 'a[href$="/watchers"] strong', r.WATCH ], [ 'a[href$="/forks"] strong', r.FORKS ], [ 'a[href$="/stargazers"] strong', r.STARS ] ]; function d(t, o) { (function(t, o) { return !t.getAttribute(e) && n.test(o) && t.innerText !== o; })(t, o) && (function(e, t) { e.innerText = t; }(t, o), function(e, t, o) { e.getAttribute(t) || e.setAttribute(t, o); }(t, e, "update-count")); } function a() { var e; document.querySelectorAll(r.COUNTER).forEach((function(e) { var t = e.getAttribute("title") || ""; d(e, t); })), document.querySelector("#repository-container-header:not([hidden])") && ((e = document.querySelector(r.REPO_SIDEBAR)) && i.forEach((function(t) { var n, r = o(t, 2), i = r[0], a = r[1]; d(e.querySelector(i), (null === (n = document.querySelector(a)) || void 0 === n ? void 0 : n.getAttribute("title")) || ""); }))); } /*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */ var m = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var o = arguments[t]; for (var n in o) Object.prototype.hasOwnProperty.call(o, n) && (e[n] = o[n]); } return e; }, c = function(e) { return "IMG" === e.tagName; }, l = function(e) { return e && 1 === e.nodeType; }, u = function(e) { return ".svg" === (e.currentSrc || e.src).substr(-4).toLowerCase(); }, s = function(e) { try { return Array.isArray(e) ? e.filter(c) : function(e) { return NodeList.prototype.isPrototypeOf(e); }(e) ? [].slice.call(e).filter(c) : l(e) ? [ e ].filter(c) : "string" == typeof e ? [].slice.call(document.querySelectorAll(e)).filter(c) : []; } catch (e) { throw new TypeError("The provided selector is invalid.\nExpects a CSS selector, a Node element, a NodeList or an array.\nSee: https://github.com/francoischalifour/medium-zoom"); } }, f = function(e, t) { var o = m({ bubbles: !1, cancelable: !1, detail: void 0 }, t); if ("function" == typeof window.CustomEvent) return new CustomEvent(e, o); var n = document.createEvent("CustomEvent"); return n.initCustomEvent(e, o.bubbles, o.cancelable, o.detail), n; }; !function(e, t) { void 0 === t && (t = {}); var o = t.insertAt; if (e && "undefined" != typeof document) { var n = document.head || document.getElementsByTagName("head")[0], r = document.createElement("style"); r.type = "text/css", "top" === o && n.firstChild ? n.insertBefore(r, n.firstChild) : n.appendChild(r), r.styleSheet ? r.styleSheet.cssText = e : r.appendChild(document.createTextNode(e)); } }(".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}"); var p = function e(t) { var o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = window.Promise || function(e) { function t() {} e(t, t); }, r = function() { for (var e = arguments.length, t = Array(e), o = 0; o < e; o++) t[o] = arguments[o]; var n = t.reduce((function(e, t) { return [].concat(e, s(t)); }), []); return n.filter((function(e) { return -1 === c.indexOf(e); })).forEach((function(e) { c.push(e), e.classList.add("medium-zoom-image"); })), p.forEach((function(e) { var t = e.type, o = e.listener, r = e.options; n.forEach((function(e) { e.addEventListener(t, o, r); })); })), b; }, i = function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).target, t = function() { var e = { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight, left: 0, top: 0, right: 0, bottom: 0 }, t = void 0, o = void 0; if (h.container) if (h.container instanceof Object) t = (e = m({}, e, h.container)).width - e.left - e.right - 2 * h.margin, o = e.height - e.top - e.bottom - 2 * h.margin; else { var n = (l(h.container) ? h.container : document.querySelector(h.container)).getBoundingClientRect(), r = n.width, i = n.height, d = n.left, a = n.top; e = m({}, e, { width: r, height: i, left: d, top: a }); } t = t || e.width - 2 * h.margin, o = o || e.height - 2 * h.margin; var c = y.zoomedHd || y.original, s = u(c) ? t : c.naturalWidth || t, f = u(c) ? o : c.naturalHeight || o, p = c.getBoundingClientRect(), g = p.top, v = p.left, z = p.width, b = p.height, E = Math.min(Math.max(z, s), t) / z, w = Math.min(Math.max(b, f), o) / b, S = Math.min(E, w), A = "scale(" + S + ") translate3d(" + ((t - z) / 2 - v + h.margin + e.left) / S + "px, " + ((o - b) / 2 - g + h.margin + e.top) / S + "px, 0)"; y.zoomed.style.transform = A, y.zoomedHd && (y.zoomedHd.style.transform = A); }; return new n((function(o) { if (e && -1 === c.indexOf(e)) o(b); else { if (y.zoomed) o(b); else { if (e) y.original = e; else { if (!(c.length > 0)) return void o(b); var n = c; y.original = n[0]; } if (y.original.dispatchEvent(f("medium-zoom:open", { detail: { zoom: b } })), v = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0, g = !0, y.zoomed = function(e) { var t = e.getBoundingClientRect(), o = t.top, n = t.left, r = t.width, i = t.height, d = e.cloneNode(), a = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0, m = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; return d.removeAttribute("id"), d.style.position = "absolute", d.style.top = o + a + "px", d.style.left = n + m + "px", d.style.width = r + "px", d.style.height = i + "px", d.style.transform = "", d; }(y.original), document.body.appendChild(z), h.template) { var r = l(h.template) ? h.template : document.querySelector(h.template); y.template = document.createElement("div"), y.template.appendChild(r.content.cloneNode(!0)), document.body.appendChild(y.template); } if (y.original.parentElement && "PICTURE" === y.original.parentElement.tagName && y.original.currentSrc && (y.zoomed.src = y.original.currentSrc), document.body.appendChild(y.zoomed), window.requestAnimationFrame((function() { document.body.classList.add("medium-zoom--opened"); })), y.original.classList.add("medium-zoom-image--hidden"), y.zoomed.classList.add("medium-zoom-image--opened"), y.zoomed.addEventListener("click", d), y.zoomed.addEventListener("transitionend", (function e() { g = !1, y.zoomed.removeEventListener("transitionend", e), y.original.dispatchEvent(f("medium-zoom:opened", { detail: { zoom: b } })), o(b); })), y.original.getAttribute("data-zoom-src")) { y.zoomedHd = y.zoomed.cloneNode(), y.zoomedHd.removeAttribute("srcset"), y.zoomedHd.removeAttribute("sizes"), y.zoomedHd.removeAttribute("loading"), y.zoomedHd.src = y.zoomed.getAttribute("data-zoom-src"), y.zoomedHd.onerror = function() { clearInterval(i), console.warn("Unable to reach the zoom image target " + y.zoomedHd.src), y.zoomedHd = null, t(); }; var i = setInterval((function() { y.zoomedHd.complete && (clearInterval(i), y.zoomedHd.classList.add("medium-zoom-image--opened"), y.zoomedHd.addEventListener("click", d), document.body.appendChild(y.zoomedHd), t()); }), 10); } else if (y.original.hasAttribute("srcset")) { y.zoomedHd = y.zoomed.cloneNode(), y.zoomedHd.removeAttribute("sizes"), y.zoomedHd.removeAttribute("loading"); var a = y.zoomedHd.addEventListener("load", (function() { y.zoomedHd.removeEventListener("load", a), y.zoomedHd.classList.add("medium-zoom-image--opened"), y.zoomedHd.addEventListener("click", d), document.body.appendChild(y.zoomedHd), t(); })); } else t(); } } })); }, d = function() { return new n((function(e) { if (!g && y.original) { g = !0, document.body.classList.remove("medium-zoom--opened"), y.zoomed.style.transform = "", y.zoomedHd && (y.zoomedHd.style.transform = ""), y.template && (y.template.style.transition = "opacity 150ms", y.template.style.opacity = 0), y.original.dispatchEvent(f("medium-zoom:close", { detail: { zoom: b } })), y.zoomed.addEventListener("transitionend", (function t() { y.original.classList.remove("medium-zoom-image--hidden"), document.body.removeChild(y.zoomed), y.zoomedHd && document.body.removeChild(y.zoomedHd), document.body.removeChild(z), y.zoomed.classList.remove("medium-zoom-image--opened"), y.template && document.body.removeChild(y.template), g = !1, y.zoomed.removeEventListener("transitionend", t), y.original.dispatchEvent(f("medium-zoom:closed", { detail: { zoom: b } })), y.original = null, y.zoomed = null, y.zoomedHd = null, y.template = null, e(b); })); } else e(b); })); }, a = function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).target; return y.original ? d() : i({ target: e }); }, c = [], p = [], g = !1, v = 0, h = o, y = { original: null, zoomed: null, zoomedHd: null, template: null }; "[object Object]" === Object.prototype.toString.call(t) ? h = t : (t || "string" == typeof t) && r(t); var z = function(e) { var t = document.createElement("div"); return t.classList.add("medium-zoom-overlay"), t.style.background = e, t; }((h = m({ margin: 0, background: "#fff", scrollOffset: 40, container: null, template: null }, h)).background); document.addEventListener("click", (function(e) { var t = e.target; t !== z ? -1 !== c.indexOf(t) && a({ target: t }) : d(); })), document.addEventListener("keyup", (function(e) { var t = e.key || e.keyCode; "Escape" !== t && "Esc" !== t && 27 !== t || d(); })), document.addEventListener("scroll", (function() { if (!g && y.original) { var e = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; Math.abs(v - e) > h.scrollOffset && setTimeout(d, 150); } })), window.addEventListener("resize", d); var b = { open: i, close: d, toggle: a, update: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e; if (e.background && (z.style.background = e.background), e.container && e.container instanceof Object && (t.container = m({}, h.container, e.container)), e.template) { var o = l(e.template) ? e.template : document.querySelector(e.template); t.template = o; } return h = m({}, h, t), c.forEach((function(e) { e.dispatchEvent(f("medium-zoom:update", { detail: { zoom: b } })); })), b; }, clone: function() { return e(m({}, h, arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {})); }, attach: r, detach: function() { for (var e = arguments.length, t = Array(e), o = 0; o < e; o++) t[o] = arguments[o]; y.zoomed && d(); var n = t.length > 0 ? t.reduce((function(e, t) { return [].concat(e, s(t)); }), []) : c; return n.forEach((function(e) { e.classList.remove("medium-zoom-image"), e.dispatchEvent(f("medium-zoom:detach", { detail: { zoom: b } })); })), c = c.filter((function(e) { return -1 === n.indexOf(e); })), b; }, on: function(e, t) { var o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return c.forEach((function(n) { n.addEventListener("medium-zoom:" + e, t, o); })), p.push({ type: "medium-zoom:" + e, listener: t, options: o }), b; }, off: function(e, t) { var o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return c.forEach((function(n) { n.removeEventListener("medium-zoom:" + e, t, o); })), p = p.filter((function(o) { return !(o.type === "medium-zoom:" + e && o.listener.toString() === t.toString()); })), b; }, getOptions: function() { return h; }, getImages: function() { return c; }, getZoomedImage: function() { return y.original; } }; return b; }, g = ".markdown-body img:not(.medium-zoom-image)", v = p(); function h() { !function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : g; v.detach(), v.attach(e); }(); } document.addEventListener("click", (function(e) { var t, o = e.target; "IMG" === (null == o ? void 0 : o.tagName) && (null === (t = document.querySelector(".markdown-body")) || void 0 === t ? void 0 : t.contains(o)) && (e.preventDefault(), e.stopPropagation()); })); var y = ".medium-zoom-overlay{background-color:#fff!important;z-index:1996}.medium-zoom-image--opened{z-index:1997}@media (prefers-color-scheme:dark){.medium-zoom-overlay{background-color:#000!important}}"; !function(e, t) { void 0 === t && (t = {}); var o = t.insertAt; if (e && "undefined" != typeof document) { var n = document.head || document.getElementsByTagName("head")[0], r = document.createElement("style"); r.type = "text/css", "top" === o && n.firstChild ? n.insertBefore(r, n.firstChild) : n.appendChild(r), r.styleSheet ? r.styleSheet.cssText = e : r.appendChild(document.createTextNode(e)); } }(y), GM_addStyle(y); var z = function() { a(), h(); }, b = document.querySelector("main"); null != b && new MutationObserver((function() { return z(); })).observe(b, { childList: !0, subtree: !0 }); z(); }();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址