您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
入出力例をまとめた項目を生成
当前为
// ==UserScript== // @name atcoder_collect_all_examples // @namespace https://github.com/Haar-you // @version 1.0.1 // @description 入出力例をまとめた項目を生成 // @author Haar-you // @match https://atcoder.jp/contests/* // @grant none // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js // ==/UserScript== $(function(){ 'use strict'; this.$ = this.jQuery = jQuery.noConflict(true); const part_iostyle = $($("#task-statement .io-style")[0]); const part_example = $("#task-statement .part"); const text_input = part_example.filter(function(i,elem){ const s = $($(elem).find("h3")[0]).text(); return /入力例/.test(s); }).map(function(i,elem){ return $(elem).find("pre")[0].innerText; }).get().join("\n\n"); const text_output = part_example.filter(function(i,elem){ const s = $($(elem).find("h3")[0]).text(); return /出力例/.test(s); }).map(function(i,elem){ return $(elem).find("pre")[0].innerText; }).get().join("\n\n"); const pre_all_inputs = $("<pre></pre>", { text: text_input }); const pre_all_outputs = $("<pre></pre>", { text: text_output }); function copyExample(elem){ window.getSelection().removeAllRanges(); var range = document.createRange(); range.selectNode(elem); window.getSelection().addRange(range); document.execCommand('copy'); $(this).tooltip("show"); var _this = this; setTimeout(function() { $(_this).tooltip('hide'); }, 800); window.getSelection().removeAllRanges(); } part_iostyle.after( $("<div></div>", { "class": "part" }).append( $("<section></section>").append( $("<h3></h3>", {text: "全入出力例 "}).append( $("<span></span>", { "class": "btn btn-default btn-sm", text: "Copy input", "data-toggle": "tooltip", "data-trigger": "manual", "data-title": "Copied!", on:{ click: function(){ copyExample.call(this, pre_all_inputs.get(0)); } } }), $("<span></span>", { "class": "btn btn-default btn-sm", text: "Copy output", "data-toggle": "tooltip", "data-trigger": "manual", "data-title": "Copied!", on:{ click: function(){ copyExample.call(this, pre_all_outputs.get(0)); } } }) ), pre_all_inputs, pre_all_outputs ) ) ); });