Greasy Fork is available in English.

font mono beta🔧

let english website display mono font

// ==UserScript==
// @name         font mono beta🔧
// @description  let english website display mono font
// @namespace    font_mono
// @author       Covenant
// @version      0.9.2
// @license      MIT
// @homepage
// @match        *://*/*
// @exclude      https://fonts.google.com/*
// @exclude      https://fonts.bunny.net/*
// @exclude      https://codepen.io/*
// @exclude      https://web.archive.org/*
// @exclude      https://www.programmingfonts.org/*
// @exclude      https://www.codingfont.com/*
// @exclude      https://fonts.adobe.com/*
// @exclude      file:///*
// @icon         data:image/svg+xml;base64,PHN2ZyB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNiIgZGF0YS12aWV3LWNvbXBvbmVudD0idHJ1ZSIgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1pbmZvIj4KICAgIDxwYXRoIGQ9Ik0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02LjVhNi41IDYuNSAwIDEgMCAwIDEzIDYuNSA2LjUgMCAwIDAgMC0xM1pNNi41IDcuNzVBLjc1Ljc1IDAgMCAxIDcuMjUgN2gxYS43NS43NSAwIDAgMSAuNzUuNzV2Mi43NWguMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yYS43NS43NSAwIDAgMSAwLTEuNWguMjV2LTJoLS4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNOCA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMloiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KPC9zdmc+
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_registerMenuCommand
// @connect
// @run-at       document-body
// @noframes
// ==/UserScript==
const ary_os_font=[["","'Consolas',","'Cascadia Mono',","'Noto Mono',","'Noto Sans Mono',","'Liberation Mono',","'DejaVu Sans Mono',","'DroidSans_Mono',"],["'Cutive Mono',","'Courier Prime',","'M PLUS 1 Code',","'Xanh Mono',","'New Tegomin',"]];
const ary_url=["https://fonts.googleapis.com/css2?family=Cutive+Mono&display=swap",
               "https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&display=swap",
               "https://fonts.googleapis.com/css2?family=M+PLUS+1+Code:wght@100;200;300;400;500;600;700&display=swap",
               "https://fonts.googleapis.com/css2?family=Xanh+Mono:ital@0;1&display=swap",
               "https://fonts.googleapis.com/css2?family=New+Tegomin&display=swap"];
var value=GM_getValue('value', [0,0]);
var web_font_name=GM_getValue('web_font_name', ary_os_font[value[0]][value[1]]);
var font_weight=GM_getValue('font_weight', 300);
var letter_spacing=web_font_name=="'Cutive Mono',"?"letter-spacing: -0.05em;":"";
var timeoutID_1;
function create_style(textContent,id,class_name){
    let style=create_node("style",class_name,true,document.body);
    style.type='text/css';
    style.id=id;
    style.textContent=textContent;
    return style;
}
const font_family_code="font-family: "+web_font_name+"'Noto Sans Mono','Noto Mono','Cascadia Code','Consolas','Liberation Mono','Monaco','Courier New','flag_patch','flag_white_patch','color_emoji','Noto Sans CJK JP','Meiryo','Yu Gothic','Microsoft JhengHei','symbol_sans','symbol2_sans','emoji_back',monospace;";
const font_face_default=`
@font-face{font-family: 'color_emoji';src: local('Twemoji Mozilla'),/*url('file:///C:/Program Files/Mozilla Firefox/fonts/TwemojiMozilla.ttf'),*/local('Noto Color Emoji'),local('Segoe UI Emoji'),local('Apple Color Emoji');}
@font-face{font-family: 'symbol_sans';src: local('Segoe UI Symbol'),local('NotoSansSymbols-Regular'),local('NotoSansSymbols-Regular-Subsetted'),local('Noto Sans Symbols')/*,local('Apple Symbols')*/;}
@font-face{font-family: 'symbol2_sans';src: local('NotoSansSymbols2-Regular'),local('NotoSansSymbols-Regular-Subsetted2'),local('Meiryo');}
@font-face{font-family: 'emoji_back';src: local('Noto Color Emoji'),local('Toss Face Font Web'),local('Segoe UI Emoji');}
@font-face{font-family: 'old_google';src: local('Noto Color Emoji'),local('NotoColorEmoji');}\n@font-face{font-family: 'old_samsung';src: local('SamsungColorEmoji');}
@font-face{font-family: 'DroidSans_Mono';src: local('DroidSansMono');}\n@font-face{font-family: 'Cutive_Mono';src: local('Cutive Mono');}
@font-face{font-family: 'Roboto_Regular';src: local('Roboto');}\n@font-face{font-family: 'Noto_Serif';src: local('NotoSerif');}
@font-face{font-family: 'Dancing_Script';src: local('DancingScript');}\n@font-face{font-family: 'Coming_Soon';src: local('ComingSoon');}\n@font-face{font-family: 'Carrois_GothicSC';src: local('CarroisGothicSC-Regular');}
\n`;
var style_font_face;
var style_user_css;
if(document.body!=null){
    style_font_face=create_style(font_face_default,"gm_font_face_font_monospace",["user_gm_font_face","css_font_monospace"]);
    style_user_css=create_style("","gm_user_css_font_monospace",["user_gm_css","css_font_monospace"]);
    style_user_css.textContent+=`
html:lang(en),body:lang(en),body:not(.fake_class) p:lang(en):not(.fake_class),body:lang(en):not(.fake_class) a:not(.fake_class),body:lang(en) li,body:lang(en) div:not(.emoji),body:lang(en) section,body:lang(en) blockquote
{`+font_family_code+`font-weight: `+font_weight+`;`+letter_spacing+`/*font-size: 0.99em;font-stretch: ultra-condensed;*/}
body:not(.fake_class) p:lang(en):not(.fake_class){font-size: 1rem;}
html:lang(en) a{font-stretch: ultra-condensed;}\n`;
}
function create_link_stylesheet(url,class_name,is_appendChild,node,refNode){
    let link_stylesheet=create_node("link",class_name,is_appendChild,node,refNode);
    link_stylesheet.rel="stylesheet";
    link_stylesheet.href=url;
    return link_stylesheet;
}
function create_node(tagname,class_name,is_appendChild,node,refNode){
    let element=document.createElement(tagname);
    element.id="";
    if(Array.isArray(class_name)){
        for(let i=0; i<class_name.length; i++){element.classList.add(class_name[i]);}
    }else if(typeof class_name==='string'){element.classList.add(class_name);}
    if(is_appendChild){node.appendChild(element);}else{node.insertBefore(element, refNode);}
    return element;
}
function fn_url(url){
    let obj_url=new URL(url);
    let params=obj_url.searchParams;
    //let params=new URLSearchParams(obj_url.search);
    return [obj_url,params];
}
//console.log("break");
function style_01(){
    if(style_user_css.parentNode==undefined){
        console.log("style_font_mono undefined");
        document.body.appendChild(style_font_face);
        document.body.appendChild(style_user_css);
        window.clearInterval(timeoutID_1);
    }
}
(function() {
    'use strict';
    if(document.body==null)return;
    let url=fn_url(document.location);
    timeoutID_1=window.setInterval(( () => style_01()), 1000);
    //window.setTimeout(( () => style_01() ), 10000);
    GM_registerMenuCommand("use os mono font"+(value[0]==0?"✔️":""), () => {
        if(value[0]==0){
            value[1]=(value[1]+1)%(ary_os_font[value[0]].length);
            value=GM_setValue('value', [value[0],value[1]]);
        }else if(value[0]==1){
            value=GM_setValue('value', [0,1]);
        }
    });
    GM_registerMenuCommand("use web font"+(value[0]==1?"✔️":""), () => {
        if(value[0]==1){
            value[1]=(value[1]+1)%(ary_os_font[value[0]].length);
            value=GM_setValue('value', [value[0],value[1]]);
        }else if(value[0]==0){
            value=GM_setValue('value', [1,0]);
        }
    });
    if(value[0]==1){
        if(url[0].host.search(new RegExp("github.com", "i"))!=0&&url[0].host.search(new RegExp("steamdb.info", "i"))!=0&&url[0].host.search(new RegExp("developer.mozilla.org", "i"))!=0){
            let link=create_link_stylesheet(ary_url[value[1]],"gm_font_face_font_monospace",true,document.head);
            GM_registerMenuCommand("rst, "+web_font_name, () => {
                value=GM_setValue('value', [0,0]);
            });
        }else{
            GM_registerMenuCommand("rst, load webfont css fail", () => {
                value=GM_setValue('value', [0,0]);
            });
        }
    }
    //console.log(style_user_css.parentNode);
})();