// ==UserScript== // @name Fix kbin Code Blocks // @namespace pamasich-kbin // @version 1.1 // @description Fix for kbin code blocks federated from Lemmy. Strips out the weird tags on each line. // @author Pamasich // @match https://kbin.social/* // @icon https://www.google.com/s2/favicons?sz=64&domain=kbin.social // @license MIT // @grant none // @downloadURL none // ==/UserScript== const testPattern = /\n?(.+\n)+<\/span>\n?/; const startTagPattern = /^\n?/g; const endTagPattern = /<\/span>\n?$/g; const combinedPattern = /^<\/span>/gm; function fixCodeBlock(code) { if (testPattern.test(code.innerText)) { code.innerText = code.innerText .replace(startTagPattern, "") .replaceAll(combinedPattern, "") .replace(endTagPattern, ""); } } const observer = new MutationObserver(mutations => { const codeBlocks = mutations.flatMap(mutation => Array.from(mutation.addedNodes)) .filter(node => node.nodeName == "BLOCKQUOTE") .map(node => Array.from(node.querySelectorAll("pre code"))) .flat(1); new Set(codeBlocks).forEach(fixCodeBlock); }); observer.observe(document, { childList: true, subtree: true });