constmwapi=newmw.Api();letpreviewElem=null;asyncfunctiongetPageHTML(page){try{return(awaitmwapi.get({action:"parse",page:page,prop:"text",formatversion:2})).parse.text;}catch(err){return"<i>Page has no content, or an error occured when attempting to fetch the page</i>";}}functionaddCloseButton(){previewElem.innerHTML+=`<div style="position:absolute;left:calc(100% - 50px);top:0;padding:10px;cursor:pointer;user-select:none;" onclick="closePreview()">[x]</div>`;}functionclosePreview(){previewElem.remove();previewElem=null;constcontent=document.getElementById("content");content.style.width="initial";content.style.height="initial";content.style.overflowY="initial";}asyncfunctionshowPagePreview(page){if(previewElem===null){constcontent=document.getElementById("content");content.style.width="calc(50% - 145px)";content.style.height="calc(100% - 80px)";content.style.overflowY="auto";previewElem=document.createElement("div");previewElem.style.width="calc(50% - 84px)";previewElem.style.overflowX="auto";previewElem.style.position="absolute";previewElem.style.top="80px";previewElem.style.left="calc(50% + 84px)";previewElem.style.padding="20px";previewElem.style.paddingTop="0";previewElem.style.boxSizing="border-box";previewElem.style.background="white";previewElem.style.borderLeft="1px solid #ccc";document.body.appendChild(previewElem);previewElem.innerHTML="<div class='vector-body'><h1 style='margin-top:0'>"+page.replaceAll("_"," ")+"<a style='font-size:0.7em;margin-left:20px;' href='/w/index.php?title="+page+"&action=history'>history</a></h1>"+"Loading page content..."+"</div>";previewElem.innerHTML="<div class='vector-body'><h1 style='margin-top:0'>"+page.replaceAll("_"," ")+"<a style='font-size:0.7em;margin-left:20px;' href='/w/index.php?title="+page+"&action=history'>history</a></h1>"+(awaitgetPageHTML(page))+"</div>";previewElem.style.height=Math.max(Math.min(content.clientHeight,window.innerHeight-80),400)+"px";previewElem.style.overflowY="auto";addCloseButton();for(letelemofArray.prototype.slice.call(previewElem.querySelectorAll(".mw-editsection"))){elem.remove();}for(letelemofArray.prototype.slice.call(previewElem.querySelectorAll(".toc"))){elem.remove();}}else{previewElem.innerHTML="<div class='vector-body'><h1 style='margin-top:0'>"+page.replaceAll("_"," ")+"<a style='font-size:0.7em;margin-left:20px;' href='/w/index.php?title="+page+"&action=history'>history</a></h1>"+(awaitgetPageHTML(page))+"</div>";addCloseButton();}}window.addEventListener("click",(event)=>{if(event.target.tagName.toLowerCase()==="a"&&event.shiftKey){event.preventDefault();constpageName=decodeURIComponent(event.target.href.split("/wiki/")[1]);showPagePreview(pageName);}});