您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
サンプルなどを二列に並べます。
// ==UserScript== // @name AtCoder for Large Display // @namespace http://atcoder.jp/ // @version 0.1 // @description サンプルなどを二列に並べます。 // @author magurofly // @match https://atcoder.jp/contests/*/tasks/* // @icon https://www.google.com/s2/favicons?domain=atcoder.jp // @grant unsafeWindow // @license CC0 1.0 Universal // ==/UserScript== (function() { 'use strict'; function hasHeadingMatching(e, pattern) { for (const heading of e.querySelectorAll("h1,h2,h3,h4,h5,h6")) { if (heading.textContent.match(pattern)) return true; } return false; } function moveTo(container, elements) { for (const element of elements) { if (element.parentElement) element.parentElement.removeChild(element); container.appendChild(element); } } for (const container of document.querySelectorAll(".lang>span")) { container.classList.add("row"); const testcases = []; let inputStyle, outputStyle; for (const col of container.querySelectorAll(".part,.io-style")) { if (col.querySelector(".btn-copy")) { testcases.push(col); col.classList.add("col-md-6"); } else if (hasHeadingMatching(col, /入力|Input/i)) { inputStyle = col; col.classList.add("col"); } else if (hasHeadingMatching(col, /出力|Output/i)) { outputStyle = col; col.classList.add("col"); } else { col.classList.add("col"); } } if (inputStyle && outputStyle) { inputStyle.classList.remove("col"); inputStyle.classList.add("col-xs-6"); outputStyle.classList.remove("col"); outputStyle.classList.add("col-xs-6"); const row = document.createElement("div"); row.className = "row"; inputStyle.parentElement.appendChild(row); moveTo(row, [inputStyle, outputStyle]); } for (let i = 0; i < testcases.length; i += 2) { const input = testcases[i]; const output = testcases[i + 1]; const row = document.createElement("div"); row.className = "row"; input.parentElement.appendChild(row); moveTo(row, [input, output]); } } })();