AtCoderCharacterColorizer

Colorize kanji meaning color in statements

Verzia zo dňa 25.07.2021. Pozri najnovšiu verziu.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         AtCoderCharacterColorizer
// @namespace    https://satanic0258.github.io/
// @version      0.1.1
// @description  Colorize kanji meaning color in statements
// @author       satanic0258
// @match        https://atcoder.jp/contests/*/tasks/*
// @grant        none
// ==/UserScript==
/*!
 * AtCoderCharacterColorizer v0.1.1
 *
 * Copyright (c) 2021 satanic0258
 *
 * This software is released under the MIT license.
 * see https://opensource.org/licenses/MIT
 */
(function() {
    'use strict';

    const statement = document.getElementById("task-statement");
    function background(c, r, g, b, a) {
        return "<span style='background-color:rgba("+r+","+g+","+b+","+a+");'>"+c+"</span>";
    }
    function white(c) {
        return "<span style='color:#fff;text-shadow:1px 0px 1px #000,0px 1px 1px #000,-1px 0px 1px #000,0px -1px 1px #000;'>"+c+"</span>";
    }
    statement.innerHTML = statement.innerHTML
        .replace(/黒/g, background('黒',   0,   0,   0, 0.3))
        .replace(/ブラック/g, background('ブラック',   0,   0,   0, 0.3))
        .replace(/青([^木])/g, background('青',   0,   0, 255, 0.3) + '$1')
        .replace(/緑/g, background('緑',   0, 255,   0, 0.3))
        .replace(/水/g, background('水',   0, 255, 255, 0.3))
        .replace(/藍/g, background('藍',  15,  84, 116, 0.3))
        .replace(/灰/g, background('灰', 127, 127, 127, 0.3))
        .replace(/銀/g, background('銀', 127, 127, 127, 0.3))
        .replace(/紫/g, background('紫', 162,  96, 191, 0.4))
        .replace(/茶/g, background('茶', 184, 115,  51, 0.4))
        .replace(/銅/g, background('銅', 184, 115,  51, 0.4))
        .replace(/桃/g, background('桃', 240, 145, 153, 0.4))
        .replace(/ピンク/g, background('ピンク', 240, 145, 153, 0.4))
        .replace(/赤/g, background('赤', 255,   0,   0, 0.3))
        .replace(/橙/g, background('橙', 255, 127,   0, 0.3))
        .replace(/オレンジ/g, background('オレンジ', 255, 127,   0, 0.3))
        .replace(/黄/g, background('黄', 255, 255,   0, 0.5))
        .replace(/金/g, background('金', 255, 255,   0, 0.5))
        .replace(/白/g, white('白'))
        .replace(/ホワイト/g, white('ホワイト'));
})();