User:維基小霸王/split-for-proofreading.js

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
//to do:

//disable when saving..ok
//saving message..ok
//more preloads..ok
//bigger font and position it..ok
//load when click left bar..ok
//adjust name, add note
//write pages in zhws and enws
//introduce in zhws and enws
//function test(mememe){document.getElementById("n-randompage").innerHTML=mememe+document.getElementById("n-randompage").innerHTML;}
//test("<input type='button' onclick='totop(0)' / >");
//window.linkwikipage= function(display,page) {return "<a <b>h</b>r[[e]]f='"+wgServer+"/wiki/"+page+"'>"+display+"</a>"}
//mw.notify(saving_text + linkwikipage("d","h"));
//function show(){test("<img src='"+window.picurl(filename,pagenumber+1,width)+"'/>")}







//notify message: saving_text + title
saving_text = "Saving ";

//message above the edit box
help_message = "這是校對頁面的文本分割工具,它可以協助你將整卷文本分割到相應的page頁面。請先使用Ctrl+V(不要用鼠標的右鍵菜單!)粘貼上這一冊的內容,然後點擊左鍵選擇此頁的最後一個字,按右鍵保存該內容(也會在粘貼的文本中刪除。)如果想退出此工具,請重新載入頁面。<br />这是校对页面的文本分割工具,它可以协助你将整卷文本分割到相应的page页面。请先使用Ctrl+V(不要用鼠标的右键菜单!)粘贴上这一册的内容,然后点击左键选择此页的最后一个字,按右键保存该内容(也会在粘贴的文本中删除。)如果想退出此工具,请重新打开页面。"

spliting_edit_summary="Split for proofreading using split-for-proofreading.js"

//setting the width of the picture to load
width=500;

//px to scroll down after spliting
scroll_after_split=100;


//disable highlightTextarea
if(typeof $('#wpTextbox1').highlightTextarea==! 'undefined'){$('#wpTextbox1').highlightTextarea('disable');}




//display help message
document.getElementsByClassName("editpage-head-copywarn")[0].innerHTML=document.getElementsByClassName("editpage-head-copywarn")[0].innerHTML+help_message;

//increase font size
document.getElementById("wpTextbox1").setAttribute("style", "font-size:150%");

//setTimeout to avoid problem with scrollTop
window.totop= function(position) {
setTimeout(function(){document.getElementById("wpTextbox1").scrollTop=position},0); 
}

//change wpTextbox1 properties
document.getElementById("wpTextbox1").setAttribute("oncontextmenu", "split();");
document.getElementById("wpTextbox1").setAttribute("onchange", "after_paste();")

//prevent contextmenu
document.getElementById("wpTextbox1").addEventListener('contextmenu', function(evt) { 
  evt.preventDefault();
}, false);

//disable textarea (while script execution delay)
window.disable_textarea=function(option){
if (option=="1"){document.getElementById("wpTextbox1").setAttribute("disabled","disabled");}
else{document.getElementById("wpTextbox1").removeAttribute("disabled");}
}

//disable textarea when loading Gadget-morebits.js
disable_textarea("1");

$.getScript( '//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-morebits.js&action=raw&ctype=text/javascript' , function() {

//enable textarea after loaded Gadget-morebits.js
disable_textarea("0");

//return picture url
window.picurl=function(filename,pagenumber,width){
url="//commons.wikimedia.org/w/thumb.php?w="+width+"&f="+filename+"&p="+pagenumber;
return url;
};

//djvu or pdf file name with extension
filename=wgPageName.replace("Page:","").replace(/\/.+/g,"");

//current page number
pagenumber=parseInt(wgPageName.replace(/.+\//g,""));

//preload picture in order to accelerate loading
var picstoload= new Array();
window.picpreload=function(pagenumber){
document.getElementById("footer-icons").innerHTML="<img src='"+picurl(filename,pagenumber,width)+"' style='display:none' />"+document.getElementById("footer-icons").innerHTML;
}


//display notify text when saving
window.save_page_msg=function (page){
mw.notify(saving_text + page);
}

//save page using morebits
window.savepage=function(wikipagename,pagecontent){
wikipedia_page = new Morebits.wiki.page(wikipagename);
wikipedia_page.setEditSummary(spliting_edit_summary);
wikipedia_page.setPageText(pagecontent);
wikipedia_page.save();
save_page_msg(wikipagename)
};

//change scan picture after saving
window.picchange=function(filename,pagenumber,width){document.getElementsByClassName("prp-page-image")[0].innerHTML="<img src='"+window.picurl(filename,pagenumber,width)+"'/>";}

//main spiting function
window.split = function() {
//disable textarea while script execution delay
disable_textarea("1");
i=0;
input = document.getElementById("wpTextbox1");


setTimeout(function(){

clickposition=input.selectionEnd;
input.setSelectionRange(0, clickposition); 

//save above text 
var pagecontent= new Array();
pagecontent[pagenumber]=input.value.substring(0,clickposition);
wikipagename="Page:"+filename+"/"+pagenumber;
savepage(wikipagename,pagecontent[pagenumber])
pagenumber=pagenumber+1;

//delete saved text
input.value=input.value.substring(clickposition);




//textarea back scroll to top with 100px down
totop(scroll_after_split);


picchange(filename,pagenumber,width);
//preload pictures
picpreload(pagenumber+1);
picpreload(pagenumber+2);
picpreload(pagenumber+3);
picpreload(pagenumber+4);
},10); 

//enable textarea again
disable_textarea("0");


};


//textarea scroll to top after initially paste the text
changed=0;
window.after_paste= function() {
if(changed==0){totop(0)}
changed=1;

}
//preload pictures after loaded this script
picpreload(pagenumber+1);
picpreload(pagenumber+2);
picpreload(pagenumber+3);

});