您需要先安装一个扩展,例如 篡改猴、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]);
- }
- }
- })();