您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Делает самиздатовские текста более читабельными: смена фона на тёмный, смена шрифта на verdana, смена цвета текста на светлый, текст выровнен по ширине строки, добавлен автоматический перенос слов
当前为
// ==UserScript== // @name Samlib Reader // @description Делает самиздатовские текста более читабельными: смена фона на тёмный, смена шрифта на verdana, смена цвета текста на светлый, текст выровнен по ширине строки, добавлен автоматический перенос слов // @copyright 2019, Angens (https://openuserjs.org/users/angens) // @license MIT // @version 2.0.5 // @match http://samlib.ru/*/*/*.shtml // @exclude http://samlib.ru/*/*/index*.shtml // @exclude http://samlib.ru/*/*/stat.shtml // @grant none // @namespace https://greasyfork.org/users/386214 // ==/UserScript== // // ==OpenUserJS== // @author angens // ==/OpenUserJS== function changer(){ // Прописываем в тело возможность переноса слов document.querySelector("body").setAttribute("lang", "ru"); document.querySelector("body").setAttribute("style", "-moz-hyphens: auto; -webkit-hyphens: auto; -ms-hyphens: auto; white-space: unset;"); /* * Блок работы с описанием */ // Ищем комментарии на первом уровне тела let numOfComments = 0; let lastComment; let bodyChildren = document.body.childNodes; for (let i = 0; i < bodyChildren.length; i++){ let node = bodyChildren[i]; if (node.nodeType === 8){ numOfComments++; lastComment = node; } } // Создаём блок описания let description = document.createElement('div'); description.id = "SamLibReaderDescription"; // Если комментарии начала и конца произведения дети body — сразу записываем всё под нижним комментарием в блок описания if(numOfComments === 2){ while(lastComment.nextSibling){ description.append(lastComment.nextSibling); } } // Ищем комментарий описания и находить главный блок. Все последующие отправляем в блок описания if(numOfComments === 1){ let treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false); while (treeWalker.nextNode()){ if (treeWalker.currentNode.nodeType === 8){ if (treeWalker.currentNode.nodeValue == "-- Блок описания произведения (слева внизу) ---------------------"){ let node = treeWalker.currentNode.parentElement.parentElement.parentElement; while(node.nextSibling){ description.append(node.nextSibling); } description.insertBefore(node, description.firstChild); } } } } /* * Блок работы с текстом */ // Блок работы с произведением let nodes = document.querySelectorAll("dd, p"); let new_element = document.createElement('div'); new_element.id = "SamLibReader"; new_element.style.color = "wheat"; new_element.style.fontSize = "18px"; new_element.style.fontFamily = "verdana"; new_element.style.backgroundColor = "#212127"; new_element.style.paddingTop = "5%"; new_element.style.padding = "5%"; new_element.style.marginLeft = "25%"; new_element.style.marginRight = "25%"; new_element.style.textAlign = "justify"; if(nodes[0]) nodes[0].parentElement.insertBefore(new_element, nodes[0]); for (let i = 0; i < nodes.length; i++){ new_element.append(nodes[i]); } document.body.append(description); /* * Блок работы с тегом <pre> */ let pre = document.querySelectorAll("pre"); for (let i = 0; i < pre.length; i++){ pre[i].style.marginLeft = 'auto'; pre[i].style.marginRight = 'auto'; pre[i].style.width = 'min-content'; pre[i].style.color = "wheat"; pre[i].style.fontSize = "18px"; pre[i].style.fontFamily = "roboto condensed, verdana"; pre[i].style.backgroundColor = "#212127"; pre[i].style.padding = '5%'; } } document.addEventListener("DOMContentLoaded", changer());