MobileRead with light/dark theme selection
// ==UserScript==
// @name Better MobileRead.com
// @name:pl Ulepszony MobileRead.com
// @description MobileRead with light/dark theme selection
// @description:pl MobileRead z wyborem jasnego/ciemnego motywu.
// @author juliazero
// @license GPL-3.0-only
// @version 0.9.3
// @match https://www.mobileread.com/*
// @namespace mobileread.com
// @resource IMPORTED_CSS https://userstyles.world/api/style/28831.user.css?v=0.9.3
// @grant GM_getResourceText
// @grant GM_addStyle
// @run-at document-body
// ==/UserScript==
(function() {
'use strict';
// Load and inject CSS as a <style> element
let css = GM_getResourceText("IMPORTED_CSS");
// Remove the @-moz-document wrapper, but keep the inner contents
css = css.replace(/@-moz-document\s+domain\([^)]+\)\s*\{([\s\S]*?)\}\s*$/, '$1');
GM_addStyle(css);
// Add viewport meta tag for better mobile support
const metaElement = document.createElement('meta');
metaElement.name = 'viewport';
metaElement.content = 'width=device-width, initial-scale=1';
document.head.appendChild(metaElement);
// Remove " First" and "Last " from pagination links
function cleanPaginationText() {
document.querySelectorAll('a.smallfont').forEach(a => {
for (let node of a.childNodes) {
if (node.nodeType === Node.TEXT_NODE) {
node.textContent = node.textContent.replace(" First", "").replace("Last ", "");
}
}
});
}
cleanPaginationText();
const observer = new MutationObserver(cleanPaginationText);
observer.observe(document.body, { childList: true, subtree: true });
})();