ผู้ใช้:Jutiphan/Scripts/editor/monobook.js
จากวิกิพีเดีย สารานุกรมเสรี
หมายเหตุ: หลังจากบันทึกแล้ว, คุณต้องล้างแคชของเบราว์เซอร์เสียก่อน จึงจะเห็นการเปลี่ยนแปลง: Mozilla/Safari/Konqueror: กด Shift ค้าง แล้วกด Reload (หรือ Ctrl-Shift-R), IE: กด Ctrl-F5, Opera: กด F5
/* <pre><nowiki> */ // ========== ไม้ยมก จัดชิดตัวหน้า ========== // สคริปต์นี้ จัดไม้ยมก จาก "ก ๆ ก" เป็น "กๆ ก" function doConvertYamok() { text = document.editform.wpTextbox1.value; text = replace(text,' ๆ','ๆ'); text = replace(text,' ๆ','ๆ'); document.editform.wpTextbox1.value = text; if(document.editform.wpSummary.value.length == 0) { document.editform.wpSummary.value = "จัดชิดไม้ยมก"; document.editform.wpMinoredit.checked = true; } else { document.editform.wpSummary.value = document.editform.wpSummary.value + " +จัดชิดไม้ยมก"; } } // ========== เปลี่ยนเลขไทยเป็นเลขอารบิก ========== function doConvertNumber() { text = document.editform.wpTextbox1.value; text = replace(text,'๑','1'); text = replace(text,'๒','2'); text = replace(text,'๓','3'); text = replace(text,'๔','4'); text = replace(text,'๕','5'); text = replace(text,'๖','6'); text = replace(text,'๗','7'); text = replace(text,'๘','8'); text = replace(text,'๙','9'); text = replace(text,'๐','0'); document.editform.wpTextbox1.value = text; document.editform.wpSummary.value = "เปลี่ยนไปใช้เลขอารบิก"; } // ========== เปลี่ยนเลขอารบิกเป็นเลขไทย ========== function doConvertToThaiNumber() { text = document.editform.wpTextbox1.value; text = replace(text,'1','๑'); text = replace(text,'2','๒'); text = replace(text,'3','๓'); text = replace(text,'4','๔'); text = replace(text,'5','๕'); text = replace(text,'6','๖'); text = replace(text,'7','๗'); text = replace(text,'8','๘'); text = replace(text,'9','๙'); text = replace(text,'0','๐'); document.editform.wpTextbox1.value = text; document.editform.wpSummary.value = "เปลี่ยนไปใช้เลขไทย"; } // ========== สอบถาม พ.ศ. ========== function WhatIsThaiYear() { var what = getSelText(); var shortName = false; var askMode = false; var issueWarning = false; var totalWarnings = 0; var yr; var pYr; var txtArea = document.editform.wpTextbox1; if (what == null || what.length == 0) { what = getSelTextArea(); } if (what != null && what.length > 0) { what = what.replace(/ค\.ศ\. ?(\d{1,4})/g, "$1 AD"); /*if (what.search(/\[\[\d{1,4}\]\]/) != -1) { shortName = true; what = what.replace(/\[|\]/g, ""); }*/ } if (what == null || what.length == 0) { what = prompt("ระบุปี ค.ศ.:"); askMode = true; } if (what == null || what.length == 0) { return; } if (askMode) { if (isNaN(what)) { return; } yr = parseInt(what) + 543; pYr = parseInt(what) + 542; if(yr <= 2483 && iScriptConfig.usePreciseConversion) { alert("ค.ศ. " + what + " เท่ากับ พ.ศ. " + pYr + " สำหรับช่วงเดือนมกราคม - มีนาคม\nค.ศ. " + what + " เท่ากับ พ.ศ. " + yr + " สำหรับช่วงเดือนเมษายน - ธันวาคม"); } else if(yr <= 2483) { alert("ค.ศ. " + what + " เท่ากับ พ.ศ. " + yr + "\n\nสคริปต์จัดให้คำนวณด้วยการ +543 เป็นค่าปริยายสำหรับทุกปีซึ่งอาจไม่แม่นยำ โดยคุณสามารถเปลี่ยนการคำนวณด้วยการปรับแต่ง ดูเพิ่มที่หน้าหลักสคริปต์จัดให้"); } else { alert("ค.ศ. " + what + " เท่ากับ พ.ศ. " + yr); } return; } what = what.replace(/(January|February|March|April|May|June|July|August|September|October|November|December) (\d{1,2})/ig, "$2 $1"); what = what.replace(/January/ig, "มกราคม"); what = what.replace(/February/ig, "กุมภาพันธ์"); what = what.replace(/March/ig, "มีนาคม"); what = what.replace(/April/ig, "เมษายน"); what = what.replace(/May/ig, "พฤษภาคม"); what = what.replace(/June/ig, "มิถุนายน"); what = what.replace(/July/ig, "กรกฎาคม"); what = what.replace(/August/ig, "สิงหาคม"); what = what.replace(/September/ig, "กันยายน"); what = what.replace(/October/ig, "ตุลาคม"); what = what.replace(/November/ig, "พฤศจิกายน"); what = what.replace(/December/ig, "ธันวาคม"); //Fix gap lookahead what = what.replace(/(\d{1,4}) AD/ig,"$1AD"); what = what.replace(/(\d{1,4}) BC/ig,"$1BC"); //Fix short BC, prevent conflict with just numbers what = what.replace(/BC\|\d{1,4}/ig,"BC!"); //Remove comma what = what.replace(/,/g, ""); var results = what.match(/(\d{3,4}(?!AD|BC|\d{1}))/ig); if(results) { for (var i = 0; i < results.length; i++) { yr = parseInt(results[i]) + 543; if(iScriptConfig.usePreciseConversion) { if(yr <= 2483) { issueWarning = true; totalWarnings = totalWarnings + 1; } } re = new RegExp(results[i] + "(?!AD|BC)", "ig"); what = what.replace(re, "พ.ศ. " + yr); } } if(iScriptConfig.usePreciseConversion) { var results = what.match(/(?:มกราคม|กุมภาพันธ์|มีนาคม) พ.ศ. (\d{1,4})(?!AD|BC|\d{1})/ig); if(results) { for (var i = 0; i < results.length; i++) { yr = parseInt(results[i].match(/\d{1,4}/)[0]); if(yr <= 2483) { totalWarnings = totalWarnings - 1; re = new RegExp("(มกราคม|กุมภาพันธ์|มีนาคม) พ.ศ. " + yr + "(?!AD|BC)", "ig"); yr = yr - 1; what = what.replace(re, "$1 พ.ศ. " + yr); } } } var results = what.match(/(?:เมษายน|พฤษภาคม|มิถุนายน|กรกฎาคม|สิงหาคม|กันยายน|ตุลาคม|พฤศจิกายน|ธันวาคม) พ.ศ. (\d{1,4})(?!AD|BC|\d{1})/ig); if(results) { for (var i = 0; i < results.length; i++) { yr = parseInt(results[i].match(/\d{1,4}/)[0]); if(yr <= 2483) { totalWarnings = totalWarnings - 1; } } } } //!BC case handling (for short name) results = what.match(/(\d{1,4})BC!/ig); if(results) { for (var i = 0; i < results.length; i++) { if(iScriptConfig.usePreciseConversion) { issueWarning = true; } yr = 544 - parseInt(results[i]); re = new RegExp(results[i], "ig"); if(yr <= 0) { yr = (yr-1)*-1; what = what.replace(re, yr + " ปีก่อนพุทธศักราช|" + yr); } else { what = what.replace(re, "พ.ศ. " + yr); } } } //BC case handling results = what.match(/(\d{1,4})BC/ig); if(results) { for (var i = 0; i < results.length; i++) { if(iScriptConfig.usePreciseConversion) { issueWarning = true; } yr = 544 - parseInt(results[i]); re = new RegExp(results[i], "ig"); if(yr <= 0) { yr = (yr-1)*-1; what = what.replace(re, yr + " ปีก่อนพุทธศักราช"); } else { what = what.replace(re, "พ.ศ. " + yr); } } } //AC case handling results = what.match(/(\d{1,4})AD/ig); if(results) { for (var i = 0; i < results.length; i++) { yr = parseInt(results[i]) + 543; if(iScriptConfig.usePreciseConversion) { if(yr <= 2483) { issueWarning = true; } } re = new RegExp(results[i], "ig"); what = what.replace(re, "พ.ศ. " + yr); } } answer = what; if (document.selection && !is_gecko) { var theSelection = document.selection.createRange().text; theSelection = theSelection.substring(0, theSelection.length - 1); var range = document.selection.createRange(); range.text = answer; range.select(); } else if (txtArea.selectionStart || txtArea.selectionStart == '0') { var startPos = txtArea.selectionStart; var endPos = txtArea.selectionEnd; var scrollTop = txtArea.scrollTop; txtArea.value = txtArea.value.substring(0, startPos) + answer + txtArea.value.substring(endPos, txtArea.value.length); setCaretTo(txtArea, startPos + answer.length); txtArea.scrollTop = scrollTop; } else { alert("การใช้งาน พ.ศ. อะไร มีปัญหาและไม่สามารถดำเนินการเสร็จสิ้นได้ กรุณาแจ้งที่ คุยกับผู้ใช้:Jutiphan"); } if(issueWarning && totalWarnings > 0) { alert("ในปีที่ได้เลือกให้แปลงนั้น มีบางปีที่ก่อนหน้า ค.ศ. 1941 ซึ่งสคริปต์จัดให้ได้แปลงด้วยการ +543 แต่สำหรับปีดังกล่าวหากเป็นช่วงมกราคม-มีนาคมอาจต้อง -1 เพื่อใช้ +542 แทนที่"); } } // ========== แทนที่คำส่วนแรก ========== //Manual replace function replacetxt() { withw = ''; var what = getSelText(); if(what == null || what.length == 0) { what = getSelTextArea(); } if(what == null || what.length == 0) { what = prompt("ระบุข้อความที่ต้องการจะแทนที่:" + "\n" + "(รองรับ Regex โดยให้ใส่ // นำหน้าและหลังสุด)"); } if(what == null || what.length == 0) { return; } what_GUI = what; if(what.replace('//','').replace('//','') == what.split('//')[1]) { what = what.split('//')[1] replacetxtdone(what.split('//')[0],1,what); } else { what = what.replace(/\\/g,"\\\\"); what = what.replace(/\(/g,"\\(").replace(/\)/g,"\\)"); what = what.replace(/\{/g,"\\{").replace(/\}/g,"\\}"); what = what.replace(/\[/g,"\\[").replace(/\]/g,"\\]"); what = what.replace(/\|/g,"\\|"); what = what.replace(/\./g,"\\."); what = what.replace(/\$/g,"\\$"); what = what.replace(/\+/g,"\\+"); what = what.replace(/\^/g,"\\^"); what = what.replace(/\?/g,"\\?"); what = what.replace(/\*/g,"\\*"); what = what.replace(/\//g,"\\/"); replacetxtdone(what,0,what_GUI); } } // ========== แทนที่คำส่วนสอง ========== function replacetxtdone(s,regexon,what_GUI) { var original = document.editform.wpTextbox1.value; if (s) { if (regexon==1) { var r = prompt('ระบุคำที่จะแทนที่ "' + what_GUI + '" (ให้ใช้ Regex)',what_GUI); } else { var r = prompt('ระบุคำที่จะแทนที่ "' + what_GUI + '"',what_GUI); } if(!r && r != '') { alert('ยกเลิกการค้นหาและแทนที่ข้อความ'); return; } if(r == '') { alert('ข้อความ "' + what + '" จะถูกลบทิ้งทั้งหมด'); } var txt = document.editform.wpTextbox1; if(regexon == 0) { s = "([^:])" + s; } var rep = RegExp(s,"g"); if(regexon == 0) { txt.value = txt.value.replace(rep,"$1"+r); } else { txt.value = txt.value.replace(rep,r); } form = document.getElementById('bodyContent'); l = form.getElementsByTagName('input'); for (i = 0; i < l.length; i++) { if (l[i].name == 'wpMinoredit') { l[i].value = '1'; l[i].checked=true; } } if(document.editform.wpTextbox1.value == original) { alert('ขออภัย ข้อความที่ระบุไม่เจอในบทความ'); return; } if(document.editform.wpSummary.value.length == 0) { document.editform.wpSummary.value = 'แทนที่ "' + what_GUI + '" → "' + r + '"ด้วย[[WP:iScript|สคริปต์จัดให้]]'; } else { var eIndex = document.editform.wpSummary.value.lastIndexOf("ด้วย[[WP:iScript|สคริปต์จัดให้]]"); if(eIndex != -1) { var strTmp = document.editform.wpSummary.value; document.editform.wpSummary.value = strTmp.substring(0,eIndex) + ' +แทนที่ "' + what_GUI + '" → "' + r + '"ด้วย[[WP:iScript|สคริปต์จัดให้]]'; } else { document.editform.wpSummary.value += ' +แทนที่ "' + what_GUI + '" → "' + r + '" ด้วย[[WP:iScript|สคริปต์จัดให้]]'; } } } } addOnloadHook( function() { var tooly = document.getElementById('toolbar'); if (tooly != null) { var replaceButton = "<a href=\"javascript:replacetxt();\"><img src=\"http://upload.wikimedia.org/wikipedia/th/b/bc/Button_replace_th.png\" alt=\"แทนที่คำ\"></a>"; var porsorButton = "<a href=\"javascript:WhatIsThaiYear();\"><img src=\"http://upload.wikimedia.org/wikipedia/th/e/e2/Button_Porsor.png\" alt=\"พ.ศ. อะไร\"></a>"; tooly.innerHTML = tooly.innerHTML + replaceButton + porsorButton; akeytt(); } }); function addEditors() { addTab("javascript:doConvertNumber()", "๒ ->2", "ca-tanum", "เปลี่ยนเลขไทยเป็นอารบิก", ""); addTab("javascript:doConvertToThaiNumber()", "2 ->๒", "ca-atnum", "เปลี่ยนเลขอารบิกเป็นไทย", ""); addTab("javascript:doConvertYamok()", "ๆ", "ca-yamok", "จัดชิดไม้ยมก"); } if (document.title.indexOf("แก้ไข ") == 0) { if (window.addEventListener) window.addEventListener("load", addEditors, false); else if (window.attachEvent) window.attachEvent("onload", addEditors); } /* </nowiki></pre> */