您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds some enhancements to USACO problems.
当前为
- // ==UserScript==
- // @name USACO Enhancements
- // @namespace https://connorcode.com
- // @version 0.2
- // @description Adds some enhancements to USACO problems.
- // @author Connor Slade
- // @match http://www.usaco.org/index.php?page=viewproblem*
- // @grant GM.getValue
- // @grant GM.setValue
- // @grant GM.setClipboard
- // @license GPLv3
- // ==/UserScript==
- (async () => {
- // == Problem year and date in page title ==
- let problemDate = document.querySelector('.panel h2').innerText;
- let problemName = document.querySelector('.panel h2:nth-child(2)').innerText.split('. ')[1];
- let date = problemDate.match(/USACO (\d{4}) (.*) Contest/);
- document.title = `USACO - ${problemName} (${date[2].substring(0, 3)} ${date[1]})`;
- // == Persistent language selector ==
- let selector = document.querySelector("select[name='language']");
- let lastLang = await GM.getValue('lastLang');
- if (lastLang != undefined) selector.value = lastLang;
- selector.addEventListener('change', async () => {
- console.log(selector.value);
- await GM.setValue("lastLang", selector.value);
- });
- // == Copy codeblocks to clipboard ==
- document.querySelectorAll('pre').forEach(block => {
- block.style.position = 'relative';
- let copy = document.createElement("button");
- copy.style.position = 'absolute';
- copy.style.top = 0;
- copy.style.right = 0;
- copy.innerText = 'Copy';
- block.appendChild(copy);
- copy.addEventListener('click', () => {
- let text = block.innerText;
- GM.setClipboard(text.substring(0, text.length - 4));
- });
- });
- // == Remove extra whitespace on bottom of page ==
- let submissionForm = document.querySelector('.submission');
- submissionForm.style.margin = '0 30px 0 30px';
- let container = document.querySelector('.content > div:nth-child(10)');
- container.style.display = 'contents';
- })();