Greasy Fork is available in English.
Displays small images in place of file-type icons in the repository source tree
当前为
// ==UserScript==
// @name GitHub images as icons
// @description Displays small images in place of file-type icons in the repository source tree
// @namespace wOxxOm.scripts
// @include https://github.com/*
// @match https://github.com/*
// @version 1.02
// @grant GM_addStyle
// @run-at document-start
// ==/UserScript==
iconSize = 24;
function addStyle(e) {
GM_addStyle('.wOxxOm-image-icon { max-width:'+iconSize+'px; max-height:'+iconSize+'px; width:auto; height:auto; margin:auto;'+
'position:absolute; left:0; top:0; right:0; bottom:0 }'+
'.wOxxOm-image-td { position:relative; padding:0; min-width:'+(iconSize+4)+'px; line-height:inherit }');
window.removeEventListener('DOMContentLoaded', addStyle);
iconify(document.body);
}
window.addEventListener('DOMContentLoaded', addStyle);
function iconify(n) {
var aa = (n.className == 'js-directory-link') ? [n] : n.getElementsByClassName('js-directory-link');
for (var a, i=0; i<aa.length && (a=aa[i++]); ) {
var r = a.href.match(/github\.com\/(.+?\/)blob\/([^\/]+\/.+?\.(?:png|jpg|jpeg|bmp|gif|cur|ico))$/);
if (!r)
continue;
var td = a.parentNode.parentNode.previousElementSibling;
if (td.localName != 'td')
continue;
var icon = td.firstElementChild;
var img = icon.nextElementSibling;
if (!img)
td.insertBefore(img = document.createElement('img'), icon);
icon.style.display = 'none';
img.className = 'wOxxOm-image-icon';
img.src = 'https://raw.githubusercontent.com/' + r[1] + r[2];
td.className += ' wOxxOm-image-td';
}
}
var ob = new MutationObserver(function(mutations){
for (var m, i=0; i<mutations.length && (m=mutations[i++]) && (mtg=m.target); )
if (mtg.id == 'js-repo-pjax-container' || (mtg.className == 'files' && mtg.localName == 'table'))
for (var nn=m.addedNodes, n, j=0; j<nn.length && (n=nn[j++]); )
if (n.nodeType == Node.ELEMENT_NODE)
iconify(n);
});
ob.observe(document, {subtree:true, childList:true});