Reddit - Toggle Custom CSS

Persistently disable/re-enable subreddit-specific CSS via a userscript command

Version au 12/04/2017. Voir la dernière version.

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name           Reddit - Toggle Custom CSS
// @description    Persistently disable/re-enable subreddit-specific CSS via a userscript command
// @author         chocolateboy
// @namespace      https://github.com/chocolateboy/userscripts
// @include        http://reddit.com/r/*
// @include        https://reddit.com/r/*
// @include        http://*.reddit.com/r/*
// @include        https://*.reddit.com/r/*
// @require        https://code.jquery.com/jquery-3.1.1.min.js
// @version        0.0.4
// @run-at         document-start
// @grant          GM_addStyle
// @grant          GM_deleteValue
// @grant          GM_getValue
// @grant          GM_setValue
// @grant          GM_registerMenuCommand
// ==/UserScript==

// original: http://userscripts-mirror.org/scripts/show/109818

// Why this remix? Because a) I don't use the other toggles (and the Unix philosophy
// suggests they should be separate userscripts) and b) several subreddits mangle the
// extra buttons so it's impossible to see/click them e.g. /r/ConTalks/
// Also, this is much easier to understand/maintain.

var SUBREDDIT = location.pathname.match(/\/r\/(\w+)/)[1];
var CUSTOM_CSS = 'link[title="applied_subreddit_stylesheet"]';

function toggle () {
    var disableCss = !GM_getValue(SUBREDDIT, false);

    $(CUSTOM_CSS).prop('disabled', disableCss);

    if (disableCss) {
        GM_setValue(SUBREDDIT, true);
    } else {
        GM_deleteValue(SUBREDDIT);
    }
}

var disableCss = GM_getValue(SUBREDDIT, false);

if (disableCss) {
    // https://wiki.greasespot.net/DOMContentLoaded#Workaround
    GM_addStyle("body { visibility: hidden }");

    $(document).on('DOMContentLoaded', function () {
        $(CUSTOM_CSS).prop('disabled', true)
        GM_addStyle("body { visibility: visible !important }");
    });
}

GM_registerMenuCommand('Toggle Custom CSS', toggle);