×
新規記事を作成
ここにページのタイトルを記入:
We currently have 2 articles on 政治ボールwiki 日本語版. Type your article name above or click on one of the titles below and start writing!



    政治ボールwiki 日本語版

    注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。

    • Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
    • Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
    • Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください。
    $(function() {
    	window.PBWTools = {
    		collapseToolbar: function () {
    			var toolbarCollapsed = mw.storage.get("pbw-toolbar-collapsed") !== "true" ? false : true;
    			$("<div>").addClass("cosmos-toolbar-collapse-button").appendTo("#cosmos-toolbar");
    			$(".cosmos-toolbar-collapse-button").click(function(target) {
    				$("#cosmos-toolbar").toggleClass("cosmos-toolbar-collapsed");
    				mw.storage.set("pbw-toolbar-collapsed", !toolbarCollapsed);
    			});
    			if (toolbarCollapsed) {
    				$("#cosmos-toolbar").addClass("cosmos-toolbar-collapsed");	
    			}
    		},
    		init: function () {
    			mw.loader.using("mediawiki.storage").then(this.collapseToolbar);
    		}
    	};
    	window.PBWTools.init();
    });
    /*font tag for HTML5*/
    document.querySelectorAll("font").forEach(function(element){
    	element.style.color=element.getAttribute("color")||"";
    	element.style.fontFamily=element.getAttribute("face")||"";
    	element.style.fontSize=["x-small","small","medium","large","x-large","xx-large","xxx-large"][Number(element.getAttribute("size"))-1||2]||"";
    });
    /*cosmos-banner*/
    (function(){
    	let myHomeLink=document.createElement("div");
    	myHomeLink.innerHTML=`<a href="/">ポリティボールwiki</a>`;
    	myHomeLink.id="mw-banner-home";
    	myHomeLink.classList.add("visible");
    	document.getElementById("cosmos-banner-content").prepend(myHomeLink);
    	if(window.innerWidth>850&&window.scrollY<60){
    		document.getElementById("cosmos-banner").classList.add("banner-position-top");
    		myHomeLink.classList.remove("visible");
    	}
    })();
    window.onscroll=function(){
    let cosmosBanner=document.getElementById("cosmos-banner");
    if(window.scrollY>60){
    	if(document.querySelector("html").classList.contains("client-darkmode")){
    		cosmosBanner.style.background="rgba(20,20,20,0.7)";
    	}
    	else{
    		cosmosBanner.style.background="rgba(20,20,20,0.75)";
    	}
    	cosmosBanner.style.boxShadow="0 2px 5px rgba(0, 0, 0, .4)";
    	cosmosBanner.classList.remove("banner-position-top");
    	document.getElementById("mw-banner-home").classList.add("visible");
    }
    else{
    	cosmosBanner.style.background="";
    	cosmosBanner.style.boxShadow="";
    	if(window.innerWidth>850){
    		cosmosBanner.classList.add("banner-position-top");
    		document.getElementById("mw-banner-home").classList.remove("visible");
    	}
    	else{
    		cosmosBanner.classList.remove("banner-position-top");
    	}
    }
    document.body.style.setProperty("--theme-body-background-position","center "+(window.scrollY/(document.body.scrollHeight-window.innerHeight)*((1080-window.innerHeight)/(1080/window.innerHeight*3)))+"px");
    };
    setInterval(function(){
    	/*spoiler*/
    	document.querySelectorAll(".mw-spoiler").forEach(function(element){
    		element.title="クリックで表示";
    		element.onclick=function(e){
    		if(element.classList.contains("mw-spoiler")){
    			e.preventDefault();
    		}
    		element.classList.remove("mw-spoiler");
    		element.classList.add("mw-spoiler-visible");
    		element.title="";
    		};
    	});
    	if(document.body.classList.contains("talk-comment-mode--cs")){
    			document.querySelectorAll("span[data-mw-comment-end]:not(h2 span):not(.splited)").forEach(function(element){
    			element.after(document.createElement("hr"));
    			element.classList.add("splited");
    		});
    	}
    	//Reply-Link
    	if(document.body.classList.contains("ns-talk")){
    			document.querySelectorAll(".ext-discussiontools-init-replylink-buttons:not(.added):not(.ext-discussiontools-ui-replyWidget-preview .ext-discussiontools-init-replylink-buttons)").forEach(function(element){
    			let myLink=document.createElement("a");
    			myLink.innerHTML="返信リンクを追加";
    			myLink.style.cssText="margin-left:1em;display:none;";
    			element.after(myLink);
    			element.classList.add("added");
    			setInterval(function(){
    				if(element.classList.contains("ext-discussiontools-init-replylink-active")){
    					myLink.style.fontWeight="bold";
    				}
    				else{
    					myLink.style.fontWeight="";
    				}
    				if(document.querySelector(".ve-ce-attachedRootNode")){
    					myLink.style.display="inline";
    					if(element.classList.contains("ext-discussiontools-init-replylink-active")&&!element.classList.contains("clicked")&&document.getElementById("reply-button-click")&&document.getElementById("reply-button-click").checked){
    						setTimeout(function(){
    							myLink.click();
    						},500);
    						element.classList.add("clicked");
    					}
    				}
    				else{
    					myLink.style.display="none";
    					element.classList.remove("clicked");
    				}
    			},10);
    			myLink.addEventListener("click",function(){
    				document.querySelector(".ve-ce-attachedRootNode").focus();
    				setTimeout(function(){
    					document.querySelector(".ve-ce-attachedRootNode span").innerHTML="[[{{FULLPAGENAME}}#"+element.getAttribute("data-mw-thread-id")+"|>>返信先]]\n\n"+document.querySelector(".ve-ce-attachedRootNode span").innerHTML;
    					document.querySelector(".ve-ce-attachedRootNode").blur();
    					document.querySelector(".ve-ce-attachedRootNode").focus();
    				},1000);
    			});
    		});
    		document.querySelectorAll("a:not(.added)").forEach(function(element){
    			if(decodeURI(element.href).indexOf("#c-")!=-1&&element.classList.contains("mw-selflink-fragment")){
    					let inputNode=document.getElementById(decodeURI(element.href).split("#")[1]).parentElement.cloneNode(true);
    					element.title=inputNode.textContent;
    					element.classList.add("added");
    			}
    		});
    	}
    },100);
    /*Snow Flake Fnc
    (function(){
    	for(var yukiLength=0;yukiLength<(Math.round(document.body.offsetHeight/40)<500?Math.round(document.body.offsetHeight/40):500);yukiLength++){
    	let myimg=document.createElement("img");
    	myimg.src="https://japolandballfanon.miraheze.org/wiki/Special:FilePath/Pagesnowflake.svg";
    	myimg.width="40";
    	myimg.height="40";
    	myimg.style.cssText="position:absolute;";
    	myimg.style.top=(Math.floor(Math.random() *(document.body.offsetHeight-40))+1)+"px";
    	myimg.style.left=(Math.floor(Math.random() *(document.body.offsetWidth-40))+1)+"px";
    	document.body.style.background=window.getComputedStyle(document.getElementById("mw-content")).background;
    	document.body.appendChild(myimg);
    	myimg.onclick=function(){
    	myimg.remove();	
    	};
    	}
    })();
    */
    function addScript(src){
    	let scr=document.createElement("script");
    	scr.src="https://japolandball.miraheze.org/wiki/MediaWiki:"+src+".js?action=raw&ctype=text/javascript";
    	document.body.appendChild(scr);
    }
    function importItem(href,rel,element="head"){
    	let link=document.createElement("link");
    	link.href=href;
    	link.rel=rel;
    	document.querySelector(element).appendChild(link);
    }
    /*iconMaker*/
    addScript("IconMaker");
    /*AutoFill*/
    addScript("AutoFill");
    /*AbuseFilter*/
    addScript("AbuseFilter");
    /*limited design*/
    addScript("LimitedDesign");
    /*ArticleTemplate*/
    addScript("ArticleTemplate");
    /*UserColor*/
    addScript("LinkColor");
    
    (function(){
    	document.querySelector(".mw-html-checkbox")?document.querySelectorAll(".mw-html-checkbox").forEach(function(element){
    		let myZobj={};
    		let checkbox=document.createElement("input");
    		checkbox.type="checkbox";
    		element.innerHTML.replaceAll("\n","").split(";").forEach(function(mypp){
    			myZobj[mypp.split(":")[0].replaceAll("-","")]=mypp.split(":")[1];
    		});
    		myZobj.boxsize?checkbox.style.width=myZobj.boxsize:"";
    		myZobj.boxsize?checkbox.style.height=myZobj.boxsize:"";
    		if(myZobj.class){
    			myZobj.class.split(" ").forEach(function(classData){
    				checkbox.classList.add(classData);
    			});
    		}
    		myZobj.id?checkbox.id=myZobj.id:"";
    		myZobj.value?checkbox.value=myZobj.value:"";
    		myZobj.checked=="true"?checkbox.checked=true:"";
    		myZobj.disabled=="true"?checkbox.disabled=true:"";
    		if(myZobj.label){
    			let mylabel=document.createElement("label");
    			mylabel.style.userSelect="none";
    			myZobj.labelfontsize?mylabel.style.fontSize=myZobj.labelfontsize:"";
    			if(myZobj.labelposition&&myZobj.labelposition=="after"){
    				mylabel.innerHTML=myZobj.label;
    				mylabel.appendChild(checkbox);
    				mylabel.innerHTML+=`<br><span style="font-size:${myZobj.detailfontsize||"0.8em"};">${myZobj.detail||""}</span>`;
    			}
    			else{
    				mylabel.appendChild(checkbox);
    				mylabel.innerHTML+=myZobj.label+"<br>"+(myZobj.detail?(`<span style="margin-left:${myZobj.boxsize||"1em"};"></span>`):"")+`<span style="font-size:${myZobj.detailfontsize||"0.8em"};">${myZobj.detail||""}</span>`;
    			}
    			element.after(mylabel);
    		}
    		else{
    			element.after(checkbox);
    		}
    		element.remove();
    	}):"";
    	document.querySelector(".mw-html-text")?document.querySelectorAll(".mw-html-text").forEach(function(element){
    		let myZobj={};
    		let mytextbox=document.createElement("input");
    		mytextbox.type="text";
    		element.innerHTML.replaceAll("\n","").split(";").forEach(function(mypp){
    			myZobj[mypp.split(":")[0].replaceAll("-","")]=mypp.split(":")[1];
    		});
    		mytextbox.value=myZobj.value||"";
    		mytextbox.placeholder=myZobj.placeholder||"";
    		if(myZobj.class){
    			myZobj.class.split(" ").forEach(function(classData){
    				mytextbox.classList.add(classData);
    			});
    		}
    		mytextbox.id=myZobj.id||"";
    		mytextbox.style.height=myZobj.height||"";
    		myZobj.readonly=="true"?mytextbox.readOnly=true:"";
    		myZobj.disabled=="true"?mytextbox.disabled=true:"";
    		element.getAttribute("style")?mytextbox.style.cssText=element.getAttribute("style"):"";
    		element.after(mytextbox);
    		element.remove();
    	}):"";
    	document.getElementById("mw-upload-polandball-rule-checkbox")?document.getElementById("mw-upload-polandball-rule-checkbox").onchange=function(e){
    		if(e.target.checked){
    			document.getElementById("mw-upload-polandball-rule-fieldset").style.display="block";
    			document.querySelector("input[name='wpUpload']").onclick=function(event){
    				event.preventDefault();
    				let isCheckboxChecked=true;
    				for(let myElementLength=0;myElementLength<document.querySelectorAll(".mw-upload-polandball-rule-confirm-checkbox").length;myElementLength++){
    					if(document.querySelectorAll(".mw-upload-polandball-rule-confirm-checkbox")[myElementLength].checked==false){
    						isCheckboxChecked=false;
    						break;
    					}
    				}
    				if(isCheckboxChecked){
    					document.querySelector("input[name='wpUpload']").onclick=null;
    					document.querySelector("input[name='wpUpload']").click();
    				}
    				else{
    					window.alert("ポーランドボールのルールに則ったイラストをアップロードしてください。");
    					location.hash="";
    					location.hash="mw-upload-polandball-rule-fieldset";
    				}
    			};
    		}
    		else{
    			document.getElementById("mw-upload-polandball-rule-fieldset").style.display="none";
    			document.querySelector("input[name='wpUpload']").onclick=null;
    		}
    	}:"";
    	if(document.getElementById("wpDestFile")&&document.getElementById("wpDestFile").value!=""){
    		document.getElementById("mw-upload-polandball-rule-parent-div").innerHTML="<span style='font-size:1.2em;'>※回答済み</span>";
    	}
    	document.querySelector(".filehistory,.mw-blocklist")?document.querySelectorAll(".filehistory,.mw-blocklist").forEach(function(element){
    		let mydiv=document.createElement("div");
    		mydiv.style.cssText="max-width:100%;overflow-x:auto;";
    		mydiv.appendChild(element.cloneNode(true));
    		element.after(mydiv);
    		element.remove();
    	}):"";
    	if(mw.config.values.wgAction=="edit"||mw.config.values.wgAction=="submit"){
    		let mylabel=document.createElement("label");
    		mylabel.style.cssText="font-size:1.2em;font-weight:bold;";
    		mylabel.innerHTML=`<input type="checkbox" id="mw-edit-rule-checker" style="width:1.5em;height:1.5em;margin-right:1.5em"><a href="Project:ルール" style="color:var(--theme-link-color) !important;" target="_blank">ルール</a>をよく読み、これに遵守します。`;
    		document.getElementById("editpage-copywarn").after(document.createElement("br"));
    		document.getElementById("editpage-copywarn").after(document.createElement("br"));
    		document.getElementById("editpage-copywarn").after(mylabel);
    		document.getElementById("wpSave").onclick=function(e){
    			e.preventDefault();
    			if(document.getElementById("mw-edit-rule-checker").checked){
    				document.getElementById("wpSave").onclick=null;
    				document.getElementById("wpSave").click();
    			}
    			else{
    				window.alert("wikiのルールに則った編集を行ってください。過激な発言等は削除されます。");
    				if(window.confirm("ルールに同意して保存しますか?\n編集画面に戻る際はキャンセルを選択してください。")){
    					document.getElementById("mw-edit-rule-checker").checked=true;
    					document.getElementById("wpSave").onclick=null;
    					document.getElementById("wpSave").click();
    				}
    			}
    		};
    	}
    	if(document.getElementById("template-cursor")){
    		document.querySelector("html").style.cssText="--theme-page-cursor:url(/wiki/Special:FilePath/"+document.getElementById("template-cursor-auto").innerHTML+"),auto !important;--theme-page-cursor-link:url(/wiki/Special:FilePath/"+document.getElementById("template-cursor-pointer").innerHTML+"),pointer !important;";
    	}
    	if(document.getElementById("mw-upload-file-uploader")){
    		let mydiv=document.createElement("div");
    		let myspan=document.createElement("span");
    		mydiv.id="mw-upload-file-uploader-area";
    		myspan.id="mw-upload-file-uploader-text";
    		myspan.innerHTML="ファイルをここにドロップ";
    		mydiv.appendChild(myspan);
    		document.body.appendChild(mydiv);
    		document.getElementById("mw-upload-file-uploader").remove();
    		window.ondragover=function(e){
    			e.preventDefault();
    			document.getElementById("mw-upload-file-uploader-area").style.display="block";
    		};
    		document.body.onmousemove=function(){
    			document.getElementById("mw-upload-file-uploader-area").style.display="none";
    		};
    		document.body.ondrop=function(e){
    			e.preventDefault();
    			document.querySelector("input[type='file']").files=e.dataTransfer.files;
    			document.getElementById("wpDestFile").value==""?document.getElementById("wpDestFile").value=document.querySelector("input[type='file']").files[0].name:"";
    			document.getElementById("mw-upload-file-uploader-area").style.display="none";
    		};
    	}
    	//Template:LCS
    	if(document.getElementById("template-lcs")||mw.config.values.wgNamespaceNumber==1){
    		document.body.classList.add("talk-comment-mode--cs");
    	}
    	//Template:DSC
    	if(document.getElementById("template-dsc")){
    		document.body.classList.remove("talk-comment-mode--cs");
    	}
    	//Talk Radio Button
    	if(document.getElementById("top-notice-ns")&&document.body.classList.contains("ns-talk")){
    		let myForm=document.createElement("form");
    		let myLabelDefault=document.createElement("label");
    		let myLabelCS=document.createElement("label");
    		let myLabelReply=document.createElement("label");
    		myLabelDefault.innerHTML=`<input type="radio" name="talkCommentMode" id="talk-comment-mode--default" value="default">デフォルトモード`;
    		myLabelDefault.style.cssText="margin-right:1em;";
    		myLabelCS.innerHTML=`<input type="radio" name="talkCommentMode" id="talk-comment-mode--cs" value="cs">疑似CS`;
    		myLabelCS.style.cssText="margin-right:1em;";
    		myLabelReply.innerHTML=`<input type="checkbox" id="reply-button-click"><a>>>返信先</a>をデフォルトで入力`;
    		myLabelReply.style.cssText="margin-right:1em;";
    		myForm.id="talk-comment-form";
    		myForm.style.cssText="border-bottom:1px solid var(--theme-text-color);font-size:1.1em;margin-bottom:0.8em;";
    		myForm.appendChild(myLabelDefault);
    		myForm.appendChild(myLabelCS);
    		myForm.appendChild(myLabelReply);
    		myForm.innerHTML+=`<br><label style="margin-right:1em;"><input type="checkbox" id="template-scroll-button-visibility">スクロールボタンを表示</label>`;
    		document.getElementById("top-notice-ns").after(myForm);
    		//talk-comment-mode
    		if(document.body.classList.contains("talk-comment-mode--cs")){
    			document.getElementById("talk-comment-mode--cs").checked=true;
    		}
    		else{
    			document.getElementById("talk-comment-mode--default").checked=true;
    		}
    		//reply-button-click
    		if(localStorage.getItem("reply-button-click")){
    			if(localStorage.getItem("reply-button-click")=="yes"){
    				document.getElementById("reply-button-click").checked=true;
    			}
    		}
    		else{
    			localStorage.setItem("reply-button-click","yes");
    			document.getElementById("reply-button-click").checked=true;
    		}
    		//scroll-button-visibility
    		if(localStorage.getItem("scroll-button-visibility")){
    			if(localStorage.getItem("scroll-button-visibility")=="visible"){
    				document.getElementById("template-scroll-button-visibility").checked=true;
    			}
    		}
    		else{
    			localStorage.setItem("scroll-button-visibility","visible");
    			document.getElementById("template-scroll-button-visibility").checked=true;
    		}
    		myForm.oninput=function(){
    			if(myForm.talkCommentMode.value=="cs"){
    				document.body.classList.add("talk-comment-mode--cs");
    			}
    			else{
    				document.body.classList.remove("talk-comment-mode--cs");
    				document.querySelectorAll("span.splited+hr").forEach(function(element){
    					element.remove();
    				});
    				document.querySelectorAll("span.splited").forEach(function(element){
    					element.classList.remove("splited");
    				});
    			}
    		};
    		document.getElementById("reply-button-click").onchange=function(){
    			if(document.getElementById("reply-button-click").checked){
    				localStorage.setItem("reply-button-click","yes");
    			}
    			else{
    				localStorage.setItem("reply-button-click","no");
    			}
    		};
    		document.getElementById("template-scroll-button-visibility").onchange=function(){
    			if(document.getElementById("template-scroll-button-visibility").checked){
    				localStorage.setItem("scroll-button-visibility","visible");
    			}
    			else{
    				localStorage.setItem("scroll-button-visibility","hidden");
    			}
    		};
    	}
    	//Scroll Button
    	if(document.body.classList.contains("ns-talk")||document.getElementById("template-scroll-button")){
    		let myScrollUpBtn=document.createElement("span");
    		let myScrollDownBtn=document.createElement("span");
    		myScrollUpBtn.classList.add("template-scroll-button");
    		myScrollDownBtn.classList.add("template-scroll-button");
    		myScrollUpBtn.style.bottom="9em";
    		myScrollDownBtn.style.bottom="5em";
    		myScrollUpBtn.innerHTML=`<span class="template-scroll-button-mark template-scroll-button-mark-up"></span>`;
    		myScrollDownBtn.innerHTML=`<span class="template-scroll-button-mark template-scroll-button-mark-down"></span>`;
    		document.body.appendChild(myScrollUpBtn);
    		document.body.appendChild(myScrollDownBtn);
    		myScrollUpBtn.onclick=function(){
    			document.querySelector("html").style.scrollBehavior="smooth";
    			window.scroll(0,0);
    			document.querySelector("html").style.scrollBehavior="";
    		};
    		myScrollDownBtn.onclick=function(){
    			document.querySelector("html").style.scrollBehavior="smooth";
    			window.scroll(0,document.body.offsetHeight);
    			document.querySelector("html").style.scrollBehavior="";
    		};
    		setInterval(function(){
    			if(document.getElementById("template-scroll-button-visibility")){
    				if(document.getElementById("template-scroll-button-visibility").checked){
    					myScrollUpBtn.style.display="";
    					myScrollDownBtn.style.display="";
    				}
    				else{
    					myScrollUpBtn.style.display="none";
    					myScrollDownBtn.style.display="none";
    				}
    			}
    		},10);
    	}
    	//color-menu
    	if(mw.config.values.wgUserName&&(mw.config.values.wgAction=="edit"||mw.config.values.wgAction=="submit"||document.body.classList.contains("ns-talk"))){
    		function toHEX(rgbdata){
    			let rgb=rgbdata.replaceAll("rgba(","").replaceAll("rgb(","").replaceAll(")","").replaceAll(" ","").split(",");
    			rgb=rgb.map(function(data){
    				return Number(data);
    			});
    			return "#"+rgb.map(function(data){
    				return ("0"+data.toString(16)).slice(-2);
    			}).join("");
    		}
    		function nn(number){
    			if(number.length==1){
    				number="0"+number;
    			}
    			return number;
    		}
    		let myColor=document.createElement("span");
    		let myMenu=document.createElement("div");
    		myColor.id="colorTestButton";
    		myColor.innerHTML="🎨";
    		myMenu.id="colorTestMenu";
    		myMenu.innerHTML=`色合い<br>
    		<div class="colorTestMenu-colorSelector">文字色<br><input type="color" id="colorTestMenu-color"><br>透明度<br><input type="range" min="0" max="1" value="1" data-value="1" step="0.1" id="colorTestMenu-color-opacity"><span id="colorTestMenu-color-opacity-value" class="colorTestMenu-output">10</span></div>
    		<div class="colorTestMenu-colorSelector">背景色<br><input type="color" id="colorTestMenu-bgcolor"><br>透明度<br><input type="range" min="0" max="1" value="0" data-value="0" step="0.1" id="colorTestMenu-bgcolor-opacity"><span id="colorTestMenu-bgcolor-opacity-value" class="colorTestMenu-output">0</span></div><br>
    		プレビュー:<br>
    		<div id="colorTestMenu-preview" class="colorTestMenu-result">テキスト<br><b>太字テキスト</b><br><a style="color:var(--theme-link-color)">リンクテキスト</a></div>
    		CSS:<br>
    		<div class="colorTestMenu-result" id="colorTestMenu-cssText" style="height:2em;user-select:all;">background:;color:;</div>
    		<input type="button" class="colorTestMenu-copyButton" data-target="colorTestMenu-cssText,innerHTML" value="CSSをコピー"><input type="button" value="リセット" class="colorTestMenu-reset">
    		<hr>
    		混色<br>
    		<div class="colorTestMenu-colorSelector">色A<br><input type="color" id="colorTestMenu-colorA" value="#000000"><br>透明度<br><input type="range" min="0" max="1" value="1" step="0.1" id="colorTestMenu-colorA-opacity"><span id="colorTestMenu-colorA-opacity-value" class="colorTestMenu-output">10</span></div>
    		<div class="colorTestMenu-colorSelector">色B<br><input type="color" id="colorTestMenu-colorB" value="#ff0000"><br>透明度<br><input type="range" min="0" max="1" value="1" step="0.1" id="colorTestMenu-colorB-opacity"><span id="colorTestMenu-colorB-opacity-value" class="colorTestMenu-output">10</span></div><br>
    		プレビュー:<br>
    		<div id="colorTestMenu-mix-preview" class="colorTestMenu-result" style="background:color-mix(in srgb,red,black);"></div>
    		カラーコード:<br>
    		<div class="colorTestMenu-result" id="colorTestMenu-mix-colorCode" style="height:2em;user-select:all;">color(srgb 0.5 0 0)</div>
    		<input type="button" class="colorTestMenu-copyButton" data-target="colorTestMenu-mix-colorCode,innerHTML" value="カラーコードをコピー">
    		<hr>
    		カスタムプロパティ一覧<br>
    		<select id="colorTestMenu-varTable"></select><br>
    		プレビュー:<br>
    		ライトモード:<div class="colorTestMenu-varTable-modepreview"><div class="client-defaultmode"></div></div><br>
    		ダークモード:<div class="colorTestMenu-varTable-modepreview"><div class="client-darkmode"></div></div><br>
    		CSS:<br>
    		<div class="colorTestMenu-result" id="colorTestMenu-varTable-property" style="height:2em;user-select:all;"></div>
    		<input type="button" class="colorTestMenu-copyButton" data-target="colorTestMenu-varTable-property,innerHTML" value="CSSをコピー"><br><br>
    		値として利用:<br>
    		<div class="colorTestMenu-result" id="colorTestMenu-varTable-value" style="height:2em;user-select:all;"></div>
    		<input type="button" class="colorTestMenu-copyButton" data-target="colorTestMenu-varTable-value,innerHTML" value="値をコピー">
    		`;
    		document.body.appendChild(myColor);
    		document.body.appendChild(myMenu);
    		myColor.onclick=function(){
    			myMenu.classList.toggle("visible");
    			if(myMenu.classList.contains("visible")){
    				let closeArea=document.createElement("div");
    				closeArea.style.cssText="background:transparent;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:2999;";
    				closeArea.id="colorTestCloseArea";
    				closeArea.onclick=function(){
    					myColor.click();
    				};
    				document.body.appendChild(closeArea);
    				myColor.innerHTML="✕";
    			}
    			else{
    				myColor.innerHTML="🎨";
    				document.getElementById("colorTestCloseArea").remove();
    			}
    		};
    		let sbody=document.createElement("div");
    		sbody.style.cssText="background:var(--theme-main-color);color:var(--theme-text-color);";
    		document.body.appendChild(sbody);
    		document.getElementById("colorTestMenu-color").value=document.getElementById("colorTestMenu-color").dataset.value=toHEX(window.getComputedStyle(sbody).color);
    		document.getElementById("colorTestMenu-bgcolor").value=document.getElementById("colorTestMenu-bgcolor").dataset.value=toHEX(window.getComputedStyle(sbody).getPropertyValue("background-color"));
    		document.getElementById("colorTestMenu-cssText").innerHTML="background:"+toHEX(window.getComputedStyle(sbody).getPropertyValue("background-color"))+"00;color:"+toHEX(window.getComputedStyle(sbody).color)+"ff;";
    		sbody.remove();
    		function inputAreaFnc(){
    		let color=document.getElementById("colorTestMenu-color");
    		let coloropa=document.getElementById("colorTestMenu-color-opacity");
    		let bg=document.getElementById("colorTestMenu-bgcolor");
    		let bgopa=document.getElementById("colorTestMenu-bgcolor-opacity");
    		let colorA=document.getElementById("colorTestMenu-colorA");
    		let colorAopa=document.getElementById("colorTestMenu-colorA-opacity");
    		let colorB=document.getElementById("colorTestMenu-colorB");
    		let colorBopa=document.getElementById("colorTestMenu-colorB-opacity");
    		document.getElementById("colorTestMenu-preview").style.cssText=document.getElementById("colorTestMenu-cssText").innerHTML="background:"+bg.value+nn(Math.round(bgopa.value*255).toString(16))+";color:"+color.value+nn(Math.round(coloropa.value*255).toString(16))+";";
    		document.getElementById("colorTestMenu-color-opacity-value").innerHTML=coloropa.value*10;
    		document.getElementById("colorTestMenu-bgcolor-opacity-value").innerHTML=bgopa.value*10;
    		let mix=document.createElement("div");
    		mix.style.background="color-mix(in srgb,"+colorA.value+nn(Math.round(colorAopa.value*255).toString(16))+","+colorB.value+nn(Math.round(colorBopa.value*255).toString(16))+")";
    		document.body.appendChild(mix);
    		document.getElementById("colorTestMenu-mix-preview").style.background=document.getElementById("colorTestMenu-mix-colorCode").innerHTML=window.getComputedStyle(mix).getPropertyValue("background-color");
    		mix.remove();
    		document.getElementById("colorTestMenu-colorA-opacity-value").innerHTML=colorAopa.value*10;
    		document.getElementById("colorTestMenu-colorB-opacity-value").innerHTML=colorBopa.value*10;
    		}
    		let customProperty=[["文字色","--theme-text-color"],["リンク色","--theme-link-color"],["hover時のリンク色","--theme-link-color--hover"],["メインカラー","--theme-main-bg-color"],["中間色","--theme-page-second-color"]];
    		let cps=document.getElementById("colorTestMenu-varTable");
    		customProperty.forEach(function(data){
    			let myOption=document.createElement("option");
    			myOption.innerHTML=data[0];
    			myOption.value=data[1];
    			cps.appendChild(myOption);
    		});
    		document.getElementById("colorTestMenu-varTable-value").innerHTML=customProperty[0][1]+":;";
    		function selectVarTableFnc(){
    			document.getElementById("colorTestMenu-varTable-property").innerHTML=cps.value+":;";
    			document.getElementById("colorTestMenu-varTable-value").innerHTML="var("+cps.value+")";
    			document.querySelectorAll(".colorTestMenu-varTable-modepreview").forEach(function(element){
    				element.querySelector("div").style.background="var("+cps.value+")";
    			});
    		}
    		selectVarTableFnc();
    		cps.oninput=selectVarTableFnc;
    		myMenu.oninput=inputAreaFnc;
    		document.querySelector(".colorTestMenu-copyButton")?document.querySelectorAll(".colorTestMenu-copyButton").forEach(function(element){
    			if(window.isSecureContext){
    				element.onclick=function(){
    					let originValue=element.value;
    					navigator.clipboard.writeText(document.getElementById(element.dataset.target.split(",")[0])[element.dataset.target.split(",")[1]]);
    					element.value="コピーしました";
    					element.disabled=true;
    					setTimeout(function(){
    						element.value=originValue;
    						element.disabled=false;
    					},1000);
    				};
    			}
    			else{
    				element.remove();
    			}
    		}):"";
    		document.querySelector(".colorTestMenu-reset")?document.querySelectorAll(".colorTestMenu-reset").forEach(function(reset){
    			reset.onclick=function(){
    				document.querySelectorAll("#colorTestMenu input[data-value]").forEach(function(element){
    					element.value=element.dataset.value;
    					inputAreaFnc();
    				});
    			};
    		}):"";
    	}
    	//upload-icon
    	if(mw.config.values.wgUserName){
    		let uploadIcon=document.createElement("a");
    		uploadIcon.classList.add("wds-button");
    		uploadIcon.classList.add("wds-is-secondary");
    		uploadIcon.href="https://japolitiball.myht.org/index.php?title=Special:Upload";
    		uploadIcon.innerHTML="<img src='https://japolandball.miraheze.org/wiki/Special:FilePath/Upload-icon.svg' width='22' height='22' class='wds-icon-small'>";
    		uploadIcon.title="ファイルをアップロード";
    		document.getElementById("createpage").after(uploadIcon);
    	}
    	//Template:CF
    	if(document.getElementById("template-cf")){
    		let myStorage=localStorage.getItem("template-cf")||"";
    		let visible=true;
    		for(let data of myStorage.split("\n")){
    			if(mw.config.values.wgPageName==data){
    				visible=false;
    				break;
    			}
    		}
    		if(visible){
    			let mydiv=document.createElement("div");
    			mydiv.classList.add("template-confirm");
    			mydiv.id="template-cf-confirmbox";
    			mydiv.innerHTML=`<div class="template-confirm-main" id="template-cf-confirmbox-main" style="background:${document.getElementById("template-cf-bgcolor").innerHTML};color:${document.getElementById("template-cf-color").innerHTML};"><span style="font-size:1.2em;font-weight:bold;display:inline-block;margin-bottom:0.5em;">${document.getElementById("template-cf-title").innerHTML}</span>
    			<br>
    			${document.getElementById("template-cf-message").innerHTML}<br><br>
    			<label style="font-size:0.9em;position:relative;top:1em;"><input type="checkbox" id="template-cf-checkbox" style="width:0.9em;height:0.9em;">次回からは表示しない</label>
    			<br>
    			<a href="/wiki/Template:CF/doc" style="--theme-link-color:#003399;font-size:0.8em;position:relative;top:2em;">詳細</a><br>
    			<div style="text-align:right;">
    			<input type="button" value="いいえ" id="template-cf-cancel-btn">
    			<input type="button" value="はい" id="template-cf-ok-btn" style="background:var(--theme-main-bg-color);color:white;border-color:var(--theme-main-bg-color);">
    			</div></div>`;
    			document.body.appendChild(mydiv);
    			window.scroll(0,0);
    			document.body.style.overflow="hidden";
    			document.getElementById("mw-content").style.filter="blur(5px)";
    			document.getElementById("template-cf-confirmbox-main").style.top=((window.innerHeight-document.getElementById("template-cf-confirmbox-main").offsetHeight)/2)+"px";
    			document.getElementById("template-cf-cancel-btn").onclick=function(){
    				document.getElementById("template-cf-checkbox").checked=false;
    				document.querySelector("#template-cf-return a").click();
    			};
    			document.getElementById("template-cf-ok-btn").onclick=function(){
    				document.body.style.overflow="auto";
    				document.getElementById("mw-content").style.filter="";
    				if(document.getElementById("template-cf-checkbox").checked){
    					myStorage+=mw.config.values.wgPageName+"\n";
    					localStorage.setItem("template-cf",myStorage);
    				}
    				mydiv.remove();	
    			};
    			document.getElementById("template-cf-ok-btn").focus();
    		}
    	}
    	if(document.getElementById("template-cf-form")){
    		let myStorage=localStorage.getItem("template-cf");
    		let textarea=document.createElement("textarea");
    		textarea.value=myStorage;
    		textarea.oninput=function(){
    			localStorage.setItem("template-cf",textarea.value);
    		};
    		textarea.onblur=function(){
    			if(textarea.value.split("")[textarea.value.length-1]!="\n"&&textarea.value!=""){
    				textarea.value+="\n";
    				localStorage.setItem("template-cf",textarea.value);
    			}
    		};
    		textarea.style.cssText="width:90%;height:300px;font-size:1em;";
    		document.getElementById("template-cf-textarea").after(textarea);
    		document.getElementById("template-cf-textarea").remove();
    		document.getElementById("template-cf-reload").onclick=function(e){
    			if(!e.target.classList.contains("clicked")){
    				let loadmsg=document.createElement("div");
    				textarea.style.display="none";
    				loadmsg.innerHTML="読み込み中...";
    				textarea.after(loadmsg);
    				e.target.classList.add("clicked");
    				setTimeout(function(){
    					textarea.value=localStorage.getItem("template-cf");
    					textarea.style.display="inline-block";
    					loadmsg.remove();
    					e.target.classList.remove("clicked");
    				},1000);
    			}
    		};
    	}
    	/*template-imageLoad*/
    	if(document.getElementById("template-imageLoad")){
    		document.querySelectorAll("img").forEach(function(element){
    			element.src?element.src=element.src:"";
    		});
    	}
    	//Button Tag
    	document.querySelector(".mw-html-button")?document.querySelectorAll(".mw-html-button").forEach(function(element){
    		let myZobj={};
    		let mybtn=document.createElement("input");
    		mybtn.type="button";
    		element.innerHTML.replaceAll("\n","").split(";").forEach(function(mypp){
    			myZobj[mypp.split(":")[0].replaceAll("-","")]=mypp.split(":")[1];
    		});
    		mybtn.value=myZobj.value||"";
    		if(myZobj.class){
    			myZobj.class.split(" ").forEach(function(classData){
    				mybtn.classList.add(classData);
    			});
    		}
    		mybtn.id=myZobj.id||"";
    		mybtn.style.height=myZobj.height||"";
    		myZobj.readonly=="true"?mybtn.readOnly=true:"";
    		myZobj.disabled=="true"?mybtn.disabled=true:"";
    		element.getAttribute("style")?mybtn.style.cssText=element.getAttribute("style"):"";
    		element.after(mybtn);
    		element.remove();
    	}):"";
    	//File Tag
    	document.querySelector(".mw-html-file")?document.querySelectorAll(".mw-html-file").forEach(function(element){
    		let myZobj={};
    		let mybtn=document.createElement("input");
    		mybtn.type="file";
    		element.innerHTML.replaceAll("\n","").split(";").forEach(function(mypp){
    			myZobj[mypp.split(":")[0].replaceAll("-","")]=mypp.split(":")[1];
    		});
    		if(myZobj.class){
    			myZobj.class.split(" ").forEach(function(classData){
    				mybtn.classList.add(classData);
    			});
    		}
    		mybtn.id=myZobj.id||"";
    		myZobj.readonly=="true"?mybtn.readOnly=true:"";
    		myZobj.disabled=="true"?mybtn.disabled=true:"";
    		element.getAttribute("style")?mybtn.style.cssText=element.getAttribute("style"):"";
    		element.after(mybtn);
    		element.remove();
    	}):"";
    	//Extension Conversion
    	if(document.getElementById("page-ec")){
    	function topngFnc(){
    			let myfile=document.getElementById("mypage-topng-upload-btn");
    			let r=new FileReader();
    			r.readAsDataURL(myfile.files[0]);
    			r.onload=function(){
    				let myimg=new Image();
    				myimg.src=r.result;
    				myimg.onload=function(){
    					let mycanvas=document.createElement("canvas");
    					let myctx=mycanvas.getContext("2d");
    					mycanvas.height=myimg.height;
    					mycanvas.width=myimg.width;
    					myctx.drawImage(myimg,0,0,mycanvas.width,mycanvas.height);
    					document.getElementById("mypage-topng-change-btn").value="ダウンロード";
    					document.getElementById("mypage-topng-upload-btn").style.display="none";
    					document.getElementById("mypage-topng-retry").style.display="inline-block";
    					document.getElementById("mypage-topng-change-btn").onclick=function(){
    						let mya=document.createElement("a");
    						mya.href=mycanvas.toDataURL();
    						mya.download=(document.getElementById("mypage-topng-upload-after-name").value||"download").split(".")[0]+".png";
    						mya.click();
    					};
    					document.getElementById("mypage-topng-retry").onclick=function(){
    						document.getElementById("mypage-topng-upload-btn").style.display="inline-block";
    						document.getElementById("mypage-topng-upload-btn").value="";
    						document.getElementById("mypage-topng-change-btn").value="変換";
    						document.getElementById("mypage-topng-change-btn").onclick=topngFnc;
    						document.getElementById("mypage-topng-upload-data").style.display="none";
    						document.getElementById("mypage-topng-upload-file-name").innerHTML="";
    						document.getElementById("mypage-topng-upload-after-name").value="";
    						document.getElementById("mypage-topng-retry").style.display="none";
    					};
    				};
    				myimg.onerror=function(){
    					window.alert("エラーが発生しました。");	
    				};
    			};
    		}
    		document.getElementById("mypage-topng-upload-btn").onchange=function(e){
    			document.getElementById("mypage-topng-upload-file-name").innerHTML=e.target.files[0].name;
    			document.getElementById("mypage-topng-upload-after-name").value=e.target.files[0].name.split(".")[0];
    			document.getElementById("mypage-topng-upload-data").style.display="block";
    		};
    		document.getElementById("mypage-topng-change-btn").onclick=topngFnc;
    	}
    	let myobj={};
    	document.querySelector("span.sitestyle")?document.querySelector("span.sitestyle").innerHTML.replaceAll("\n","").split(";").forEach(function(mypp){
    		myobj[mypp.split(":")[0]]=mypp.split(":")[1];
    	}):"";
    	document.getElementById("mw-content").style.background=myobj.bgcolor?("color-mix(in srgb, "+myobj.bgcolor+" var(--theme-mode-opacity), rgba(var(--theme-page-color--rgb),0.9))"):"";
    	myobj.maincolor?document.querySelector("html").style.setProperty("--theme-main-bg-color",myobj.maincolor):"";
    	myobj.link?document.querySelector("html").style.setProperty("--theme-link-color",myobj.link):"";
    	myobj.linkhover?document.querySelector("html").style.setProperty("--theme-link-color--hover",myobj.linkhover):"";
    	document.querySelector(".cosmos-header").style.background=myobj.headerbg||"";
    	document.querySelector(".cosmos-header").style.color=myobj.headercolor||"";
    })();
    //jsload-delete
    (function(){
    	document.querySelector(".jsload-delete")?document.querySelectorAll(".jsload-delete").forEach(function(element){
    		element.remove();
    	}):"";
    })();