NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name GitHub Blob DMI Images // @namespace ru.suheugene.github-blob-dmi // @version 2024-07-11 // @description Replaces "View raw" links with images for .dmi GitHub blob pages // @author SuhEugene // @match https://github.com/** // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com // @grant none // @license MIT // @copyright 2024, SuhEugene (https://suheugene.ru) // ==/UserScript== const NO_RESIZE = 0; const MIN_128PX = 1; const BIG_IMAGES = 2; const RESIZE_IMAGES = MIN_128PX; (function() { 'use strict'; console.log("[DMI script] Loaded"); window.addEventListener("load", replaceData); console.log("[DMI script] Using interval"); setInterval(replaceData, 1000); function replaceData() { const currentPageUrl = window.location.href; if (!currentPageUrl.includes("blob") || !currentPageUrl.endsWith(".dmi")) return; const links = document.querySelectorAll('a'); for (const link of links) { if (link.innerText !== "View raw" && !link.dataset.dmiscripted) continue; if (!link.href) continue; if (link.children.length && link.children[0].tagName == "IMG") { const img = link.children[0]; img.src = link.href; return; } const img = document.createElement('img'); img.src = link.href; link.style.display = 'block'; link.dataset.dmiscripted = true; link.innerHTML = ''; link.appendChild(img); if (!RESIZE_IMAGES) return; img.style.objectFit = 'contain'; img.style.imageRendering = 'pixelated'; img.style.maxHeight = '80vh'; if (RESIZE_IMAGES === BIG_IMAGES) { img.style.width = '100%'; return; } if (RESIZE_IMAGES === MIN_128PX) { img.style.minWidth = "128px"; img.style.minHeight = "128px"; } } } })();