AtCoder 中文助手

在 AtCoder 英文题面前显示中文题面。

目前為 2022-10-04 提交的版本,檢視 最新版本

// ==UserScript==
// @name        AtCoder 中文助手
// @namespace   Violentmonkey Scripts
// @match       https://atcoder.jp/contests/*
// @grant       none
// @version     1.0
// @author      Acfboy
// @license MIT
// @description 在 AtCoder 英文题面前显示中文题面。 
// ==/UserScript==

function addScript(url){
	var script = document.createElement('script');
	script.setAttribute('type','text/javascript');
	script.setAttribute('src',url);
	document.getElementsByTagName('head')[0].appendChild(script);
}

function add2(url){
}

function createXmlHttp() {
    if (window.XMLHttpRequest) {
       xmlHttp = new XMLHttpRequest();
    } else {
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

function getSource(url) {
    createXmlHttp();
    xmlHttp.onreadystatechange = writeSource;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

function writeSource() {
    if (xmlHttp.readyState == 4) {
        var s = xmlHttp.responseText;
        s = s.split('<textarea>')
        var t = document.getElementsByClassName('lang-en')
        var res = marked(s[1])
        for (var i = 1; i <= 100; i++) {
            if (i % 2 == 1) res = res.replace('$', '\\(')
            else res = res.replace('$', '\\)')
        }
        t[0].innerHTML = res + t[0].innerHTML
        // alert(s[1]);
    }
}

var id = window.location.href
var pr = id.split('/')[6]
pr = pr.toUpperCase()
pr = pr + "_translation.html"
pr = "https://atcoder-for-chinese-developers.github.io/atcoder-for-chinese/translation/" + pr

addScript("https://cdn.bootcdn.net/ajax/libs/marked/2.0.3/marked.js")

var script = document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('id','MathJax-script');
script.setAttribute('async','');
script.setAttribute('src','https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js');
document.getElementsByTagName('head')[0].appendChild(script);

getSource(pr)