您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
AtCoderの提出コードをMonaco Editorを使用した表示にします
当前为
您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
- // ==UserScript==
- // @name AtCoder Beautiful Code View
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description AtCoderの提出コードをMonaco Editorを使用した表示にします
- // @author Chippppp
- // @license MIT
- // @match https://atcoder.jp/contests/*/submissions/*
- // @grant none
- // ==/UserScript==
- "use strict";
- (function() {
- // Monaco Editor in cdnjs
- // Copyright (c) 2016 - present Microsoft Corporation
- let script = document.createElement("script");
- script.src = "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.33.0/min/vs/loader.min.js";
- document.head.prepend(script);
- let header = document.createElement("script");
- header.innerHTML = `
- document.getElementsByClassName("linenums")[0].style.display = "none";
- document.getElementsByClassName("btn-text toggle-btn-text source-code-expand-btn")[0].style.display = "none";
- document.getElementsByClassName("btn-copy btn-pre")[0].style.zIndex = "1";
- document.getElementsByClassName("btn-copy btn-pre")[0].style.borderRadius = "0";
- document.getElementsByClassName("btn-copy btn-pre")[1].style.zIndex = "1";
- document.getElementsByClassName("btn-copy btn-pre")[1].style.borderRadius = "0";
- `
- document.head.prepend(header);
- let div = document.createElement("div");
- div.style.marginTop = "10px";
- div.style.marginBottom = "30px";
- document.getElementById("submission-code").after(div);
- let arr = new Array;
- for (let i = 0; i < 10; ++i) {
- arr.push(document.getElementsByClassName("L" + i.toString()));
- }
- let str = ""
- let idx;
- for (idx = 0; ; ++idx) {
- if (Math.floor(idx / 10) < arr[idx % 10].length) {
- str += arr[idx % 10][Math.floor(idx / 10)].innerText;
- str += "\n";
- } else break;
- }
- div.style.height = Math.min(510, (idx + 1) * 21 + 6).toString() + "px";
- console.log(idx);
- let lang = document.getElementsByClassName("text-center")[3].innerText;
- lang = lang.slice(0, lang.indexOf(" ")).toLocaleLowerCase().replace("#", "sharp");
- if (lang.startsWith("pypy")) lang = "python";
- else if (lang == "c++") lang = "cpp";
- script.onload = function() {
- require.config({ paths: { "vs": "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.33.0/min/vs" } });
- require(["vs/editor/editor.main"], function() {
- monaco.editor.create(div, {
- value: str,
- language: lang,
- theme: "vs-dark",
- readOnly: true,
- lineHeight: 21,
- });
- document.getElementsByClassName("monaco-editor")[0].style.paddingTop = "20px";
- });
- };
- })();