ויקיפדיה:סקריפטים

מתוך ויקיפדיה, האנציקלופדיה החופשית

דף זה מרכז סקריפטים שונים ב-JS שניתן להוסיף לדף ה-monobook.js האישי.

הוראות להתקנת סקריפט:

  • יש להעתיק את הסקריפט הרצוי במלואו לדף ה-monobook.js האישי.
  • לאחר שמירת הדף יש לרענן את הדף ולנקות את זכרון המטמון באמצעות לחיצה Ctrl+F5 באקספלורר, Ctrl+R במוזילה/פיירפוקס או בספארי.


תוכן עניינים

[עריכה] סקריפט להוספת תמונה קישור חיצוני

הסקריפט מוסיף תמונה ליד קישור חיצוני בדומה לתמונה המופיעה בוויקיפדיות אחרות (אף שהדבר מבוצע בצורה מורכבת יותר כדי לעקוף באג במוזילה/פיירפוקס). במקרה שהקישור הוא למסמך RTF או DOC או PDF הסקריפט מוסיף תמונה מתאימה.

/* תמונות ליד קישורים חיצוניים */
function externalLIcons(e) 
{
    e = (e) ? e : event;
    var links = document.getElementsByTagName("a");
    var i;
    for (i = 1; i <= links.length; i++)
    {
        if (links[i - 1].className == "external text")
        {
    var extrImg=document.createElement("img");
    if(links[i-1].href.match(".pdf")){
    extrImg.src= 'http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Icons-mini-file_acrobat.gif/15px-Icons-mini-file_acrobat.gif';
    } else if(links[i-1].href.match(/.(doc|rtf)/)){
    extrImg.src= 'http://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Noia_64_mimetypes_wordprocessing.png/16px-Noia_64_mimetypes_wordprocessing.png';
    } else {
    extrImg.src= 'http://upload.wikimedia.org/wikipedia/he/thumb/0/01/External2.png/10px-External2.png';
    }
         links[i-1].appendChild(extrImg);
        }
    }
}

addLoadEvent(externalLIcons);

[עריכה] תקציר עריכה אוטומטי בעריכת גרסה ישנה

בעריכת גרסה ישנה של דף, הסקריפט משנה את תקציר העריכה ל"שחזור לגרסה x" בהתאם לגרסה הישנה שנערכת.

/* פונקציה שמספקת תקציר עריכה אוטומטי כשעורכים גרסה ישנה. התקציר האוטומטי הוא "שחזור לגרסה x" */
function oldVersEdit(){
if(document.location.search.indexOf("&action=edit&oldid=") != -1){
document.editform.wpSummary.value="שחזור לגרסה "+ document.location.search.substring(document.location.search.indexOf("&oldid=")+7,document.location.search.length);
}
}
addOnloadHook(oldVersEdit);

[עריכה] סרגל אותיות לחיפוש סדרתי

הקוד מוסיף בתיבת הצד סרגל אותיות לחיפוש סדרתי של ערכים עפ"י א-ב.

/* פונקציה להוספת סרגל אותיות. נכתב ע"י [[משתמש:ערן]] ו[[משתמש:Effib]] */
function AlNevig()
{
 psearch = document.getElementById('p-search');
 if (psearch != null) {
  var cleaner = "<br style=\\'clear:both;\\' />";
  Nivut = '<div class="portlet">\n<h5><label>ניווט אלפביתי</label></h5>\n<div class="pBody"><a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/א" alt="א">א</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ב" alt="ב">ב</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ג" alt="ג">ג</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ד" alt="ד">ד</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ה" alt="ה">ה</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ו" alt="ו">ו</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ז" alt="ז">ז</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ח" alt="ח">ח</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ט" alt="ט">ט</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/י" alt="י">י</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/כ" alt="כ">כ</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ל" alt="ל">ל</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/מ" alt="מ">מ</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/נ" alt="נ">נ</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ס" alt="ס">ס</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ע" alt="ע">ע</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/פ" alt="פ">פ</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/צ" alt="צ">צ</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ק" alt="ק">ק</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ר" alt="ר">ר</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ש" alt="ש">ש</a> | <a href="http://he.wikipedia.org/wiki/מיוחד:Allpages/ת" alt="ת">ת</a>\n</div>\n</div>';
  psearch.innerHTML = psearch.innerHTML + cleaner + Nivut;
 }
}

addLoadEvent(AlNevig);

[עריכה] פופ אפ

סקריפט שמציג חלונית מידע במעבר העכבר מעל קישור. ניתן להתקין את הסקריפט באמצעות {{ס:פופ אפ}}.

[עריכה] סרגל מיזמים

הסרגל נוסף לתיבת הניווט ומאפשר להגיע לדף המקביל באחד ממיזמי האחות.

הקוד:

function OthPro()
{
 psearch = document.getElementById('p-search');
 if (psearch != null) {
  var cleaner = "<br style=\\'clear:both;\\' />";
wiktlink=""+window.location;
wiktlink=wiktlink.replace("wikipedia","wiktionary");
wikqlink=""+window.location;
wikqlink=wikqlink.replace("wikipedia","wikiquote");
wikblink=""+window.location;
wikblink=wikblink.replace("wikipedia","wikibooks");
wikslink=""+window.location;
wikslink=wikslink.replace("wikipedia","wikisource");
  Nivut = '<div class="portlet">\n<h5><label>פרויקטים נוספים</label></h5>\n<div class="pBody"><ul style="margin-left:5em;"><li><a href="'+wiktlink+'">ויקימילון</a></li>\n<li><a href="'+wikqlink+'">ויקיציטוט</a></li>\n<li><a href="'+wikblink+'">ויקיספר</a></li>\n<li><a href="'+wikslink+'">ויקיטקסט</a></li></ul>\n</div>\n</div>';
  psearch.innerHTML = psearch.innerHTML + cleaner + Nivut;
 }
}
addLoadEvent(OthPro);

[עריכה] תיבה להוספת אזהרות בעריכת דפי שיחה של אנונימים

בעריכת דף שיחה של אנונימי נוספת רשימת אזהרות ותבניות, המאפשרת להוסיף תבניות לדף השיחה ביחד עם חתימה ובתוספת תקציר עריכה מתאים.

// פונקציה להוספת רשימת אזהרות כשעורכים דף שיחה של אנונימי
function talkIPTool()
{
  var title = (document.title.substr(0, document.title.lastIndexOf(" - ")));
  templatesList=document.getElementById('edit-templates');
  if(templatesList!=null && title.indexOf('.')!=title.lastIndexOf('.')){
   warList='אזהרות: <select onchange="document.editform.wpSummary.value+=this[selectedIndex].title; document.editform.wpTextbox1.value +=this[selectedIndex].value + \' ~~\' + \'~~\';this.selectedIndex=0;">';
   warList += '<option value="" title="">בחרו מהרשימה כדי להוסיף</option>'
   warList += '<option title="אזהרה" value="{{אזהרה}}">אזהרה</option>'
   warList += '<option title="הבל" value="{{הבל}}">הבל</option>'
   warList += '<option title="הזמנה" value="{{הזמנה}}">הזמנה</option>'
   warList += '<option title="ניסויים" value="{{ניסויים}}">ניסויים</option>'
   warList += '<option title="תודה" value="{{תודה}}">תודה</option>'
   warList += '<option title="ויקיזציה" value="{{ויקיזציה}}">ויקיזציה</option>'
   warList += '<option title="לך" value="{{לך}}">לך</option>'
   warList += '<option title="תלונה" value="{{תלונה}}">תלונה</option>'
   warList += '<option title="טעות" value="{{טעות}}">טעות</option>'
   warList += '<option title="נייטרליות" value="{{נייטרליות}}">נייטרליות</option>'
   warList += '<option title="נחסמת" value="{{נחסמת}}">נחסמת</option>'
   warList += '<option title="מילון" value="{{מילון}}">מילון</option>'
   warList += '<option title="כבר קיים" value="{{כבר קיים}}">כבר קיים</option>'
   warList += '<option title="שגיאה" value="{{שגיאה}}">שגיאה</option>'
   warList += '<option title="העתקה" value="{{העתקה}}">העתקה</option>'
   warList += '<option title="פרסומת" value="{{פרסומת}}">פרסומת</option>'
   warList += '<option title="נמחק" value="{{נמחק}}">נמחק</option>'
   warList += '<option title="הסבר" value="{{הסבר}}">הסבר</option>'
   warList += '<option title="בוטל" value="{{בוטל}}">בוטל</option>'
   warList += '<option title="סגנון" value="{{סגנון}}">סגנון</option>'
   warList += '</select>'
   templatesList.innerHTML=warList+templatesList.innerHTML;
  }
 }
addLoadEvent(talkIPTool);

[עריכה] המרת HTML לתחביר ויקי

הקוד מוסיף כפתור Html2Wiki בצד שמאל שממיר טבלאות html, תגי הדגשה וכתב נטוי לתחביר ויקי. הקוד לא יוצא נקי לגמרי ועשוי ליצור רווחים מיותרים. המרה מוצלחת יותר ניתן למצוא בכלי החיצוני שכאן.


function Html2WikiInstallation()
{
 editOptionsD = document.getElementById('edit-templates');
 if (editOptionsD != null) {
  Wiki2HtmlButton = '<input type="button" value="Html2Wiki" onclick="Html2Wiki();" />';
  editOptionsD.innerHTML = Wiki2HtmlButton + editOptionsD.innerHTML;
 }
}

function Html2Wiki()
{
txt = document.editform.wpTextbox1.value;

/* הפיכת התגיות b וstrong וi וem לתגי ויקי באמצעות החלפה. אזהרה: ההחלפה מתבצעת על כל הטקסט, גם אם רשום nowiki לפני */
txt = txt.replace(/\<\/?(b|strong)\>/g, "\'\'\'");
txt = txt.replace(/\<\/?(i|em)\>/g, "\'\'");

/* פונקציה להפיכת תגי table לתגי ויקי */
atab = txt.indexOf("<table",0);
while(atab!=-1){
btab = txt.indexOf(">",atab);
str1=txt.substring(0,btab);
str2=txt.substring(btab+1,txt.length);
txt=str1+str2;
atab = txt.indexOf("<table",btab);
if (btab==-1) atab=-1;
}
txt = txt.replace(/\<table/g, "\n{|");
txt = txt.replace(/\<\/table\>/g, "\n|}");

/* פונקציה להפיכת תגי tr לתגי ויקי */
atab = txt.indexOf("<tr",0);
while(atab!=-1){
btab = txt.indexOf(">",atab);
str1=txt.substring(0,btab);
str2=txt.substring(btab+1,txt.length);
txt=str1+"\n"+str2;
atab = txt.indexOf("<tr",btab);
if (btab==-1) atab=-1;
}
txt = txt.replace(/\<tr/g, "|-");
txt = txt.replace(/\<\/tr\>/g, "");

/* פונקציה להפיכת תגי td לתגי ויקי */
atab = txt.indexOf("<td",0);
while(atab!=-1){
btab = txt.indexOf(">",atab);
str1=txt.substring(0,btab);
str2=txt.substring(btab+1,txt.length);
txt=str1+"|"+str2;
atab = txt.indexOf("<td",btab);
if (btab==-1) atab=-1;
}
txt = txt.replace(/\<td/g, "|");
txt = txt.replace(/\<\/td\>/g, "");

/* פונקציה להפיכת תגי th לתגי ויקי */
atab = txt.indexOf("<th",0);
while(atab!=-1){
btab = txt.indexOf(">",atab);
str1=txt.substring(0,btab);
str2=txt.substring(btab+1,txt.length);
txt=str1+"|"+str2;
atab = txt.indexOf("<th",btab);
if (btab==-1) atab=-1;
}
txt = txt.replace(/\<th/g, "!");
txt = txt.replace(/\<\/th\>/g, "");

/* החלפת תוכן תיבת הקוד בקוד שעבר טיפול בפונקציה. */
document.editform.wpTextbox1.value = txt;
}

addLoadEvent(Html2WikiInstallation);

[עריכה] השלמה אוטומטית של תקציר העריכה

  • כרגע יש בסקריפט מספר מצומצם של תקצירים, כמובן שאפשר להגדיל, וצריך לשנות בהתאם גם את גודל המערך.
  • ניתן לשנות מאיזה אות זה יתחיל להשלים. כרגע זה עומד על 3 כך שכתיבת "תקל" ישלים ל"תקלדה". ככל שהמספר יהיה קטן יותר הסיכוי להתנגשות עם מילה אחרת גדול יותר, מצד שני ככל שהמספר גדול יותר זה פחות שימושי.

הקוד:

/* השלמה אוטומטית של התקציר */
function AutoSumm()
{
 summTxtBox = document.getElementById('wpSummary');
 if (summTxtBox != null) {
  if (!is_gecko) summTxtBox.attachEvent("onkeypress",autoCompSumm);
  else summTxtBox.setAttribute("onkeyup","autoCompSumm(event);");
 }
}

function autoCompSumm(e){
if (e.keyCode==8) return true;
currSum = document.getElementById('wpSummary');
var summNow=currSum.value;
var sumLen=summNow.length;
if (summNow.indexOf("*/")!=-1) summNow=summNow.substr(summNow.indexOf("*/ ")+3,summNow.length);
if (summNow.length<3) return; //מאיזו אות להתחיל השלמה
var summaries= new Array (6); //אורך מערך התקצירים
//רשימת תקצירים מוכרים
summaries[0]="תקלדה";
summaries[1]="הגהה";
summaries[2]="הועבר";
summaries[3]="ויקיזציה";
summaries[4]="שחזור";
summaries[5]="תיקון קישור";
for (i=0;i<summaries.length;i++){
  if(summaries[i].substr(0,summNow.length)==summNow){
   if (currSum.value.indexOf("*/")!=-1){ 
    currSum.value=currSum.value.substr(0,currSum.value.indexOf("*/"))+"*/ "+summaries[i];
   } else {
     currSum.value=summaries[i];
   }
   if(currSum.selectionStart || currSum.selectionStart == '0'){
    currSum.selectionStart=sumLen;
    currSum.selectionEnd=currSum.value.length;
   }

   break;
  }
 }
}

addLoadEvent(AutoSumm);

[עריכה] סקריפטים נוספים

סקריפטים רבים נוספים ניתן למצוא בוויקי האנגלית: en:Wikipedia:WikiProject User scripts/Scripts (ייתכן שבהעברה לעברית יש לבצע התאמות קלות).